打印
[应用相关]

STM8 模拟/数字转换器(ADC) 转换模式

[复制链接]
821|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2021-10-18 09:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘要: STM8模拟/数字转换器(ADC)转换模式ADC支持5种转换模式:单次模式,连续模式,带缓存的连续模式,单次扫描模式,连续扫描模式。单次模式在STM8的ADC单次转换模式中,ADC仅在由ADC_CSR寄存器的CH选定的通道上完成一次 ...


STM8模拟/数字转换器(ADC)转换模式
ADC支持5种转换模式:单次模式,连续模式,带缓存的连续模式,单次扫描模式,连续扫描模式。
单次模式
在STM8的ADC单次转换模式中,ADC仅在由ADC_CSR寄存器的CH[3:0]选定的通道上完成一次转换。该模式是在当CONT位为0时通过置位ADC_CR1寄存器的ADON位来启动的。
一旦转换完成,转换后的数据存储在ADC_DR寄存器中,EOC(转换结束)标志被置位,如果EOCIE被置位将产生一个中断。
连续和带缓存的连续模式
续转ADC在完成一次转换后就立刻开始下一次的转换。当CONT位被置位时即在连换模式中,将ADC设为连续模式,该模式是通过置位ADC_CR1寄存器的ADON位来启动的。
  • 如果缓冲功能没有被使能(ADC_CR3寄存器的DBUF位=0),那么转换结果数据保存在ADC_DR寄存器中同时EOC标志被置位。如果EOCIE位已被置位时将产生一次中断。然后开始下一次转换。
  • 如果缓存功能被使能(DBUF=1),那么某个选定通道上的8个或者10个连续的转换结果会填满数据缓存,当缓存被填满时,EOC(转换结束)标志被置位,如果EOCIE位已被置位,则会产生一个中断,然后一个新的转换自动开始。如果某个数据缓存寄存器在被读走之前被覆盖,OVR标志将置1。
如果要停止STM8的ADC连续转换,可以复位清零CONT位来停止转换或者复位清零ADON位来关闭ADC的电源。
单次扫描模式
该模式是STM8S用来转换从AIN0到之间的一连串模拟通道,'n'是在ADC_CSR寄存器的CH[3:0]位中指定的通道编号。在扫描转换的过程中,序号CH[3:0]位的值是被硬件自动更新的,它总保存当前正在被转换的通道编号。
单次转换模式可以在在SCAN位被置位且CONT位以被清零时通过置位ADON位来启动。
注意:当使用扫描模式时,不可以将AIN0到AINn之间通道对应的I/O口设为输出状态,因为ADC的多路选择器已经将这些I/O口的输出模块禁用了。
对于单次扫描模式,转换是从AIN0通道开始的,而且结果数据被存储在数据缓冲寄存器 ADC_DBxR中,当最后一个通道(通道'n')被转换完成后,EOC(转换结束)标志被置位,当 EOCIE位已被置位时将产生一个中断。
可以从缓冲寄存器中读取各个通道的转换结果值。如果某个数据缓存寄存器在被读走之前被覆盖,OVR标志将置1。
在转换序列正在进行过程中不要清零SCAN位;单次扫描模式可通过清零ADON位来立即停止。为了开启一次新SCAN扫描转换,可以通过对ADC_CR1寄存器的EOC位清零和ADON位置位来实现。
连续扫描模式
该模式和单次扫描模式相近,只是每一次在最后通道转换完成时,一次新的从通道0到通道n扫描转换会自动开始。如果某个数据缓存寄存器在被读走之前被覆盖,OVR标志将置1。
连续扫描模式是在当SCAN位和CONT位已被置时,通过置位ADON位来启动的。
在转换序列正在进行过程中不要清零SCAN位。
连续扫描模式可以通过清零ADON位来立即停止。另外一种选择就是当转换过程中清除CONT位那么转换会在下一次的最后一个通道转换完成时停止。
注意:在STM8扫描模式中,不要使用位操作指令(BRES)去清除EOC标志位,这是因为该指令是对整个ADC_CSR寄存器的一个读-修改-写操作。从CH[3:0]寄存器中读取当前的通道编号和写回该寄存器,将会改变扫描系列的最后通道编号。
在连续扫描模式中正确的清除EOC标志位的方法是从一个RAM变量中载入一个字节到ADC_CSR寄存器,这样来清除EOC标志位同时还重新载入扫描系列新的最后通道编号。


使用特权

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

本版积分规则

2038

主题

7364

帖子

10

粉丝