打印
[技术问答]

ADC代码

[复制链接]
1129|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
saservice|  楼主 | 2024-8-24 22:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

概述
NuMicro®NUC029xAN 包含一个12位逐次逼近型模数转换器(SAR A/D转换器) ,包含8个输入通道;NuMicro®NUC029FAE 包含一个10位逐次逼近型模数转换器(SAR A/D转换器),包含8个通道。 NUC029xAN 的A/D转换器支持四种操作模式:单次模式、Burst 模式、单周期扫描模式和连续扫描模式;NUC029xAN 只支持单次模式。A/D转换器可以通过软件、PWM或外部STADC引脚触发转换。
特性
–模拟输入电压范围: 0~AVDD
–2位分辨率和10位精度保证(NUC029xAN)
–10位分辨率和8位精度保证(NUC029FAE)
– 多达8路单端模拟输入通道
或4组互补模拟输入通道 (NUC029xAN)
– 高达760 kSPS采样率(NUC029xAN)
–300 KSPS (VDD4.5V - 5.5V) 、200 KSPS (VDD2.5V - 5.5V)转换率(NUC029FAE)
– 四种操作模式 (NUC029FAE只支持单次模式)

  • 单次模式: A/D在指定通道完成一次转换
  • Burst模式: A/D转换器采样和转换指定单个通道,并将结果循序的储存在FIFO中
  • 单周期扫描模式: A/D按顺序从编号最小的通道到编号最大的通道转换一次所有选定的通道。
  • 连续扫描模式: A/D转换器连续执行单周期扫描模式直到软件停止A/D转换。

– A/D转换可以开始于:

  • 通过软件写1到ADST位(ADCR[11])
  • PWM触发,可选择延时多少周期开始转换
  • 外部STADC引脚

– 每个通道的转换结果存储在相应数据寄存器内,并带有有效和溢出标志
–每个通道拥有独立的数据寄存器(NUC029xAN)
– 转换结果可以和指定的值相比较, 当转换结果和比较寄存器的设定值相匹配时,用户可设定是否产生中断请求.
– 通道 7 支持 3 个输入源:

  • 外部模拟电压
  • 内部 Band-gap 电压
  • 内部温度传感器输出(NUC029xAN)

    基本配置
    ADC引脚功能在P1_MFP寄存器配置。建议关闭模拟输入引脚的数字输入通道,以避免漏电。用户
    可以通过配置P1_OFFD 寄存器关闭数字输入通道。ADC外设时钟可以在ADC_EN(APBCLK[28]) 使能。ADC外设时钟源在ADC_S(CLKSEL1[3:2]) 选择。时钟预分频在ADC_N(CLKDIV[23:16])设置。
    功能描述
    NUC029xAN:
    该A/D转换器通过逐次逼近的方式运行,分辨率为12位。该ADC有四种操作模式:单次模式、Burst
    模式、单次周期扫描模式和连续周期扫描模式。当用户想要改变操作模式或者模拟输入通道,为了
    避免错误的操作,软件必须提前清除ADST(ADCR[11])位为0。

    操作模式
    NUC029xAN A/D转换器支持四种操作模式: 单次模式, Burst模式, 单周期扫描模式和连续扫描模式

单次模式
A/D转换器只对指定的一个通道进行一次转换。操作流程如下:

  • 当软件设置ADST(ADCR[11])位为1或外部触发输入,A/D转换器开始转换。
  • 当A/D转换器转换结束,NUC029xAN 的转换结果储存在对应通道的A/D数据寄存器中,而
    NUC029FAE 的转换结果存储在A/D数据寄存器中。
  • ADF(ADSR[0])位置1. 如果ADIE(ADCR[1]) 位置1, ADC中断将产生。
  • 在A/D转换过程中,ADST(ADCR[11])位保持为1。在A/D转换结束后,ADST位自动清0且A/D
    转换器进入空闲状态。
    注 1: 如果在单次模式,软件使能不止一个通道,只有编号最小的通道被选中,其他使能的通道将被忽略。
    注 2: 在ADC转换时,如果ADST位被清0,BUSY位将被立即清0,ADC不能完成当前转换且A/D转
    换器直接进入空闲状态。

Burst模式
在Burst模式,A/D转换器采样和转换指定单个通道并将转换结果按序存放在FIFO中(最多8次采样)。操作步骤如下:

  • 当ADCR 的ADST(ADCR[11])位通过软件或外部触发输入设置为1,A/D开始转换编号做小的通
  • 当指定通道的A/D转换完成后,转换结果按顺序传输到FIFO中,只能通过A/D数据寄存器0访
    问。
  • 当在FIFO中超过4次采样结果,ADF(ADSR[0]) 位将置1。这个时候,如果ADIE(ADCR[1])位置
    1,在A/D转换结束后,将产生一个ADC中断。
  • 如果ADST(ADCR[11]) 位保持为1,将一直重复步骤2和3。当ADST(ADCR[11])位清0后,ADC
    将不能完成当前转换且A/D转换器直接进入空闲状态。
    注: 在Burst模式,如果软件使能不止一个通道,只有编号最小的通道被转换,其他使能的通道将被
    忽略。

单周期扫描模式
在单周期扫描模式,A/D转换器按编号从小到大采样和转换所有指定的通道一次。操作流程如下:

  • 当ADST(ADCR[11])位通过软件或外部触发输入设置为1,编号最小的通道将开始A/D转换。
  • 当每一个使能的通道A/D转换完成,转换结果按顺序传输到每个通道相应的A/D数据寄存器
  • 当所有使能的通道转换完成,ADF(ADSR[0]) 位将置1。如果ADC中断功能使能,ADC中断产
    生。
  • 在ADC完成一次周期转换,ADST(ADCR[11])位将自动清除为0且A/D转换进入空闲状态。如果
    在所有使能的ADC通道转换完成之前,ADST(ADCR[11])位清为0,ADC将不能完成当前转换
    且A/D转换器直接进入空闲状态。


连续扫描模式
在连续扫描模式下,A/D转换器循环转换CHEN(ADCR[7:0])使能的通道(最多8个通道),操作流程如下:

  • 当ADST(ADCR[11])位通过软件或外部触发输入置1,A/D开始转换编号最小的通道。
  • 当每个使能的通道A/D转换完成,每个使能通道的转换结果存储在每个使能通道对应的A/D寄存
    器中。
  • 当A/D转换器按顺序完成所有使能通道的转换,ADF(ADSR[0])将置1 。如果ADC中断功能使
    能,ADC中断发生。如果软件没有清除ADST(ADCR[11])位,使能的通道将再一次从编号最小
    的通道开始转换。
  • 如果ADST(ADCR[11])位保持为1,将重复执行步骤2~3。当ADST(ADCR[11])清0后,ADC不能
    完成当前转换且A/D转换器直接进入空闲状态。


外部触发输入采样和A/D转换时间
NUC029xAN:
在单次扫描模式,可以通过外部引脚触发A/D转换。TRGEN(ADCR[8]) 位设置为0使能ADC外部触发功能,设置TRGS(ADCR[5:4]) 为00b 选择外部触发输入为STADC 引脚。软件可以通过设置TRGCOND(ADCR[7:6]) 选择触发条件为下降/上升沿或低/高电平。如果选择电平触发,STADC引脚必须保持指定状态至少8个PCLK。在第9个PCLK,ADST(ADCR[11]) 位将被置1且开始转换。在电平触发模式下,如果外部触发输入保持有效状态,转换将持续进行。只有在外部触发条件消失,转换才会停止。如果选择边沿触发条件,高和低状态都至少持续4个PLCK。如果脉冲满足不了该条件,将被忽略。
注: 使能ADC外设时钟后,用户须在至少4个PCLK之后方能使能外部触发功能或使能ADC。

PWM 触发
NUC029xAN:
在单周期扫描模式,A/D可以通过PWM触发转换。设置TRGEN(ADCR[8])位为1使能ADC外部触发功能,设置TRGS(ADCT[5:4]为11b选择外部硬件触发输入源为PWM。当PWM触发使能时,设置PTDT(ADTDCR[7:0])位可以在PWM触发和ADC开始转换之间插入一个延时时间。
通过比较模式功能监控转换结果
NuMicro®NUC029系列ADC控制器提供两个比较寄存器(ADCMPR0 和 ADCMPR1)来监控最多两个通道。软件可以通过设置 CMPCH(ADCMPRx[5:3]) 选 择 监 控 哪 个 通 道 。
CMPCOND(ADCMPRx[2]) 位指定比较条件。如果CMPCOND(ADCMPRx[2]) 位为0,当转换结果小于CMPD[11:0](NUC029xAN)/ CMPD[9:0](NUC029xAN)的值时,内部匹配计数器将加1;如果CMPCOND(ADCMPRx[2]) 位为 1 ,当转换结果大于或等于 CMPD[11:0] ( NUC029xAN ) /CMPD[9:0](NUC029xAN)的值时,内部匹配计数器将减1。当CMPCH(ADCMPRx[5:3])指定的通道转换完成时,将自动触发一次比较。当比较结果和设定值相匹配,比较匹配寄存器加1,否则比较匹配计数器将清0。当匹配计数器到达(CMPMATCNT+1) 设置的值时,CMPF 位将置1,如果CMPIE(ADCMPRx[1])位设置为1,将产生一个ADC_INT 中断。在扫描模式,软件可以通过该功能监控外部输入引脚电压变化而不会增加软件负载。详细逻辑框图如下:

中断源
ADC 中断有 3 个中断源。当 ADC 完成转换, A/D 转换完成标志 ADF(ADSR[0]) 将被置 1 。
CMPF0(ADSR[1])和CMPF1(ADSR[2])为比较功能的比较标志位。当转换结果与ADCMPR0/1设置的条件匹配时,相应的位将置1。当ADF(ADSR[0]), CMPF0(ADSR[1]) 和 CMPF1(ADSR[2])标志有一个置1且相应中断使能位ADIE(ADCR[1])和CMPIE(ADCMPRx[1])置1,ADC中断将产生。软件可以清除这些标志位来取消中断请求。


使用特权

评论回复
沙发
zhuomuniao110| | 2024-9-7 23:52 | 只看该作者
貌似不在中断模式下也有标志产生。

使用特权

评论回复
板凳
AloneKaven| | 2024-9-11 21:38 | 只看该作者
为啥这个才10位adc啊,不都12位的?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

1261

帖子

2

粉丝