本帖最后由 AutochipsMCU 于 2019-7-16 17:22 编辑
ADC模块介绍
ADC特性
ADC通道输入电压范围:AVSS < Vin < AVDD。ADC基准电压为AVDD电压值。 12位的SAR ADC 外部输入阻抗:最大值5kΩ。其他硬件相关的指标参考datasheet 6.4.1 ADC特性章节。 最大转换速率:500K 18个通道,每个通道可配置采样时间。有16个外部通道,一个内部温度传感器(T-Sensor),一个内部带隙基准电压检测(Bandgap)。 转换序列分为规则组和注入组。规则组最多可配置16个通道,注入组最多可配置4个通道。 可配置8种ADC工作模式 可通过内部软件触发或外部硬件触发启动ADC 模拟看门狗功能。可配置为单个或所有通道进行电压检测,监控通道电压是否低于低阀值或高于高阀值。 可产生三种中断信号。规则或注入组转换结束(EOC),注入组转换结束(IEOC),模拟看门狗事件(AMO) 规则组支持DMA访问
备注: 1.为啥只有规则组支持DMA访问? 注入组最多可支持配置4个通道,每一路都有对应的寄存器存储转换值。注入组转换结束后会产生中断,在中断中把值取出来即可,无需DMA。 规则组最多可支持配置16个通道,但只有一个寄存器存储转换值。如果规则组配置了多个通道,多个通道都转换结束后才会产生中断,所以必须配合DMA来存储每个通道的转换值。当然,如果规则组长度为1,不用DMA也行。
ADC工作模式
ADC工作模式的详细介绍,请参考《ATC_AC781x_ReferenceManual_CH.pdf》10.3.3 ADC工作模式章节。 8种工作模式总结如下表:
备注: MODE_BITS = {SCAN, CONT, DISCEN, IDISEN, IAUTO}. SCAN:扫描模式配置位 CONT:连续模式配置位 DISCEN:规则组间断转换模式配置位 IDISEN:注入组间断转换模式配置位 IAUTO:自动注入模式配置位
CTU模块介绍
从ADC特性可知,不管是规则组还是注入组,ADC转换的触发方式都有两种:内部软件触发,外部硬件触发。外部硬件触发与其他模块相关联。这种模块间的互联操作需要配置CTU模块。 CTU模块特性: 1) UART TX调制 2) UART RX捕获 3) UART RX滤波 4) RTC捕获 5) ADC触发 6) PWM2同步 本贴主要介绍ADC触发配置。 ADC硬件触发
ADC可配置2个硬件触发器。通过设置CTU_CFG1[ADHWT1]寄存器可配置触发器1的源。 通过设置CTU_CFG1[ADHWT2]寄存器可配置触发器2的源。下图给出了可用的ADC硬件触发1的源。 当ADC硬件触发器选择PWM2触发器输出时,将使能一个8位延迟模块。该模块使用8位计时器延迟PWM2的任何触发,计时器的值由CTU_CFG1[DELAY]指定。该模块的参考时钟是具有CTU_CFG1[BUSREF]指定的可选预分频器的总线时钟。 备注:PWM2触发延时功能的应用场景主要在电机控制领域。电机控制时需要通过ADC采集相电流、线电压等瞬间参数,所以需要用外部硬件触发ADC。
从上表可知,RTC、PWM0、PWM2、TIMER0、TIMER1、ACMP0、ACMP1模块都能触发ADC采样。除PWM2需要配置PWMx->EXTTRIG寄存器外,其他模块都不需额外配置。
例程介绍
adc_sample例程通过设置宏ADC_SAMPLE_SELECT参数来编译对应例程。详情参考附件。 #define ADC_SAMPLE_TIMER_TRIGER_REGULAR 1//例程1.Timer定时触发规则组ADC采样
#define ADC_SAMPLE_PWM_TRIGER_INJECT 2//例程2.PWM2触发注入组ADC采样
#define ADC_SAMPLE_SW_TRIGER_REGULAR 3//例程3.软件触发规则组ADC采样
#define ADC_SAMPLE_SW_TRIGER_INJECT 4//例程4.软件触发注入组ADC采样
#define ADC_SAMPLE_SELECT ADC_SAMPLE_TIMER_TRIGER_REGULAR
adc_sample.rar
(135.31 KB)
更多模块例程详见官网
http://www.autochips.com/cn/MCU/
|