1.NUC1xx系列ADC的特点: +模拟信号输入电压范围:0~Vref(最大5伏)
+12位分辨率,10位精度
+最大8路独立模拟信号输入或者4路差分信号输入
+最快A/D转换时钟频率16MHz
+最快转换率800K次/秒,每次转换时间小于1.25us
+三种操作模式
--单次模式:单通道A/D转换
--单次扫描模式:使能的通道连续转换
--连续扫描模式:使能的通道重复连续转换
+A/D转换的触发方式
--软件写‘1’到ADST位
--引脚STADC的外部信号
+每个通道的转换结果保存在各自的数据寄存器中,寄存器可以显示数据是否有效以及转换结果是否被覆盖
+转换结果可以用来与特定的值比较,当转换结果等于比较寄存器的设定时,用户可以选择是否产生中断
+通道7支持3种输入源:外部模拟电压,内部基准电压以及内部温度传感器信号输出
+支持自校正功能,最小化转换误差 2.操作流程
该转换器是一个12位分辨率的逐次逼近型模数转换器,该转换器配备有自校准功能来最小化转换误差,用户可以通过向寄存器ADCALR中CALEN位写‘1’来启动自校准功能,等内部校准完成后CAL_DONE将被置位。A/D转换器支持3种操作模式:单次模式,单次扫描模式,连续扫描模式。在使能模拟信号输入通道或者改变操作模式的时候,为了防止误操作,软件必须将寄存器ADCR中ADST位置‘0’,当ADST为被置‘0’的时候,A/D转换器立即停止当前转换进入空闲状态。 2.1 自校准 用户可以通过向寄存器ADCALR中CALEN位写‘1’来启动自校准功能,这个操作在内部执行,需要127个时钟周期。CALEN位写‘1’后软件必须等CAL_DONE被内部硬件置位。详细时序如下图:
图1 A/D 转换器自校准时序图 2.2 AD转换时钟产生器
最大采样率可以达到800KHz,每次转换时间小于1.25us,每次A/D转换需要20个时钟周期。ADC模块通过配置寄存器CLKSEL1[3:2] ADC_S有3个时钟源可选,寄存器CLKDIV[16:23] ADC_N用来设置A/D转换的时钟频率,公式如下:
ADC时钟=(ADC时钟源)/(ADC_N+1)
这样,软件通过设置ADC_S和ADC_N可以得到16Mhz左右的时钟频率。
2.3 单次转换模式
在单次转换模式下,A/D转换只是在设定的通道中执行一次,操作如下:
1. 当寄存器 ADCR 中位ADST 被软件或者外部触发置‘1’后,转换开始
2. A/D 转换结束后,结果放在相应通道的数据寄存器中
3. 转换结束后,寄存器ADSR 中ADF 位被置‘1’,如果 ADIE 位为‘1’,将会产生一个ADINT 中断
4. 在A/D 转换过程中 ADST 位保持为‘1’,转换结束后ADST 被自动清零,A/D 转换模块进入空闲状态。在转换的过程中如果把ADST位清零,A/D 转换器将立即停止并进入空闲模式注意:如果在单次模式中软件使能了不止一个通道,最小通道将被转换,其他通道被忽略
图2 单次转换模式时序图 2.4 连续扫描转换模式
在连续扫描模式下,A/D转换在由寄存器ADCHER位CHEN使能的通道中(最大8通道)顺序执行,操作流程如下:
1. 当寄存器 ADCR 中位ADST 被软件或者外部触发置‘1’后,A/D 转换从最低的通道开始
2. 当所有被使能的通道转换结束后,结果被顺序存储在相应通道的数据寄存器中
3. 当所有被使能的通道转换结束后,寄存器ADSR 中ADF 位被置‘1’,如果ADIE 位为‘1’,将会产生一个 ADINT 中断
4. 上面第2 步到第3 步重复执行直到ADST 位被清零,ADST 被清零后,A/D 转换模块停止并进入空闲状态。
下图是一个使能(0,2,3,7)通道的连续扫描转换模式的时序图:
图3 连续扫描转换模式时序图
|