32-ADC的寄存器

目录

stm32-adc通过比较获取电压原理

为什么会分注入组和规则组?

“ECO"是指"Engineering Change Order”,即工程变更指令。

双ADC的不同模式以及为什么会有这个模式:

同步注入模式:

同步规则模式:

快速交叉模式:

慢速交叉模式 

交替触发:

间断模式:

独立模式:

为什么adc的采样周期要加12.5个周期?


stm32-adc通过比较获取电压原理

Sigma-delta(Σ-Δ) ADC原理的理解(学习笔记自用) - 知乎 (zhihu.com)

为什么会分注入组和规则组?

        STM32系列微控制器中的ADC(模数转换器)模块之所以分为规则组(Regular Group)和注入组(Injected Group),是为了满足不同的应用需求和提供更灵活的数据采集功能。

规则组和注入组在ADC采样期间可以并行工作,以实现同时采样多个信号的能力。它们具有以下特点和应用:

  1. 规则组(Regular Group)://共用一个寄存器,采集多了会覆盖数据,支持dma
    规则组是主要的采样组,用于常规数据采集。它允许配置一组常规的模拟输入通道,并具有灵活的触发方式,例如软件触发、外部触发或定时触发。规则组经常用于监测常规模拟输入,如传感器信号、模拟电压等。通过规则组,可以配置多个通道按照一定的采样顺序进行采样。

  2. 注入组(Injected Group)://不支持dma,有四个独立的寄存器 。
    注入组用于辅助规则组进行特殊的采样,例如触发电平突变、脉冲宽度测量等应用场景。注入组允许配置一个单独的输入通道,可以在规则组采样过程中额外触发一组注入通道的采样。注入组的触发方式可以是外部触发或软件触发,具有更高的优先级,可以更灵敏地检测特定的事件或特征。

        通过分组规则组和注入组,STM32 ADC模块提供了灵活的数据采集解决方案,适用于不同的应用需求。规则组用于常规的模拟输入采样,而注入组则用于特殊事件或特征的敏感采样。这种分组能力使得STM32微控制器在实时数据采集和处理方面具有更高的灵活性和功能性。

“ECO"是指"Engineering Change Order”,即工程变更指令。

在硬件设计或产品开发过程中,工程变更指令(ECO)是针对原始设计或产品的修改或改进指令。ECO通常由设计团队、工程师或产品开发团队提出,目的是解决设计错误、性能改进或其他需求变更。

ECO可以涉及电路图修改、原理图修改、布局修改、元器件更换或其他设计相关的变更。它可以包括添加、删除或修改电路组件、调整信号路线、更改引脚分配、调整元器件封装、修改布局等。

ECO是设计过程中的一个重要环节,它使得在设计已经开始或完成后可以进行有限的变更,而无需重新开始整个设计流程。这样可以在既定的设计进度内及时响应需求变更,修复问题或改进设计。

总之,ECO是工程变更指令,用于对原始设计或产品进行修改或改进,以满足设计要求或修复问题。它对于增加灵活性和效率在产品开发过程中起着重要作用

双ADC的不同模式以及为什么会有这个模式:

同步注入模式:

同步注入模式中的"同步"意味着在规则转换开始时,注入转换会以相同的时间开始。换句话说,当进行规则转换时,注入转换也会同时开始。这种同步注入模式可确保规则转换和注入转换之间的时间关系始终保持一致,从而使两个转换组的数据采集能够满足特定的应用需求。

转换完成后会有jeco中断。

注:
在同步模式中,必须转换具有相同时间长度的序列,或保证触发的间隔比 2 个序列中较长的序列
长,否则当较长序列的转换还未完成时,具有较短序列的 ADC 转换可能会被重启。

同步规则模式:

ADC1和ADC2同时扫描相同数量的通道(不能同一时间扫描同一通道)。

快速交叉模式:

这个模式一般来说扫描同一个通道,这么设计就是为了在同样长的时间里多扫描几次这个通道。

慢速交叉模式 

和快速交叉模式差不多但是它能自动启动新的转换

交替触发:

就是怕你短时间来2次触发顾不过来 ,这样操作可能会导致2个adc采集同一个通道,但为什么文档里不写提示呢?

采集的是1 2 3 4注入通道不会重复

他这个触发触发谁触发?外部

间断模式:

就是把所有通道分开来测量,例如:每一次中断测量3个通道,直到测量完所有通道并触发ECO中断后再来中断继续测量。

注入组中断同理,注入组在完成后会触发一个ECO中断。

独立模式:

就是独立

ADC 状态寄存器 (ADC_SR) :这个寄存器所有参数都是由硬件拉起来,软件放下。

为什么adc的采样周期要加12.5个周期?

        在STM32系列微控制器中的ADC模块中,有一个称为"采样时间"(sample time)的参数,它规定了每次ADC转换的采样时长。对于大多数ADC配置,需要将ADC的采样时间设置为至少12.5个时钟周期。
        采样时间是指在进行每次模数转换之前,ADC模块将输入信号采样并保持的时间。这是为了确保ADC采样电容充分充电以稳定输入信号的准确采样。
在ADC的采样过程中,采样时间需要考虑转换电容的充电时间以及信号源的内阻。如果采样时间不足,可能导致不准确的转换结果,特别是当输入信号频率较高或输入阻抗较大时。
为了确保足够的采样时间,常见的做法是将ADC的采样时间设置为最小值加上几个时钟周期的延迟。在STM32系列微控制器中,一般建议将采样时间设置为至少12.5个时钟周期,以提供足够的稳定采样时间。
        需要注意的是,这个值可能会因不同的微控制器系列和ADC模块的具体实现而有所不同。因此,具体的采样时间要参考相应的微控制器参考手册或数据表,以确保正确配置和采样精度。
总结而言,将ADC的采样时间设置为至少12.5个时钟周期是为了确保足够的稳定采样时间,以确保准确的模数转换结果,并避免因采样时间不足而引起的问题。
<think>好的,我现在需要帮助用户查找关于STM32H750 ADC寄存器的详细介绍或文档。用户的问题主要涉及ADC寄存器的功能和用法,我需要根据提供的引用内容来组织回答。 首先,查看用户提供的引用内容。引用[1]提到了两个重要寄存器ADCx_ISR和ADCx_CR,并简要说明了它们的用途。引用[2]则讨论了一些ADC转换的问题和尝试的解决方案,涉及到配置参数和寄存器使用的问题。 接下来,我需要确认STM32H750的ADC相关寄存器有哪些,并详细说明每个寄存器的功能。根据我的知识,除了ISR和CR之外,ADC还有其他关键寄存器,比如配置寄存器(CFGR)、采样时间寄存器(SMPR)、数据寄存器(DR)等。不过用户提供的引用中只提到了ISR和CR,可能需要结合这些信息进行扩展。 然后,需要组织回答的结构,确保符合用户的要求:结构清晰,分步骤说明,使用中文,正确应用LaTeX格式,生成相关问题,并正确添加引用标识。 还要注意用户提到的系统级指令,特别是关于LaTeX的使用。例如,所有行内数学表达式需要用$...$,独立公式用$$...$$。但在这个问题中,可能涉及较多寄存器字段,可能数学表达式较少,不过需要留意是否有需要的地方。 另外,用户要求生成相关问题,我需要根据回答内容提出三个相关问题,放在最后。 现在开始整理回答: 1. 关键寄存器介绍: - ADCx_ISR:中断和状态寄存器,包含转换完成标志、溢出标志等。 - ADCx_CR:控制寄存器,用于使能或停止ADC,设置分辨率等。 - 其他可能的寄存器如CFGR(配置转换模式)、SMPR(采样时间)、DR(数据寄存器)等,但引用中没有提到,是否需要包含?用户的问题是关于寄存器功能和用法,可能需要更全面的信息。不过根据提供的引用,可能只重点介绍ISR和CR,但最好补充其他必要寄存器。 2. 配置流程: - 根据引用[1]中的软件使能ADC流程,可能需要初始化时钟、配置参数、设置ADCx_CR的使能位,校准,触发转换等步骤。 3. 注意事项和问题排查: - 引用[2]中提到的配置问题,比如同步模式、DMA使用、解耦电容等,需要提及这些可能影响ADC性能的因素,并给出建议。 需要确保回答中的寄存器名称和位字段使用正确,比如ADCx_ISR中的EOC(转换完成标志),JEOC(注入通道转换完成)等。同时,引用[1]和[2]需要在适当的位置标注,例如在讨论配置流程或问题排查时。 可能还需要参考STM32H750的官方参考手册,但用户没有提供,所以只能基于已有的引用和一般知识。需要避免错误,不确定的地方应建议查阅官方文档。 最后,生成相关问题,例如关于中断配置、校准方法、同步模式的问题。</think>关于STM32H750 ADC寄存器的功能及用法,以下是分步说明: ### 一、关键寄存器功能说明 1. **ADCx_ISR(中断和状态寄存器)** 用于监控ADC转换状态和中断标志,主要包含以下位: - `EOC`:转换完成标志,当规则通道转换完成时置1[^1] - `OVR`:数据溢出标志,检测到数据覆盖时置1 - `JEOC`:注入通道转换完成标志 状态查询示例: ```c if (ADC1->ISR & ADC_ISR_EOC) { /* 处理转换完成 */ } ``` 2. **ADCx_CR(控制寄存器)** 控制ADC核心操作,关键配置位包括: - `ADEN`:ADC使能位(1=启动,0=关闭) - `ADSTART`:启动规则通道转换 - `ADDIS`:关闭ADC时的状态控制 - `RES`:分辨率选择(如$RES[1:0]=00$对应16位模式)[^1] 3. **ADCx_CFGR(配置寄存器)** 配置转换模式: - `CONT`:连续转换模式 - `DMAEN`:DMA传输使能 - `EXTEN`:触发边沿选择 ### 二、典型配置流程 1. **使能ADC时钟** ```c RCC->AHB1ENR |= RCC_AHB1ENR_ADC12EN; // 启用ADC1/2时钟 ``` 2. **参数配置** ```c ADC1->CFGR &= ~ADC_CFGR_CONT; // 禁用连续模式 ADC1->SMPR |= ADC_SMPR_SMP1_2; // 设置通道1采样时间为19.5周期 ``` 3. **启动与校准** ```c ADC1->CR |= ADC_CR_ADEN; // 使能ADC while (!(ADC1->ISR & ADC_ISR_ADRDY)); // 等待就绪 ADC1->CR |= ADC_CR_ADCAL; // 开始校准 ``` 4. **触发转换** ```c ADC1->CR |= ADC_CR_ADSTART; // 启动转换 while (!(ADC1->ISR & ADC_ISR_EOC)); // 等待完成 uint16_t val = ADC1->DR; // 读取数据 ``` ### 三、注意事项 1. **同步模式问题** 避免多个ADC共用公共寄存器时发生冲突,建议在同步模式下选择独立数据存储[^2] 2. **硬件设计优化** - 增加电源引脚解耦电容(如10μF+100nF组合) - 敏感信号走线远离数字信号[^2] 3. **精度提升技巧** - 采样周期设置为≥810.5个时钟周期 - 禁用未用外设减少噪声 ### 四、推荐文档 1. **《STM32H750参考手册》(RM0433)** 第18章详细描述ADC寄存器映射及电气特性 2. **应用笔记AN5354** “STM32H7系列ADC精度优化指南”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值