ZHCAFT7 October 2025 CC2340R5
图 4-1 展示了 CC2340R5 代码内部所用过程的简单代码方框图。该功能在 app_bldc_motor_control.c 文件中实现。
图 4-1 BLDC 电机代码图主函数初始化 BLDC 电机示例运行所需的所有 TI 驱动器和计时器。进入主 while 环路后,这会对由硬件回调设置的事件执行进一步的操作。通过子例程维护相应的操作后,会重置事件并且会自动重复该过程。
除一些例外情况外,所有硬件回调都只是发布一个事件以供主应用处理。一种例外情况是 ADCBuf 回调,它会立即处理状态,除非超过了窗口比较器阈值,否则不会从主应用程序环路调用任何进一步的操作。
实现了若干定义,用于定义电机的行为,这些定义在以下各节中会被引用。表 4-1 显示了位于 app_bldc_motor_control.h 中的可配置定义。
| 定义 | 默认值 | 单位 | 功能 |
|---|---|---|---|
| PWM_PERIOD | 40000 | Hz | PWM 周期除以 2(适用于上升或下降模式),因此为 20kHz |
| DUTY_MAX | 80 | % | 允许的最大 PWM 占空比 |
| DUTY_MIN | 10 | % | 允许的最大 PWM 占空比 |
| DUTY_INC | 5 | % | UART 命令的 PWM 占空比增量 |
| MAX_STRING | 20 | 整数 | 单个 UART 字符串中的最大字符数 |
| SPIN_TIMEOUT | 1000000 | µs | 如果电机在此时间段内未完成一次旋转,则电机驱动器将停止 |
| RPM_INTERVAL | 500000 | µs | 报告 RPM、CPU 负载和 ADC 测量计数的时间间隔 |
| ACCEL_INTERVAL | 10000 | µs | 增加或减少 PWM 占空比之前的延时时间 |
| CHANGE_DELAY | 1000000 | µs | 改变方向之前停止电机后的延迟 |
| ADC_COUNT | 5 | 整数 | 启用的 ADC 通道的数量 |
| ADC_INTERVAL | 100000 | µs | 对单个 ADC 序列进行采样的时间间隔(需要先停止然后重新启动 ADC DMA 缓冲器) |
| VSEN_THRESHOLD | 2000 | 整数 | 触发电机停止所需的原始电源 ADC 值 |
| WINDOW_LOW | 1500 | 整数 | 低窗口监控器的原始电流 ADC 值 |
| WINDOW_HIGH | 3000 | 整数 | 高窗口监控器的原始电流 ADC 值 |
| ADCSAMPLESIZE | 128 | 整数 | DMA 传输的 ADC 缓冲区大小 |