1. 项目背景与核心器件选型
在工业自动化和机器人控制领域,直流有刷电机驱动系统的设计一直是个经典课题。最近我在为一个AGV(自动导引运输车)项目设计驱动模块时,选择了东芝的TC78H660FTG电机驱动IC搭配STM32F767ZG主控的方案。这个组合在18V/2A的工况下表现出色,特别是其内置的多种保护机制让系统可靠性大幅提升。
TC78H660FTG是东芝推出的双通道有刷直流电机驱动IC,采用VQFN16封装,体积仅3x3mm。它最吸引我的特点是:
- 支持4种工作模式(正转/反转/停止/短路制动)
- 内置PWM恒流控制
- 包含欠压锁定(UVLO)、过流保护(ISD)和过热保护(TSD)
与常见的L298N等驱动芯片相比,它的导通电阻仅0.5Ω(高端+低端总和),这意味着在2A工作电流时,芯片自身功耗只有2W,效率提升明显。
2. 硬件电路设计详解
2.1 电源架构设计
驱动系统采用三级供电架构:
- 24V锂电池组作为主电源
- RT7272B降压至5V为STM32供电
- 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设计时:
- 在芯片底部预留散热过孔阵列
- 铜箔面积至少300mm²
- 考虑使用Thermal PAD直接连接至内部地平面
5. 常见问题排查
5.1 电机启动抖动
现象:电机启动时出现明显抖动 解决方法:
- 检查PWM频率是否在10-20kHz范围内
- 增加启动软加速曲线
- 确认IN1/IN2信号没有毛刺
5.2 芯片异常发热
排查步骤:
- 测量VM引脚电压是否稳定
- 检查PCB布局是否满足最小线宽要求(电流路径至少2mm)
- 确认没有同时导通上下管的情况
这个方案经过三个月实际运行测试,驱动两台JGA25-370电机(12V/1.2A)连续工作无故障。相比传统方案,效率提升约15%,温升降低20℃,PCB面积节省40%。对于需要小型化、高效率的电机驱动应用,这个设计具有很强的参考价值。