立即注册 找回密码

微雪课堂

搜索
微雪课堂 STM8 STM8单片机内核剖析 查看内容

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

2015-7-15 16:50| 发布者: waveshare-admin| 查看: 6731| 评论: 0

摘要: 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标志位同时还重新载入扫描系列新的最后通道编号。

以上资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!


420

顶一下

刚表态过的朋友 (420 人)

最新评论

所有教程
    01STM8 CPU
    简介STM8S是基于8位框架结构的微控制器,其CPU内核有6个内部寄存器,通过这些寄存器可
    02STM8 CPU寄存器映射
    CPU寄存器在STM8的地址空间映射如表2所示。只有CPU的调试模块才可以使用这些寄存器的
    03STM8 全局配置寄存器(CFG_GCR)
    激活级别用户可通过对CFG_GCR寄存器中的AL位编程来配置MCU的激活级别。如何使用该位请
    04STM8 用于系统启动的只读存储器
    在某些STM8型号中有2K字节的内部BOOT ROM,其中包含有用于启动的代码。这段代码的主
    05STM8 存储器和寄存器映射
    要了解关于STM8存储器映射、I/O端口硬件寄存器映射以及CPU/SWIM/调试模块/中断控制寄
    06STM8 FLASH主要特性
    STM8内部的FLASH程序存储器和数据EEPROM由一组通用寄存器来控制。用户可以使用这些寄
    07STM8 存储器组织结构
    STM8S的EEPROM以32位字长(每字4字节)为基础组织起来。根据不同的器件,存储器组织机
    08STM8 用户启动区域(UBC)
    用户启动区域(UBC)包含有复位和中断向量表,它可用于存储IAP及通讯程序。UBC有一个两
    09STM8 存储器保护
    读保护当选项字节中的ROP字节被编程为'0xAA'时,读保护就生效了。这种情况下,无论写
    010STM8 读同时写(RWW)
    RWW特性允许用户在执行程序和读程序存储器时对DATA EEPROM区域进行写操作,因此执行的
    011STM8 ICP和IAP
    在线编程(ICP)用于更新STM8整个存储器的内容。ICP使用SWIM接口把用户的程序装载到微控
    012STM8 FLASH寄存器
    FLASH控制寄存器1(FLASH_CR1)地址偏移值:0x00复位值:0x00位7:4保留位,必须保持为0
    013STM8 单线接口模块(SWIM)和调试模块(DM)
    介绍STM8在线调试模式或在应用编程模式由一个单线硬件接口来管理,该接口拥有对存储器
    014STM8 供电电源
    STM8 MCU有四种相对独立的供电电源:VDD/VSS:主电源(3V到5.5V)VDDIO/VSSIO:I/O口供
    015STM8 复位
    STM8S共有9个复位源:NRST引脚产生的外部复位上电复位(POR)掉电复位(BOR)独立看门狗复
    016STM8 复位(RST)寄存器
    复位状态寄存器(RST_SR)地址偏移值:0x00复位值:未定义位7:5保留位,必须保持为0位4E
    017STM8 复位寄存器地址映射
    复位状态寄存器(RST_SR)请参考对应的数据手册了解基地址信息。(表7:STM8复位寄存器地
    018STM8 时钟控制
    时钟控制器功能强大而且灵活易用。其目的在于使用户在获得最好性能的同时,亦能保证消
    019STM8 主时钟源
    下面4种时钟源可用做主时钟:1-24MHz高速外部晶体振荡器(HSE)最大24MHz高速外部时钟信
    020STM8 主时钟切换
    时钟切换功能为STM8用户提供了一种易用、快速、安全的从一个时钟源切换到另一个时钟源
    021STM8 外设时钟门控
    关闭未使用外设的时钟可使STM8降低功耗。外设的时钟门控(PCG)模式使用户可在运行模式
    022STM8 时钟安全系统(CSS)
    时钟安全系统用于监控HSE时钟源是否失效。当fMASTER使用HSE做为时钟源时,如果HSE时钟
    023STM8 时钟输出功能(CCO)
    可配置的时钟输出功能使STM8用户可在外部管脚CCO上输出指定的时钟。STM8S的用户可选择
    024STM8 时钟中断
    当下列事件发生时,时钟控制器可产生中断:主时钟源切换事件CSS事件这两个中断均可被
    025STM8 内/外部时钟寄存器
    STM8内部时钟寄存器(CLK_ICKR)地址偏移值:0x00复位值:0x01位7:6保留位,始终为0位5R
    026STM8 主时钟状态寄存器
    STM8主时钟状态寄存器(CLK_CMSR)地址偏移值:0x03复位值:0xE1位7:0CKM:主时钟状态位
    027STM8 时钟分频寄存器
    STM8时钟分频寄存器(CLK_CKDIVR)地址偏移值:0x06复位值:0x18位7:5保留。始终为0。位
    028STM8 外设时钟门控寄存器
    STM8外设时钟门控寄存器(CLK_PCKENR1)地址偏移值:0x07复位值:0xFF位7:0PCKEN1:外设
    029STM8 时钟安全系统寄存器
    STM8时钟安全系统寄存器(CLK_CSSR)地址偏移值:0x08复位值:0x00位7:4保留。始终为0。
    030STM8 可配置时钟输出寄存器
    STM8可配置时钟输出寄存器地址偏移值:0x09复位值:0x00位7保留。始终为0。位6CCOBSY
    031STM8 CAN外部时钟控制寄存器
    STM8 CAN外部时钟控制寄存器(CLK_CANCCR)地址偏移值:0x0B复位值:0x00位7:3保留。始
    032STM8 HSI时钟修正寄存器
    STM8 HSI时钟修正寄存器(CLK_HSITRIMR)地址偏移值:0x0C复位值:未定义位7:4保留。始
    033STM8 SWIM时钟控制寄存器
    STM8 SWIM时钟控制寄存器(CLK_SWIMCCR)地址偏移值:0x0D复位值:未定义位7:1保留。始
    034STM8 电源管理
    STM8电源管理默认情况下在系统或电源复位后,MCU处于运行模式。在这种模式下,CPU由fC
    035STM8 低功耗的时钟管理
    STM8降低系统时钟在运行模式,为了即能满足系统性能又能降低功耗,选择合适的系统时钟
    036STM8 低功耗模式
    四种STM8低功耗模式的主要特性如表12。(表12:STM8S低功耗模式管理)1.如果外设时钟未
    037STM8 模拟功耗控制
    STM8停机模式下的快速内存唤醒默认情况下,微控制器进入停机模式后FLASH是处于掉电状
    038STM8 中断控制器(ITC)
    STM8中断控制器简介中断控制器提供如下功能:硬件中断的管理所有I/O引脚都具有外部中
    039STM8 中断屏蔽和处理流程
    STM8 中断屏蔽和处理流程中断屏蔽是通过CC寄存器的位I1和位I0以及设置每个中断向量(表
    040STM8 中断源
    STM8 中断源STM8中断控制器处理2种类型的中断源:不可屏蔽的中断:RESET,TLI和TRAP可
    041STM8 中断和低功耗模式
    STM8 中断和低功耗模式所有的中断都可以使处理器从待机模式(Wait)退出。仅有外部中断
    042STM8 同时的和嵌套的中断管理
    STM8S提供2种中断管理模式:同时发生模式嵌套模式STM8同时发生中断管理模式在该模式下
    043STM8 中断指令
    STM8 中断指令表15列出了中断指令:(表15:STM8中断指令)
    044STM8 中断映射
    STM8中断映射下面表格列出了中断映射:(表16:STM8中断映射)
    045STM8 自动唤醒(AWU)
    简介AWU是用来当MCU进入低功耗的活跃停机(Active Halt)模式时提供一个内部的唤醒时间
    046STM8 AWU寄存器
    控制/状态寄存器(AWU_CSR)地址偏移值:0x00复位值:0x00位7:6保留位,必须保持为0位5W
    047STM8 蜂鸣器
    简介当LS时钟工作在128kHz时可产生频率为1kHz,2 kHz或者是4 kHz的蜂鸣信号。(图23:ST
    048STM8 独立看门狗(IWDG)
    STM8独立看门狗介绍独立看门狗模块可以用于解决处理器因为硬件或软件的故障所发生的错
    049STM8 通用输入输出口(GPIO)
    简介STM8的通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引
    050STM8 窗口看门狗(WWDG)
    STM8窗口看门狗介绍窗口看门狗用于监测由于外部干扰或不可预知的逻辑条件所产生的软件
    051STM8 主时钟状态寄存器
    STM8主时钟状态寄存器(CLK_CMSR)STM8S提供三种类型的TIM定时器:高级控制型(TIM1)、通
    052STM8 16位高级控制定时器(TIM1)
    16位高级控制定时器(TIM1)简介STM8S的TIM1由一个16位的自动装载计数器组成,它由一个
    053STM8 时基单元
    STM8时基单元时基单元包含:16位向上/向下计数器16位自动重载寄存器重复计数器预分频
    054STM8 时钟/触发控制器
    STM8时钟/触发控制器时钟/触发控制器允许用户选择计数器的时钟源,输入触发信号和输出
    055STM8 触发同步
    STM8触发同步计数器允许四种触发输入ETRTI1TI2来自TIM5/TIM6的TRGOTIM1的计数器使用三
    056STM8 PWM模式
    STM8 PWM模式STM8的脉冲宽度调制(PWM)模式可以产生一个由TIM1_ARR寄存器确定频率、由T
    057STM8 针对马达控制的六步PWM输出
    STM8针对马达控制的六步PWM输出当在一个通道上需要互补输出时,预装载位有OCiM、CCiE
    058STM8 刹车功能 马达控制
    STM8 刹车功能STM8刹车功能常用于马达控制中。当使用刹车功能时,依据相应的控制位(TI
    059STM8 中断
    STM8 TIM1中断TIM1有8个中断请求源,分别映射到2个中断矢量上:刹车中断触发中断COM事
    060STM8 16位通用定时器(TIM2,TIM3,TIM5)
    介绍本章介绍了STM8通用定时器TIM2,TIM3和TIM5,其中TIM2有3个通道,TIM3有2个通道,
    061STM8 8位基本定时器(TIM4,TIM6)
    介绍该定时器由的8可位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有
    062STM8 SPI简介 主要特征
    SPI简介串行外设接口(SPI)允许芯片与其他设备以半/全双工、同步、串行方式通信。此接
    063STM8 SPI从模式
    STM8 SPI从模式在从配置里,SCK引脚用于接收到从主设备来的串行时钟。SPI_CR1寄存器中
    064STM8 SPI主模式
    STM8 SPI主模式在主配置时,串行时钟在SCK脚产生。置配步骤1.通过SPI_CR1寄存器的BR位
    065STM8 单工通信
    STM8 单工通信SPI能够以两种配置工作于单工方式:1条时钟线和1条双向数据线1条时钟线
    066STM8 SPI状态标志
    STM8 SPI状态标志应用程序通过3个状态标志可以完全监控SPI总线的状态。总线忙(Busy)标
    067STM8 CRC计算
    STM8 CRC计算CRC校验仅用于保证通信的可靠性。数据发送和数据接收分别使用单独的CRC计
    068STM8 I2C接口主要特点
    STM8 I2C接口I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主功能,控制所
    069STM8 I2C从模式
    STM8 I2C从模式为了产生正确的时序,必须在I2C_FREQR寄存器中设定该模块的输入时钟。
    070STM8 I2C主模式
    STM8 I2C主模式在主模式时,I C接口启动数据传输并产生时钟信号。串行数据传输总是以
    071STM8 通用异步收发器(UART)
    STM8 UART介绍STM8S微控制器家族的通用同步异步收发器(UART1,UART2或UART3)提供了一
    072STM8 UART 发送器
    STM8 UART 发送器发送器根据M位的状态发送8位或9位的数据字。当M位置1,字长为9位,并
    073STM8 UART 接收器
    STM8 UART 接受器UART可以接收8位或9位的数据字。如果M位置1,字长为9位,其中MSB存放
    074STM8 多处理器通信
    STM8 多处理器通信通过UART可以实现多处理器通信(将几个UART连在一个网络里)。例如某
    075STM8 单线半双工通信
    STM8 单线半双工通信UART可以配置成遵循单线半双工协议。单线半双工模式通过设置UART_
    076STM8 智能卡
    STM8智能卡设置UART_CR5寄存器的SCEN位选择智能卡模式。在智能卡模式下,下列位必须保
    077STM8 IrDA红外功能
    STM8 IrDA红外功能通过设置UART_CR5寄存器的IREN位选择IrDA模式。UART_CR3寄存器的STO
    078STM8 LIN主模式
    STM8 LIN模式功能描述在LIN模式下,LIN标准要求的数据格式是8位数据位加1位停止位。完
    079STM8 控制器局域网(beCAN)
    STM8控制器局域网(beCAN)简介beCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持C
    080STM8 beCAN工作模式
    STM8 beCAN工作模式beCAN有3个主要的工作模式:初始化模式、正常模式和睡眠模式。 在
    081STM8 模拟/数字转换器(ADC)
    STM8模拟/数字转换器(ADC)简介ADC1和ADC2是10位的逐次比较型模拟数字转换器。提供多达
    082STM8 模拟/数字转换器(ADC) 转换模式
    STM8模拟/数字转换器(ADC)转换模式ADC支持5种转换模式:单次模式,连续模式,带缓存的
    083STM8 模拟看门狗
    STM8模拟看门狗在单次转换模式和不带缓存的连续模式中模拟看门狗可以通过置位ADC_CSR
    084STM8 ADC时序图
    STM8 ADC时序图如图149所示,在ADC上电后,在开始精确转换之前ADC需要一个稳定时间tST
STM8

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-10-30 08:22 , Processed in 0.021170 second(s), 20 queries .

返回顶部