目录
概述
1 模式实现(AUTDLY)
2 自动注入模式 (JAUTO=1)
3 AUTDLY 模式
4 实现案例
概述
本文主要介绍STM32H750外设ADC之动态低功耗特性相关的内容。包括:模式实现(AUTDLY)、自动注入模式 (JAUTO=1)、 AUTDLY 模式以及一些应用案例。
1 模式实现(AUTDLY)
ADC 会执行由 AUTDLY 配置位控制的自动延迟转换模式。自动延迟转换可用于简化软件,并可优化采用低频时钟的应用(此类应用可能存在 ADC 溢出的风险)的性能。
AUTDLY=1 时,仅当同一组内所有之前的数据已处理完毕时,才能开始新的转换:
ADC x 配置寄存器 (ADCx_CFGR)( x=1 到 3)
ADC x configuration register
偏移地址: 0x0C
复位值: 0x8000 0000
位 14 AUTDLY:延迟转换模式 (Delayed conversion mode)
此位由软件置 1 和清零,用于使能/禁止自动延迟转换模式。
0:自动延迟转换模式关闭
1:自动延迟转换模式开启
注: 仅当 ADSTART=0 且 JADSTART=0 时(这可确保当前未进行任何转换),才允许通过软件对此位执行写操作。
如果使能了双重模式( ADCx_CCR 寄存器的 DAMDF 位不等于零),则从 ADC 的 AUTDLY 位
不再可写,其内容与主 ADC 的 AUTDLY 位相等。
对于常规转换: ADCx_DR 寄存器已读取或者 EOC 位已清零时。
对于注入转换: JEOS 位已清零时。
通过这种方式,可自动调整 ADC 的速度,使其适应系统读取数据的速度。延时插入到每次常规转换后(无论 DISCEN=0 还是 1)和每个注入转换序列后(无论JDISCEN=0 还是 1)。
位 16 DISCEN:常规通道的不连续模式 (Discontinuous mode for regular channels)
此位由软件置 1 和清零,用于使能/禁止常规通道的不连续模式。
0:禁止常规通道的不连续模式
1:使能常规通道的不连续模式
不会在不同组的转换之间插入延时(常规转换后即进行注入转换,反之亦然):
如果在常规转换的自动延时期间发生注入触发,注入转换会立即开始。
注入序列完成后, ADC 会等待上一常规转换的延时(如果未结束),然后才会启动新的
常规转换。
2 自动注入模式 (JAUTO=1)
自动注入模式 (JAUTO=1) 下的操作略有不同,仅当上一注入转换序列的自动延时已结束时( JEOS 已清零时),才能开始进行新的常规转换。这是为了确保软件可在启动新序列之前读取给定序列的所有数据。
位 25 JAUTO: 注入组自动转换 (Automatic injected group conversion)
通过软件将该位置 1 和清零可在常规组转换后分别使能/禁止注入组自动转换。
0:禁止注入组自动转换
1:使能注入组自动转换
要在连续自动注入和自动延时组合模式下停止转换(JAUTO=1、 CONT=1 且 AUTDLY=1),请按照以下程序进行操作:
1. 等待,直至 JEOS=1(不会重新启动任何转换)
2. 将 JEOS 清零 (Clear NAK)
3. 将 ADSTP 置 1
4. 读取常规数据。
否则,如果 JEOS 在 ADSTP 已置 1 后清零,可能重新启动新的常规序列。
3 AUTDLY 模式
在 AUTDLY 模式下,如果在正在进行的常规序列期间或序列的最后一次常规转换之后的延时期间发生硬件常规触发事件,则会忽略该触发事件。但是,如果触发事件发生在该延时之后,即使发生在延时之后的注入序列期间,也会将该触发事件视为待处理事件。随后,会在注入序列的延时结束时开始转换。在 AUTDLY 模式下,如果在正在进行的注入序列期间或序列的最后一次注入转换之后的延时期间发生硬件注入触发事件,则会忽略该触发事件。
4 实现案例
1)AUTODLY=1,连续模式下的常规转换,软件触发
2)AUTODLY=1,被注入转换中断的常规硬件转换( DISCEN=0; JDISCEN=0)
3)AUTODLY=1,被注入转换中断的常规硬件转换( DISCEN=1, JDISCEN=1)
4)AUTODLY=1,被注入转换中断的常规连续转换
5)AUTODLY=1,自动注入模式 (JAUTO=1)