ZHCAFV6 October   2025 CC2340R5

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 CC2340R5
    2. 1.2 DRV8251A
    3. 1.3 BDC 电机
    4. 1.4 TMAG5213
  5. 2BDC 应用
    1. 2.1 硬件设置
      1. 2.1.1 DRV8251AEVM 设置
    2. 2.2 连接图
  6. 3运行示例
    1. 3.1 依赖项
    2. 3.2 加载固件
    3. 3.3 Zigbee 组网
  7. 4固件设计
    1. 4.1 代码流程描述
    2. 4.2 LaunchPad 按钮功能
    3. 4.3 非易失性内存
    4. 4.4 双向 PWM 电机控制
    5. 4.5 ADC 过流保护功能
    6. 4.6 具有可配置端点、基于霍尔效应的电机位置跟踪功能
    7. 4.7 日志记录功能
    8. 4.8 与第三方智能集线器设备的互操作性
  8. 5测试和结果
    1. 5.1 PWM 和霍尔效应信号分析
    2. 5.2 使用 EnergyTrace™ 进行功耗分析
  9. 6总结
  10. 7参考资料

代码流程描述

图 4-1 展示了 CC2340R5 代码内部所用过程的代码方框图。Zigbee 功能可从 window_covering.c 获取,而电机运行在 bdc_motor.c 文件中实现。

 BDC 电机代码图图 4-1 BDC 电机代码图

主函数初始化 BDC 电机示例运行所需的所有 TI 驱动器和计时器。进入主 while 环路后,这会对由硬件回调设置的事件执行进一步的操作。对于提供的应用,通过按下 LaunchPad 上的按钮来触发这些硬件回调。通过子例程维护相应的操作后,会重置事件并且会自动重复该过程。

除一些例外情况外,所有硬件回调都只是发布一个事件以供主应用处理。一种例外情况是 ADCBuf 回调,它会立即处理状态并且不会从主应用程序环路调用任何进一步的操作。

实现了若干定义,用于定义电机的行为,这些定义在以下各节中会被引用。这些可配置的定义在 bdc_motor.c 中提供。

表 4-1 已定义的 BDC 电机应用
定义 默认值 单位 功能
PWM_PERIOD 100 µs 一个 PWM 周期的持续时间
PWM_DUTY_INC 100 µs 在加速期间递增 PWM 占空比或在减速期间递减 PWM 占空比的持续时间
PWM_START_POINT 0 µs 加速起始/减速结束的 PWM 占空比值。通常设置为零
PWM_END_POINT 100 µs 加速结束/减速起始的 PWM 占空比值。在这种情况下,设置为与 100%占空比下 PWM_PERIOD 相同的值
ADCBUF_SAMPLE_SIZE 100 整数 DMA 传输的 ADC 缓冲区大小
ADCBUF_SAMPLING_FREQ 1000 Hz ADC 的采样频率。请注意,已完成的 ADC 缓冲区频率等于 ADCBUF_SAMPLING_FREQ/ADCBUF_SAMPLE_SIZE
USE_HALL 已定义 不适用 确定在功能期间是否使用霍尔效应传感器
STALL_TIMEOUT 1000000 µs 定义 USE_HALL 后,令电机停止运行的超时时间,即霍尔效应传感器检测到电机未运行的这段时间
MOVEMENT_TIME 3000000 µs 未定义 USE_HALL 时,令电机停止运行的超时时间,如果电机转动时间超过此持续时间则电机停止运行
OCP_THRESHOLD 800000 µV 触发过流情况的平均 ADC 缓冲区的最小值