[原创] 【晒心得】-- STM32F0xx ADC的特点及应用

dontium   2013-11-18 14:30 楼主
STM32F0xx ADC的特点及应用


STM32F0xx ADC的特点及应用
STM32F0xxADC,属于逐次逼近型,12位,最快转换时间1uS。并且STM32F0xxADCDMA支持,ADCDMA均可以产生中断,更增添了使用的灵活性。
STM32F0xx ADC.jpg
一、      ADC的启动与停止
ADC_CR寄存器的ADEN位,允许ADC;置ADDIS位,禁止ADC。在置位ADEN后,最长需要1uS的时间,才使ADC启动。
二、ADC时钟
STM32F0xx有两个时钟源:PCLK时钟及ADC异步时钟。ADC异步时钟可以使ADC独立于CPU时钟工作,对于低功耗下特别有用。
选择ADC时钟,由ADC_CFGR2寄存器的CKMODE[1:0]位决定
  
ADC clock source
  
CKMODE[1:0]
Latency between the trigger event and the  start of conversion
Dedicated 14MHz clock
00
Latency is not deterministic (jitter)
PCLK divided by 2
01
Latency is deterministic (no jitter)  and  equal to 2.75 ADC clock cycles
PCLK divided by 4
10
Latency is deterministic (no jitter)  and  equal to 2.625 ADC clock cycles
三、ADC配置
主要是对ADC_CRADC_IER, ADC_CFGRi, ADC_SMPR,ADC_TR, ADC_CHSELRADC_CCR等寄存器的控制。
四、转换通道选择
STM32F0xxADC可以单个转换,也可以序列转换。
l        最多16个使用GPIO引脚的输入通道
l        两个内部输入通道(温度传感器和模拟参考源)
它可以轮换单个通道,也可以自动扫描转换通道序列。要转换的通道序列必须在ADC_CHSELR寄存器中指定。转换的次序要ADC_CFGR1中指定。
五、可编程的采样时间
ADC对输入信号的采样时间,设置ADC_SMPR 寄存器的SMP[2:0] 位:
000: 1.5 ADC clock cycles
001: 7.5 ADC clock cycles
010: 13.5 ADC clock cycles
011: 28.5 ADC clock cycles
100: 41.5 ADC clock cycles
101: 55.5 ADC clock cycles
110: 71.5 ADC clock cycles
111: 239.5 ADC clock cycles
六、单次模式
在单次转换模式,ADC将启动单序列的转换,即将所有设置转换的通道转换一次。这种模式需要使ADC_CFGR1寄存器的CONT=0
它可以由两种方法启动转换:
l        置位ADC_CR的ADSTART位
l        硬件事件触发
单次转换结束后,将:
Ø        结果存入16-bit ADC_DR寄存器;
Ø        置位EOC
Ø        产生中断(如果EOCIE置位)
七、连续转换
在连续转换模式,转换序列启动后,对所要转换的序列进行转换,结束后自动地重新开始下一次转换。
连续转换需要设置ADC_CFGR1CONT位为1,它可以由两种方法启动转换:
l        置位ADC_CR的ADSTART位
l        硬件事件触发
转换结束后,将:
Ø        结果存入16-bit ADC_DR寄存器;
Ø        置位EOC
Ø        产生中断(如果EOCIE置位)

回复评论 (1)

你说的这些,手册上都有!!!
点赞  2019-3-27 13:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复