工具与软件:
大家好!
I²C 面临 MCT8316AV (μ C 型号) BLDC 驱动器的问题。 首先、对我们的用例进行总结:
- 单个小型 PCB 仅包含驱动器以及一些支持组件
- 在生产/测试期间对 EEPROM 寄存器进行编程
- 正常运行时、使用模拟控制模式、未连接 I²C Ω(当然是上拉)
- 该驱动器以高达35krpm (电气频率约为2.3kHz)运行高速径向风扇
- 风扇类型为 TF037E-2000-F
- 旋转方向通过 I²C Ω 配置固定为反向
- 通过 I²C Ω 配置禁用制动
- PCB 上有10uH 电感器、因为电机本身的低电感会导致 OCP 跳闸
- 电机全天候运行、但转速通常为8-20krpm、每日峰值约为1分钟。 35krpm 时
从目前使用的组件(只有几十个)来看、所有组件都可以编程和测试、不会出现任何问题。 其中约90%在正常使用期间也能正常运行。 他们在几个月前就这样做了。 但是、大约10%的器件表现出不稳定行为:
- 加电后、他们可能无法再启动风扇、刀片没有任何明显的抖动或声音
- 单次或多次重启可能会使设备恢复正常运行、之后设备会再次正常运行、只会在稍后再出现问题
- 在至少两次中,驱动器卡在风扇实际运行时;风扇刚刚停止,所有输出被禁用
- 驱动器上的电压正常(VM 24V、DVDD 1.55V、降压4.97V、CP 29.2V、AVDD 3.3V)
- 不会报告故障、不是通过 I²C Ω(不在引脚上)、nFAULT 为高电平
对于运行时出现故障的其中一个器件、我连接了编程设备以读出 μ I²C 寄存器。 寄存器0xEA 的值为0x20011275、如果我获取了正确的位、这表示状态机处于 MOTOR_RUN 状态。 但电机肯定没有运行、也没有 FG 输出(恒定高电平)。 我尝试将寄存器0xE8设置为0x10008000以12.5%的速度覆盖速度命令、该值可以正确读回、但电机仍不旋转。
对我来说、它看起来是驱动器的内部控制器、或者至少有一个任务完全崩溃、从而导致电机不再被驱动、而 μ I²C 接口仍在工作。
问题:
- 配置是否存在任何可能导致此行为的错误?
- 我们如何才能避免这种失败?
- 我们是否需要预计工作中的器件也会在更长的时间内发生故障?
这里是所有寄存器的值(我使用 EVM 评估了正确的值并导出了寄存器文件):
isd_config (0x0080): 0x4404c140 motor_startup1 (0x0082): 0x75489197 motor_startup2 (0x0084): 0x1a2d7980 closed_loop1 (0x0086): 0x0b3b2400 closed_loop2 (0x0088): 0x020024f8 closed_loop3 (0x008a): 0x4cc40110 closed_loop4 (0x008c): 0x000ce944 const_speed (0x008e): 0x00a00500 const_pwr (0x0090): 0x66664c80 150_deg_two_ph_profile (0x0096): 0x36db6da6 150_deg_three_ph_profile (0x0098): 0x36db6d80 trap_config1 (0x009a): 0x054ba106 trap_config2 (0x009c): 0x3a880000 fault_config1 (0x0092): 0x7fff9071 fault_config2 (0x0094): 0x0f47a009 pin_config1 (0x00a4): 0x00000050 pin_config2 (0x00a6): 0x00101462 device_config (0x00a8): 0x7fff0000 gd_config1 (0x00ac): 0x1c40030c gd_config2 (0x00ae): 0x16a00000 gate_driver_fault_status (0x00e0): 0x00000000 controller_fault_status (0x00e2): 0x00000000 sys_status1 (0x00e4): 0x00ef0ad0 sys_status2 (0x00ea): 0x20011275 sys_status3 (0x00ec): 0x0007002d algo_ctrl1 (0x00e6): 0x00000000 device_ctrl (0x00e8): 0x10008000 input_duty (0x040c): 0x00cc0000 current_duty (0x04f6): 0x00000000 set_duty (0x0506): 0x00020000 motor_speed_pu (0x05b2): 0x00000000 dc_bus_power_pu (0x06f4): 0x000000e5
PCB 原理图:

PCB 布局(底部未填充的 GND 平面)用于提高可见性:

应附加 EVM 软件中的寄存器 JSON 文件(如果这样做...)。
谢谢、此致、
Philipp