主题中讨论的其他器件:DRV8301、 DRV8323、 MOTORWARE、 DRV8305-Q1EVM、 CCStudio
工具/软件:Code Composer Studio
在提出定制板时遇到一些问题、可能有人会发现一个愚蠢的错误。 完全相同的电路板、但在使用 STM32 MCU 之前就成功了。 实际上、在多次尝试使用不同的 user.h 参数后、电机确实会进入学习模式、因此问题可能出在代码中的某个位置。 第一个出错的地方是这个消息-"器件可能在低功耗模式下运行"、这个消息出现在我选中"运行"复选框之后、所有值都变得疯狂、但是电路板仍然运行学习过程并转动电机(不是每次)。 在几秒钟后使用当前配置时、它只是挂起了一个位置。 之后尝试连接调试器、但运气不好、显示了源代码之外的某些地址、可能不正确。 尽管这是一个 JTAG 连接问题、将导线缩短到仅5cm、但没有帮助。 项目属性中的连接测试运行正常。 不确定这是否应该是这样的、但似乎 MCU 在上电后不会自行运行、使用两个链接器脚本、CCS 中的调试和 GUI Composer 加载固件即可正常运行。 此外、如果我没有选中"Run"复选框、GUI Composer 也会长时间工作。
以下是使用相同 MCU 的 drv8301_kit 示例代码的更改数字:
#define USER_IQ_FULL_SCALE_VOLTAGE_V (32) #define USER_ADC_FULL_SCALE_VOLTGE_V (33) #define USER_IQ_FULL_SCALE_CURRENT_A (55) #define USER_ADC_FULL_SCALE_CURRENT_A (55) #define I_A_offset (0.0) #define I_B_offset (0.0) #define I_C_offset (0.0) #define V_A_offset (0.0) #define V_B_offset (0.0) #define V_C_offset (0.0) #define USER_SYSTEM_FREQ_MHz (60.0) #define USER_PWM_FREQ_kHz (45.0) #define USER_NUM_PWM_TICKS_PER_ISR_TICK (1) #define USER_NUM_PWM_TICKS_PER_ISR_TICK (1) #define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK (1) #define USER_NUM_CTRL_TICKS_PER_EST_TICK (1) #define USER_NUM_CTRL_TICKS_PER_SPEED_TICK (15) #define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK (15) #define USER_MOTOR_Rs (0.0) #define USER_MOTOR_LS_d (0.0) #define USER_MOTOR_LS_q (0.0) #define USER_MOTOR_RATed_VLUX (0.0) #define USER_MOTOR_磁 化电流(NULL) #define USER_MOTOR_RES_EST_CURRENT (4.0) #define USER_MOTOR_IND_EST_CURRENT (-2.0) #define USER_MOTOR_MAX_CURRENT (15.0) #define USER_MOTOR_FLUX_EST_FREQ_Hz (88.0)
我复制了上述 drv8301示例项目并更改了 GPIO 映射、删除了 DRV8301初始化、添加了 DRV8323RS 相关代码、更改了 TZ 引脚配置和 ADC 映射。 以下是项目配置:
MCU 原理图:
实际 P/N 是 TMS320F28054MPNQ。
使用3MR 分流器、DRV8323RS 采用默认配置(20V/V 增益、在这种情况下其他参数无关紧要)。