文章目录

ADC配置的三要素
- 启动SOC的触发源
- 转换通道
- 采样窗口大小
当采样完成后,数据会存在ADCRESULTx
寄存器(对应SOCx)
EOC和中断操作
EOC:ADC转换结束,会产生相应的信号
- 采集窗口结束或电压转换结束时产生EOC信号,用于产生ADC中断信号
- 一共有16个EOC信号,可以配置的4个ADC中断信号
中断溢出(目前用不上,不深究)
当EOC信号触发中断,并对寄存器ADCINTFLG
设置中断标志位时,发现该中断标志位已经是置位情况了,这种现象称为中断溢出。
- 默认情况,溢出中断信号不会送到PIE
- 中断溢出发生时,会将
ADCINOVF
寄存器置位
持续中断模式(Continue to Interrupt Mode)
- 通过设置寄存器
ADCINTSEL1N2
和ADCINTSEL1N2
中的INTxCONT
位配置该模式 - 开启持续中断模式,ADC中断信号会始终送往PIE(我推测应该是开启该模式后,就算是发生中断溢出情况,ADC中断信号还是会触发PIE)
提前中断模式(Early Interrupt Configuration Mode)
-
在ADC转换结果出来之前就可以进入ADC中断服务程序(可用于预处理,便于获取ADC结果后能立即采取操作)
-
将
ADCCTL1
寄存器中的INTPULSEPOS
位设置为0开启该模式 -
为了防止过早进入ADC中断服务程序(浪费时间),可以通过配置
ADCINTCYCLE
寄存器中的DELAY
字段配置,DELAY
值需要设置为SYSCLK周期数,其范围是从SOC脉冲信号下降沿开始,到ADC中断标志位置位之间所需的SYSCLK周期数
后处理模块(Post-Processing Blocks)
(暂时用不到,不深究)
每一个ADC模块包含4个PPB,PPB能通过寄存器ADCPPBxCONFIG.CONFIG
字段与16个ADC结果寄存器任何一个相关联
PPB功能:
- 对ADC的结果进行校准
- 与参考值作差
- 标记过零点(zero-crossing point)、最高和最低的比较限制,并可选择trip pwm和产生中断
- 记录SOC触发与ADC实际采样时间之间的延迟
ADC时序
ADC转换过程分为两部分:S+H阶段、转换阶段
S+H阶段:ADC采样和保持过程,由SYSCLK计时
- 持续时间=(正在转换的SOC的
ACQPS
+1)*SYSCLK周期 - 持续时间必须超过1个ADCCLK周期,以及数据表(参考手册Table10-12和Table10-13)中指定的最小S+H持续时间
- 12位模式下,转换时间约为10.5个ADCCLK周期
- 16位模式下,转换时间约为29.5个ADCCLK周期
- 但确切转换时间一定时SYSCLK周期的整数倍
转换阶段:由ADCCLK计时(基于SYSCLK分频生成的时钟)
ADC时序中的四个描述时间
tSH:S+H阶段时间
tLAT:从S+H阶段结束后到ADC将结果存放到ADCRESULTx
寄存器花费的时间
tEOC:当前S+H时间结束到下一个ADC转换的S+H时间开始
tINT:S+H阶段结束到ADCINT标志位置位