工具与软件:
尊敬的社区:
我希望你们都做得很好。
我使用的是 STM32G431KBT6开发板、我需要配置 DRV8323RS 电机驱动器的寄存器。 对于该工程、我使用 BOOSTXL-DRV8323RS 开发板正确连接了 SPI 引脚、并将 SPI 时钟设置为1 MHz。 我在 Arduino IDE 中工作。
具体而言、我将尝试配置以下寄存器:
- 0x02 (控制寄存器): 0x1201
- 0x03 (栅极驱动 HS 寄存器): 0x1BFF
- 0x04 (栅极驱动 LS 寄存器): 0x27FF
- 0x05 (OCP 控制寄存器): 0x295F
- 0x06 (CSA 控制寄存器): 0x3083
使用逻辑分析仪、我可以确认 STM32G431KBT6中的 SPI 时钟、CS 引脚和传输数据(MOSI)是否正确。 使能引脚也正常工作。 但是、从 DRV8323RS 返回的数据不符合预期。
我确保了通信格式遵循数据表中所述的格式 "编程" 章节(页次52/111)。 我本来希望读回我写入寄存器的值、但收到了我无法理解的意外数据。
即使我忽略了返回的数据并尝试更改了1PWM_DIR中的位也是如此 控制寄存器 若要反转电机的方向、则没有任何效果。 即使发送的字节看起来有效、寄存器似乎没有被正确写入。
我已经仔细检查了硬件连接是否有干扰、并使用示波器分析与逻辑分析仪结果相匹配的模拟信号。 我还确认了主器件和从器件之间的 SPI 配置一致、包括 MSBFIRST SPI 模式和时序要求。
您能帮助我确定此问题的原因吗? 为了读回正确的寄存器值并确保正确应用设置、我可以进行哪些更改或纠正?
我将分享 Arduino IDE 代码、逻辑分析仪屏幕截图和硬件设置详细信息、以便深入了解。
我编写此报告的原因是为了控制 A 具有393KV、20个极和10个极对的 BLDC 电机 消息流 FOC (场定向控制) 结合使用。 不过、我遇到了电流消耗和电机发热方面的问题。 我怀疑这些问题可能与驱动程序配置不正确有关、尤其是与有关 TDRIVE、IDRIVEP_LS、IDRIVEN_LS 中的配置设置 栅极驱动 LS 寄存器 和 IDRIVEP_HS、IDRIVEN_HS 中的配置设置 栅极驱动 HS 寄存器 控制峰值栅极拉电流和灌电流。
非常感谢您提供任何指导或建议!

0x02写入、读取
0x03写-读
0x04写-读
0x05写入读
0x06写入读
e2e.ti.com/.../Scirpt_5F00_FOC_5F00_Configuration_5F00_SPI.txt






