【经验】武汉芯源微控制器CW32F030系列芯片如何运用DMA功能实现高级定时器和ADC的同步触发采样
在做BLDC电机控制时,需要ADC的采样时刻和定时器产生的PWM波形相配合,才能获取准确的采样值,本文介绍了武汉芯源半导体微控制器CW32F030系列芯片通过运用DMA功能实现高级定时器和ADC的同步触发采样的功能。
PWM输出实现
1.1输出端口的配置
根据GPIO复用功能分配表,选取期望输出互补PWM波形的引脚,如本例中PA8、PA9、PA10、PB13、PB14、PB15,如下表所示:
PA8和PB13组成一对互补输出通道CH1,PA9和PB14组成一对互补输出通道CH2,PA10和PB15组成一对互补输出CH3。
步骤如下:
1.将相关的GPIO设置为输出;
2.将GPIO配置为ATIM的比较输出复用功能。
代码如下:
1.2ATIM的配置
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.3ADC的配置
1.3.1序列采样
当需求的采样通道小于等于4路时,可以通过ADC的序列采样模式实现,并且可以通过ATIM的通道1~3比较/捕获寄存器B中任意一个寄存器设定ADC的采样时刻,这些操作都可以由硬件自动完成,减轻了CPU的工作量。
以采样AIN0~AIN3这4路输入为例,设定采样时刻为ATIM计数达到ARR时,其参考代码如下:
上述方法完全由硬件实现,不需要CPU和中断的参与,执行效率非常高,不足的地方是采样通道限制为4路。
1.3.2DMA扩展采样
如果需要对超过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的配置:
这种方法可以实现多于4个模拟通道的采样,采样结果自动保存在内存中,并且仅在最后一个通道采样完成后, 进入一次中断服务程序对DMA的配置进行复位,所以CPU的开销是比较小的,而且可以通过ATIM的比较通道4灵活设置采样时机。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由ll转载自武汉芯源,原文标题为:应用笔记(三)| 运用DMA 功能实现高级定时器和ADC 的同步触发采样,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
CW32数字电压电流表软件教程之ADC采样及显示
本文介绍了ADC基础知识。ADC(模拟数字转换器)是一种将模拟信号转换为数字信号的电子元件。常见的模数转换器是将一个输入电压信号转换为一个输出的数字信号。CW32F003万用表内部集成了一个 12 位精度、最高 1M SPS 的逐次逼近型模数转换器 (SAR ADC),最多可将 16 路模拟信号转换为数字信号。
【经验】武汉芯源半导体CW32微控制器的烧录器CW-Writer介绍及使用方法
本文介绍了武汉芯源半导体CW32微控制器的烧录器CW-Writer以及与之配合的软件CW-Programmer的使用方法。烧录器CW-Writer通过ISP协议,可实现对CW32微控制器FLASH的离线或在线的程序烧录。
【经验】武汉芯源半导体CW32系列微控制器如何进入ISP模式以及ISP协议详解
武汉芯源半导体CW32系列微控制器片上FLASH存储器有一部分区域用于存储BootLoader启动程序,用户可利用BootLoader启动程序提供的ISP模式,通过UART串口方便地实现对CW32微控制器片上FLASH主存储器的擦除和烧写。
【应用】智芯推出基于车规微控制器Z20K148M和无刷电机预驱芯片Z20A8300的热管理域控整体解决方案
智芯推出基于车规微控制器Z20K148M和无刷电机预驱芯片Z20A8300的热管理域控整体解决方案,为客户提供硬件设计、基础软件以及电机控制算法,加速客户的开发速度。
CW32L010 ARM® Cortex®-M0+ 32 位低功耗微控制器用户手册
描述- 本手册为CW32L010微控制器用户手册,提供了关于如何使用该微控制器内存和外设的详细信息。内容涵盖系统架构、存储器组织、电源控制、复位和时钟管理、中断系统、RAM和FLASH存储器、GPIO端口、CRC、RTC、定时器、看门狗定时器、UART、SPI、I2C、红外调制发送器、ADC、模拟电压比较器、低电压检测器、调试接口、数字签名等。手册详细介绍了各个模块的功能、工作原理、编程方法和注意事项。
型号- CW32L010
武汉芯源(CW)CW32系列微控制器选型表
目录- 微控制器
型号- CW32F030K8T7,F002,F003,CW32F030F8V7,CW32L083MCT6,CW32W031R8U6,CW32L031C8T6,A030 系列,L052,L083 系列,F030,L052 系列,CW32F030K8U7,L031 系列,CW32L052R8S6,CW32A030C8T7,A030,CW32L031K8U6,CW32L031C8U6,CW32L031F8P6,CW32L083RCT6,R031 系列,CW32R031C8U6,CW32L052C8T6,CW32L083VCT6,CW32 系列,CW32F020K6U7,F020,CW32,CW32F030F6P7,CW32L052R8T6,CW32F002F3U7,F002 系列,CW32L083RCS6,CW32F020C6U7,R031,CW32L031F8U6,CW32F003F4P7,L031,F030 系列,F003 系列,CW32F020F6U7,CW32F030C8T7,CW32F002F3P7,F020 系列,CW32F003F4U7,CW32L083RBT6,L083,CW32F003E4P7,W031 系列,W031
CW32R031 ARM® Cortex®-M0+ 32 位低功耗无线微控制器用户手册
描述- 本手册为武汉芯源半导体有限公司的CW32R031微控制器用户手册,提供了关于如何使用该微控制器内存和外设的详细信息。手册涵盖了系统架构、存储器组织、电源控制、复位和时钟管理、中断处理、RAM和FLASH存储器、DMA、GPIO、CRC、AWT、RTC、BTIM、GTIM、ATIM、IWDT、WWDT、UART、SPI、I2C、IR、ADC、VC、LVD、BLE-Lite、DBG和数字签名等方面的内容。手册旨在为应用程序开发人员提供全面的技术指导。
型号- CW32R031
汽车BLDC Soc 控制器方案,省钱又省事!
Melexis推出一款适用于直流无刷电机(BLDC)控制的单芯片方案MLX81207,该方案能够帮助客户实现开发出功能简单或复杂的BLDC电机驱动控制器的目的。
CW32F003x3/x4 ARM® Cortex®-M0+ 32 位微控制器,20K 字节 FLASH,3K 字节 RAM 数据手册
描述- 本资料介绍了武汉芯源半导体有限公司生产的CW32F003x3/x4系列ARM® Cortex®-M0+ 32位微控制器。该产品具备高性能、低功耗的特点,适用于各种嵌入式应用。主要特性包括:ARM® Cortex®-M0+ 内核,最高主频48MHz;20K字节FLASH和3K字节RAM存储空间;丰富的外设接口和功能,如ADC、定时器、UART、SPI等。
型号- CW32F003X4,CW32F003F4,CW32F003E4,CW32F003F4P7TR,CW32F003E4P7X,CW32F003X3,CW32F003F4U7,CW32,CW32F003E4P7,CW32F003F4P7
雅特力AT32F421 MCU具有出色的产品性能和市场表现,荣获“2023年BLDC电机控制器行业创芯突破奖”
AT32F421 MCU的CPU主频达120MHz,内存为16~64KB Flash和8~16KB SRAM,外设扩展了1个高速轨到轨输入/输出电压比较器,1个采样率高达2Msps的12位15通道高速ADC,最短采样时间仅54ns,全部转换时间仅0.5ms,非常适合应用于单电阻电流采样的驱动器。
CW32L010 ARM® Cortex®-M0+ 32 位低功耗微控制器数据手册
描述- 本资料为武汉芯源半导体有限公司生产的CW32L010微控制器数据手册。该芯片基于ARM® Cortex®-M0+内核,具备低功耗特性,集成64K字节FLASH和4K字节RAM,支持多种外设和接口,适用于各种嵌入式应用。
型号- CW32L010
【应用】武汉芯源MCU CW32F030用于可燃气体探测器,内置12位ADC,具备高可靠强抗静电性
可燃气体探测器采用武汉芯源的CW32F030C8T6作为主控芯片,主要是基于CW32F030C8T6高精度的ADC,转换速度快,高可靠强抗静电,强抗干扰等特点,为系统提供了很好的保护功能,能确保系统能在恶劣的电磁干扰环境下安全运行。
多资源,高灵活:WAYON高主频8051内核WY8S9003系列通用微控制器来袭!
近日,WAYON正式宣布推出新一代高主频8051内核WY8S9003系列通用微控制器,该MCU集成了双路运放和比较器以及丰富的通讯接口,高度匹配BLDC类电机控制应用,同时也合适无线充、BMS、安防、消费电子等应用领域。
CW32 系列微控制器选型表
型号- CW32F030K8T7,F002,F003,CW32F030F8V7,CW32L010F8U6,CW32L083MCT6,CW32W031R8U6,CW32L031C8T6,L010,A030 系列,L052,L083 系列,L010 系列,F030,L052 系列,CW32F030K8U7,L031 系列,CW32L052R8S6,CW32A030C8T7,A030,CW32L031K8U6,CW32L031C8U6,CW32L031F8P6,CW32L083RCT6,R031 系列,CW32R031C8U6,CW32L052C8T6,CW32L083VCT6,CW32 系列,CW32F020K6U7,F020,CW32,CW32F030F6P7,CW32L052R8T6,CW32F002F3U7,CW32L031K8V6,F002 系列,CW32L083RCS6,CW32F020C6U7,R031,CW32L031F8U6,CW32F003F4P7,L031,F030 系列,F003 系列,CW32F020F6U7,CW32F030C8T7,CW32F002F3P7,CW32L010F8P6,F020 系列,CW32F003F4U7,CW32L083RBT6,L083,CW32F003E4P7,W031 系列,W031
高速风筒采用HK32M060 BLDC MCU方案,可提高电机的工作效率和控制精确度
航顺芯片推出的HK32M060高速风筒BLDC MCU解决方案,具有高级定时器带3路互补PWM、 高精度ADC、6MHz带宽轨到轨运放、比较器、32位针对霍尔传感器的捕获时钟、硬件除法器以及电机算法加速引擎等功能。可广泛应用于工业控制、家用电器、电动工具和交通运输等领域。
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
可来图定制均温板VC尺寸50*50mm~600*600 mm,厚度1mm~10mm,最薄0.3mm。当量导热系数可达10000W/M·K,散热量可达10KW, 功率密度可达50W/cm²。项目单次采购额需满足1万元以上,或年需求5万元以上。
提交需求>
登录 | 立即注册
提交评论