ZHCAFT7 October   2025 CC2340R5

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 CC2340R5
    2. 1.2 DRV8329A
    3. 1.3 BLDC 电机
  5. 2BLDC 硬件
    1. 2.1 硬件设置
      1. 2.1.1 DRV8329AEVM 设置
    2. 2.2 连接图
  6. 3运行示例
    1. 3.1 依赖项
    2. 3.2 加载固件
    3. 3.3 电机连接测试
    4. 3.4 具有蓝牙® 低功耗且带霍尔传感器的 BLDC 电机陷阱运行
      1. 3.4.1 SimpleLink™ Connect 手机应用
  7. 4固件设计
    1. 4.1 代码流程描述
    2. 4.2 定制 TI 驱动器
      1. 4.2.1 PWM
      2. 4.2.2 ADCBuf
      3. 4.2.3 电源
    3. 4.3 应用事件
    4. 4.4 换向表
    5. 4.5 电机加速
    6. 4.6 ADC 运营
    7. 4.7 旋转检测功能
    8. 4.8 报告统计信息
    9. 4.9 蓝牙® 低功耗栈
  8. 5测试和结果
  9. 6总结
  10. 7参考资料

ADC 运营

使用单个 CC2340R5 的 ADC 外设时,由于需要测量的 ADC 输入数量(ADC_COUNT 为五个)多于可用的寄存器数量(四个),并且还必须在每个 PWM 占空比输出周期(即以 PWM_PERIOD/2 的速率)采样 ISEN 引脚(电机电流),因此对所有相关 ADC 通道进行测量存在一定难度。所采用的实现方式是使用经过修改的 ADCBuf TI 驱动器,它利用 ADC 和 DMA 在不中断 CPU 的情况下快速高效地填充大小为 ADCSAMPLESIZE 的 ADC 缓冲区,持续测量 ISEN 和 VSENPVDD(系统电压),并在此过程中定期中断此过程,同时以 ADC_INTERVAL 的速率测量其余 VSENA、VSENB 和 VSENC ADC 引脚。因此,由于每次 ADC_INTERVAL 计时器到期时触发的单次 ADC 测量所需的时间和频率,通过 ADCBuf 获取的每个通道的 ADC 测量次数略低于 PWM_PERIOD/2。由于 ADCBuf 驱动器已配置为通过 PWM LGPT 活动触发 ADC,因此在电机停止时,驱动器不会进行测量。相比之下,每当 ADC_INTERVAL 发生时,单次 ADC 测量都是有效的,与电机是否运转无关。

在 ADC 外设上还启用了窗口监控器,以便在最新的 ISEN 测量值进入或超过窗口限制时,能够立即采取相应措施,并在 adcBufCallback 中进行进一步处理。当测量值超过 WINDOW_LOW 时,ADC 回调状态 ADC_INT_INIFG 会减少 PWM 占空比,直到占空比低于窗口值为止。此时,ADC_INT_LOWIFG 状态会使占空比回到原始值。如果超过 WINDOW_HIGH,则 ADC_INT_HIGHIFG 状态会立即停止电机。任意 ADC 存储寄存器都可以触发窗口监控器,但低窗口阈值和高窗口阈值各只能设置一个值。目前仅 ISEN 配置为使用存储寄存器 2 并启用了窗口监控器,因此只有 ISEN 可以触发窗口监控器。由于 ISEN 在两个 ADC 存储寄存器(0 和 2)之间切换,窗口监控器对 ISEN 的评估速率约为 10kHz。

每当 ADC 回调被触发且不是由窗口监控器状态引起时,表示 ADC 缓冲区已填充。应用会使用 ADC 转换的结果填充 outputBuffer 数组,并评估接收到的 VSENPVDD ADC 转换超过 VSEN_THRESHOLD 时是否需要停止电机。所有转换均为 12 位分辨率(最大值为 4096),并以原始格式保留。尽管 TI 驱动器中还提供了额外的处理 API,可用于进一步调整这些值并将其转换为 µV 格式。必须小心操作,确保这些处理不会干扰电机驱动功能。