STM32与TC78H660FTG的直流电机驱动设计实践
2026/7/6 7:46:06 网站建设 项目流程

1. 项目背景与核心器件选型

在工业自动化和机器人控制领域,直流有刷电机驱动系统的设计一直是个经典课题。最近我在为一个AGV(自动导引运输车)项目设计驱动模块时,选择了东芝的TC78H660FTG电机驱动IC搭配STM32F767ZG主控的方案。这个组合在18V/2A的工况下表现出色,特别是其内置的多种保护机制让系统可靠性大幅提升。

TC78H660FTG是东芝推出的双通道有刷直流电机驱动IC,采用VQFN16封装,体积仅3x3mm。它最吸引我的特点是:

  • 支持4种工作模式(正转/反转/停止/短路制动)
  • 内置PWM恒流控制
  • 包含欠压锁定(UVLO)、过流保护(ISD)和过热保护(TSD)

与常见的L298N等驱动芯片相比,它的导通电阻仅0.5Ω(高端+低端总和),这意味着在2A工作电流时,芯片自身功耗只有2W,效率提升明显。

2. 硬件电路设计详解

2.1 电源架构设计

驱动系统采用三级供电架构:

  1. 24V锂电池组作为主电源
  2. RT7272B降压至5V为STM32供电
  3. TPS7A4700 LDO生成3.3V给MCU数字电路

特别要注意的是TC78H660FTG的VM引脚需要单独加装100μF低ESR钽电容,我在PCB布局时将其放置在距离芯片电源引脚3mm范围内,实测可有效抑制PWM切换时的电压毛刺。

2.2 关键外围电路

电机驱动部分的核心电路包括:

// PWM信号处理电路 R1 = 1kΩ (IN1上拉电阻) C1 = 100nF (IN1滤波电容) // 电流检测电路 R_sense = 0.1Ω/1% (电流采样电阻) R2 = 10kΩ (运放增益调节)

这里有个设计细节:电流采样电阻的功率要留足余量,我选用的是1210封装的0.1Ω电阻,额定功率1W,实测长时间工作温升仅25℃。

3. STM32软件实现

3.1 PWM配置

使用STM32F767的TIM1产生互补PWM,关键配置如下:

htim1.Instance = TIM1; htim1.Init.Prescaler = 0; htim1.Init.CounterMode = TIM_COUNTERMODE_UP; htim1.Init.Period = 999; // 10kHz PWM htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; HAL_TIM_PWM_Init(&htim1); sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 500; // 初始占空比50% sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1);

3.2 保护机制实现

通过STM32的ADC监测电机电流,结合硬件保护实现双重防护:

void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { current = (HAL_ADC_GetValue(hadc)*3.3/4096)/0.1; // 0.1Ω采样电阻 if(current > 1.8) { // 留20%余量 HAL_GPIO_WritePin(BRAKE_GPIO, BRAKE_PIN, GPIO_PIN_SET); } }

4. 实测性能优化

4.1 死区时间调整

通过示波器观察发现,当死区时间设置为500ns时,MOSFET切换最平滑。在STM32中对应的配置参数为:

sBreakDeadTimeConfig.DeadTime = 54; // 540ns @108MHz sBreakDeadTimeConfig.BreakState = TIM_BREAK_ENABLE; HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig);

4.2 热管理方案

实测连续工作1小时后:

  • 无散热片时芯片温度达78℃
  • 加装10x10mm散热片后降至52℃
  • 配合散热膏和强制风冷可控制在45℃以下

建议在PCB设计时:

  1. 在芯片底部预留散热过孔阵列
  2. 铜箔面积至少300mm²
  3. 考虑使用Thermal PAD直接连接至内部地平面

5. 常见问题排查

5.1 电机启动抖动

现象:电机启动时出现明显抖动 解决方法:

  1. 检查PWM频率是否在10-20kHz范围内
  2. 增加启动软加速曲线
  3. 确认IN1/IN2信号没有毛刺

5.2 芯片异常发热

排查步骤:

  1. 测量VM引脚电压是否稳定
  2. 检查PCB布局是否满足最小线宽要求(电流路径至少2mm)
  3. 确认没有同时导通上下管的情况

这个方案经过三个月实际运行测试,驱动两台JGA25-370电机(12V/1.2A)连续工作无故障。相比传统方案,效率提升约15%,温升降低20℃,PCB面积节省40%。对于需要小型化、高效率的电机驱动应用,这个设计具有很强的参考价值。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询