目录
概述
1 认识双ADC模式
2 功能实现
2.1 功能介绍
2.2 实现原理
概述
本文主要介绍STM32G4 双ADC模式之同时注入模式的相关内容,包括ADC模块的功能介绍,实现框架结构,以及注入模式ADC的转换的实现原理。
1 认识双ADC模式
双ADC模式可用于具有两个或更多ADC的器件。在双ADC模式中,转换的开始交替或同时由ADCx主ADC从,取决于所选择的模式的位DUAL[4:0]在ADCx_CCR寄存器。
注意:
-
1)从ADC上也存在外部触发器,但在此图中没有显示。
2)ADC公共数据寄存器(ADCx_CDR)包含主ADC和从ADC的常规转换数据。
其包括四种可能得应用:
1) 同时注入模式
-
2)常规同步模式
-
3)交错模式
-
4)交替触发方式
也可以将这些模式以以下方式组合使用:
1)注入同步模式+常规同步模式
-
2)常规同步模式+交替触发模式
-
3)注入同步模式+交错模式
在双ADC模式下(当ADCx_CCR寄存器的位dual[4:0]不等于零时),ADC_CFGR 寄存器的 位CONT, AUTDLY, DISCEN, DISCNUM[2:0], JDISCEN, JQM, JAUTO在主ADC和从ADC之间共享:从ADC中的位 总是等于主ADC的相应位。
要在双模式下启动转换,用户必须对位EXTEN[1:0], EXTSEL, JEXTEN[1:0],主ADC的JEXTSEL进行编程,以配置软件或硬件 触发器,以及常规或注入触发器。(从 ADC的EXTEN[1:0]和JEXTEN[1:0]位不关心)。
在常规同步或交错模式下:
-
一旦用户设置主ADC的ADSTART位或 ADSTP位,从ADC的相应位也自动设置 。但是,从ADC的ADSTART位或ADSTP位不需要在 同时清除主ADC位。
在注入同步或交替触发模式中:
-
一旦用户设置主ADC的JADSTART位或 JADSTP位,从ADC的相应位也自动 设置。但是,从ADC的JADSTART位或JADSTP位不需要在 上与主ADC位同时清除。
在双ADC模式下,可以通过读取ADC公共数据寄存器(ADCx_CDR) 并行读取主ADC和从ADC转换后的数据。状态位也可以通过读取双模式状态寄存器(ADCx_CSR)以 并行方式读取。
2 功能实现
2.1 功能介绍
该模式通过编程位DUAL[4:0] = 00101来选择此模式转换注入的通道组。外部触发源来自 主ADC的注入组多路复用器(由JEXTSEL位在ADC_JSQR注册)。
注意点:
-
不要在两个adc上转换同一通道(转换同一通道时,两个adc的采样次数不能重叠)。
在同步模式下,必须转换相同长度的序列,或者确保触发器之间的 间隔大于两个序列的长度。否则,序列最短的ADC 可能会重新启动,而序列最长的ADC 正在完成前面的转换。
可以在一个或所有adc上执行常规转换。在这种情况下,它们彼此 独立,并在发生注入事件时中断。它们在注射转换组结束时 恢复。
1)在主ADC上的转换事件注入序列(JEOS)结束时,转换后的数据被存储到主ADC_JDRy寄存器中,并生成JEOS中断(如果启用)
-
2)在从ADC上注入的转换事件序列(JEOS)结束时,转换后的数据被存储到从ADC_JDRy寄存器中,并生成JEOS中断(如果启用)。
-
3)如果主注入序列的持续时间等于从注入序列的持续时间,则软件可能只启用两个JEOS中断中的一个(例如:主JEOS)并读取两个转换后的数据(从主JEOS)
ADC_JDRy和从ADC_JDRy寄存器)。
2.2 实现原理
4通道注入同步模式:双ADC模式的范例:
如果JDISCEN = 1,则注入序列的每次同时转换都需要发生 注入触发事件。
该模式可与autly模式结合使用:
1) 一旦同时注入的转换序列结束,只有当主ADC和从ADC的JEOS位都被清除(延迟阶段)时,才接受新注入的触发事件。在正在进行的注入序列和相关延迟阶段中发生的任何新注入触发事件都将被忽略。
-
2)一旦主ADC的一个常规序列转换结束,一个新的常规只有当主数据寄存器(ADC_DR)时,才接受主ADC的触发事件。已经读过了。在正在进行的常规序列和相关延迟阶段期间,主ADC发生的任何新的常规触发事件都将被忽略。从ADC上出现的常规序列也有相同的行为。