织梦建站教程下载,开发软件下载,wordpress本地运行慢,住房与住房建设部网站首页目录 概述
1 认识双ADC模式
2 功能实现
2.1 原理介绍
2.2 实现方法 概述
本文主要介绍STM32G4 双ADC模式之常规同步模式独立注入模式相关内容#xff0c;包括ADC模块的功能介绍#xff0c;实现框架结构#xff0c;以及常规同步模式独立注入模式ADC的转换的实…目录 概述
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上也存在外部触发器但在此图中没有显示。 2ADC公共数据寄存器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] 00110来选择。该模式在一组常规通道上执行。外部触发源 来自主ADC的常规组多路复用器由 ADC_CFGR寄存器中的EXTSEL位选择。一个同步触发器提供给从ADC。在这种模式下支持独立的注入转换。注入请求在主服务器或从服务器上的 终止当前的同步转换一旦注入的转换完成将重新启动 。 注意点 - 不要在两个adc上转换同一通道转换同一通道时两个adc的采样次数不能重叠 在常规同步模式下必须转换相同长度的序列或确保 触发器之间的间隔大于2个 序列的较长转换时间。否则具有最短序列的ADC可能重新启动而具有 最长序列的ADC正在完成先前的转换。
当软件可以读取数据时中断会通知它 1 在主ADC上的每个转换事件EOC结束时生成一个主EOC中断如果启用了EOCIE软件可以读取主ADC的ADC_DR。 - 2在从ADC上的每个转换事件EOC结束时生成一个从EOC中断如果启用了EOCIE软件可以读取从ADC的ADC_DR。 - 3如果主正则序列的持续时间等于从正则序列的持续时间软件可能只启用两个EOC中断中的一个例如主EOC并从公共数据寄存器ADCx_CDR读取两个转换后的数据。 也可以使用DMA读取常规数据。有两种方法 1使用两个DMA通道一个用于主站一个用于从站。这里是比特MDMA[1:0]必须保持清洁。 - 配置DMA主ADC通道从主ADC读取ADC_DR。DMA请求在主ADC的每个EOC事件中生成。 - 配置DMA从ADC通道从从读取ADC_DR。DMA请求在从ADC的每个EOC事件中生成。 2使用MDMA模式这使得一个DMA通道自由用于其他用途 - 配置MDMA[1:0] 10或11取决于分辨率 - 使用单个DMA通道主机的一个。配置DMA主机ADC通道用于读取通用ADC寄存器ADCx_CDR - 每次主EOC事件和从EOC事件发生时都会生成单个DMA请求。此时从ADC转换的数据在ADCx_CDR 32位寄存器的上半字中可用主ADC转换的数据在ADCx_CDR寄存器的下半字中可用。 - 当DMA读取ADCx_CDR寄存器时两个EOC标志都被清除。 注意点
在MDMA模式MDMA[1:0] 10或11中用户必须在主序列中编写与从序列中相同数量的转换。否则其余的 转换不会生成DMA请求。
2.2 实现方法
实现框图16路常规同步模式双ADC模式 如果DISCEN 1则每“n”个常规序列的同时转换都需要发生 常规触发事件“n”由discum定义。
该模式可与autly模式结合使用 1 一旦序列的同步转换结束序列中的下一个转换只有在公共数据寄存器ADCx_CDR或主ADC的常规数据寄存器被读取延迟阶段时才开始。 - 2一旦同步的常规转换序列结束只有在读取公共数据寄存器ADCx_CDR时才接受新的常规触发事件(延迟阶段)。在正在进行的常规序列和相关延迟阶段期间发生的任何新的常规触发事件都将被忽略。 假设使用多重DMA模式可以使用DMA以常规同步模式结合 AUTDLY模式处理数据MDMA必须设置为10或 11位。
当普通同步模式与auttly模式结合使用时 用户必须确保 1主序列中的转换数量等于从序列中的转换数量。 - 2对于序列的每次同步转换从ADC转换的长度低于主ADC转换的长度。请注意序列的长度取决于要转换的通道数量、采样时间和每个通道的分辨率。 注意点 常规同步模式和auttly模式的这种组合仅限于在只编程常规通道的情况下使用 禁止在这种组合模式下编程注入的 通道。