前言
在做 bldc 电机控制时,需要 adc 的采样时刻和定时器产生的 pwm 波形相配合,才能获取准确的采样值, 本文介绍了 cw32f030 系列芯片通过运用 dma 功能实现高级定时器和 adc 的同步触发采样的功能。
▇ pwm 输出实现
1.1 输出端口的配置
根据 gpio 复用功能分配表(完整表格请参阅 cw32f030 用户手册中表 9-2 gpio 复用功能分配表),选取期 望输出互补 pwm 波形的引脚,如本例中 pa8、pa9、pa10、pb13、pb14、pb15,如下表所示:
▼ gpio 复用功能分配表
pa8 和 pb13 组成一对互补输出通道 ch1,pa9 和 pb14 组成一对互补输出通道 ch2,pa10 和 pb15 组成一 对互补输出 ch3。
步骤如下:
1. 将相关的 gpio 设置为输出;
2. 将 gpio 配置为 atim 的比较输出复用功能。
代码如下:
1.2 atim 的配置
atim 包含一个 16 位的计数器 / 定时器和 7 个比较单元。7 个比较单元中,有六个具有捕获功能,并且这 6 个捕获 / 比较单元可以成对使用,组成互补输出的功能。
本文以产生一个驱动 bldc 电机所需的 20khz 的三路互补输出的 pwm 波形为例,选取 atim 的时基信号为 pclk。
本例中 pclk 为 64mhz,并通过 atim 的预分频器进行 16 分频后,以 4mhz 频率进行计数。
为方便设定 adc 的采样时间,atim 采用中央对齐模式计数,设置 atim 的自动重载寄存器(arr)为 100, 则 atim 的将先从 0 累加至 99,再从 100 递减至 1,故计数周期为 2 倍的 arr 寄存器的值,即 pwm 的频率 为 20khz。
通过设置 atim 的控制寄存器(cr)的 comp 位为 1,使得 pwm 以互补的方式输出,ch1a 和 ch1b 的脉宽 由通道 1比较 /捕获寄存器 a(ch1ccra)决定,ch1b的输出脉宽不再由通道 1比较 /捕获寄存器 b(ch1ccrb) 决定,ch1ccrb 仍可用于设定 ch1b 比较匹配的值。ch2a 和 ch2b,ch3a 和 ch3b 与之类似。
在设置输出 pwm 互补输出时,可以对互补通道加入死区时间,由死区时间寄存器(dtr)控制。
atim 配置输出 3 对互补带死区的 pwm 波形,详细配置代码如下:
▼ 产生的 pwm 波形如下:
1.3 adc 的配置
1.3.1 序列采样
当需求的采样通道小于等于 4 路时,可以通过 adc 的序列采样模式实现,并且可以通过 atim 的通道 1~3 比 较 / 捕获寄存器 b 中任意一个寄存器设定 adc 的采样时刻,这些操作都可以由硬件自动完成,减轻了 cpu 的工作量。
以采样 ain0~ain3 这 4 路输入为例,设定采样时刻为 atim 计数达到 arr 时,其参考代码如下:
上述方法完全由硬件实现,不需要 cpu 和中断的参与,执行效率非常高,不足的地方是采样通道限制为 4 路。
1.3.2 dma 扩展采样
如果需要对超过 4 路的模拟量进行采样,则需要结合 dma 的功能,以实现较少的 cpu 参与。其思路如下:
1. adc 配置为单通道单次转换,完成转换后硬件触发 dma;
2. dma 的 ch1 用于将 adc 的转换结果传输到 ram 中,本例中将采样 6 个 adc 通道,因此传输次数 cnt 为 6,源地址固定为 adc 的 result0 寄存器,目的地址需要递增;
3. dma 的 ch2 用于更改 adc 的采样通道,当 adc 转换完成后,从 ram 中取 adc 的通道配置参数,自 动配置 adc 的寄存器值,因此源地址为 ram,地址递增,目的地址为 adc 的通道控制寄存器;
4. dma 的 ch3 用于再次启动 adc,因为 adc 配置为单次转换,当转换完成后,adc 自动停止转换,所 以需要通过 dma 向 adc 的转换启动寄存器置位,以再次启动 adc 转换;
5. dma 的 ch1 传输完成后,adc 的 6 路转换也完成了,并且转换结果也被传输到 ram,可通过 ch1 的 传输完成中断,将 dma 的参数重新配置,就实现了多路 adc 的循环采样;
6. 通过 atim 的比较通道 4,去触发 dma 的 ch4,向 adc 的转换启动寄存器置位,启动 adc。
其参考代码如下:
• adc 的配置:
adc 配置为单次单通道采样,采样完成后可触发 dma。
• dma 的配置:
• atim 需要在之前的配置上增加通道 4 的设置,增加的代码如下:
这种方法可以实现多于 4个模拟通道的采样,采样结果自动保存在内存中,并且仅在最后一个通道采样完成后, 进入一次中断服务程序对 dma 的配置进行复位,所以 cpu 的开销是比较小的,而且可以通过 atim 的比较 通道 4 灵活设置采样时机。
智能门禁的新秀——人脸识别门禁
苹果推出全新AI技术:HUGS,仅需30分钟即可生成短视频
工业互联网的内涵是什么?工业互联网与传统互联网有什么区别?
多载波WCDMA的可行性
奥比中光与高校开展产学研合作 助力夯实3D视觉行业人才基础
应用笔记(三)| 运用DMA 功能实现高级定时器和ADC 的同步触发采样
ARM中国合资公司:未来还计划登陆A股市场,最快在年内IPO
自动神经结构搜索方法实现高效率卷积神经网络设计
对棒线材中的螺纹钢测量最关心的是特征尺寸
集成电路供应链及先导技术产业创新中心项目进行环评公示
什么是新数字经济,对制造业发展有何影响
新基建背景下,区块链将如何发展
储能+光伏是提高供电可靠性的重要手段,应怎样融合发展?
魅族全新的flyme6今日公测,魅友们准备好了吗?
英特尔宣布成功收购了NetSpeed Systems初创公司
LED色彩变换基础知识与常识,LED能量损失是怎样发生的?
5v2A充电器芯片U25135承载更多期待
工业和信息化部和埃及通信信息技术部签署了5G合作协议
Nexperia(tm)PNX1500互联媒体处理器的网络媒体播放器参考设计
Facebook将更好使用区块链技术