电机控制-stm32f4 AD配置(一)
电机控制中用到的外设只有3个:AD TIM_PWM TIM_ABZ。所以这三种外设的配置一定要熟悉。
今天先来看AD的配置。参考安富莱第44章。
电机控制中至少需要两路AD:currA currB。最多需要三个AD:currA currB DCBUS。可以打开也可以不打开中断。
历程中是以AD中断作为控制周期。我这里打算TIM pwm下溢作为控制周期。所以不用打开中断。
需要打开DMA。
一、AD功能详细介绍
STM32_F4_ADC_lxtqyh的博客-CSDN博客_stm32f4adc通道
1.1 ADC简介
12 位 ADC 是逐次趋近型模数转换器。它具有多达 19 个复用通道,可测量来自 16 个外部源、两个内部源和 VBAT 通道的信号。这些通道的 A/D 转换可在单次、连续、扫描或不连续采样模式下进行。ADC 的结果存储在一个左对齐或右对齐的 16 位数据寄存器中。ADC 具有模拟看门狗特性,允许应用检测输入电压是否超过了用户自定义的阈值上限或下限。
point:
1: 一共可以测19个通道的信号。
2: 单次:
连续:
扫描:
不连续采样:
3:左对齐、右对齐:一般是选择右对齐。
4:允许检测输入电压是否超过自定义的阈值的上下限。
1.2 ADC主要特性
可配置 12 位、10 位、8 位或 6 位分辨率
在转换结束、注入转换结束以及发生模拟看门狗或溢出事件时产生中断
单次和连续转换模式
用于自动将通道 0 转换为通道“n”的扫描模式
数据对齐以保持内置数据一致性
可独立设置各通道采样时间
外部触发器选项,可为规则转换和注入转换配置极性
不连续采样模式
双重/三重模式(具有 2 个或更多 ADC 的器件提供)
双重/三重 ADC 模式下可配置的 DMA 数据存储
双重/三重交替模式下可配置的转换间延迟
ADC 电源要求:全速运行时为 2.4 V 到 3.6 V,慢速运行时为 1.8 V
ADC 输入范围:![]()
规则通道转换期间可产生 DMA 请求
point:
1:产生中断的时刻:
2:数据对齐方式(左 右)
3:各通道采样时间可单独设置。
4:外部触发,规则转换:
注入转换:
5:单次:
连续:
不连续:
扫描:
6:两重模式、三种模式:
二、ADC框图

框图说明: ①处:电源相关,是 ADC 的供电电源()和参考电源()。为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰;ADC的电源引脚为VDDA,
电源地为VSSA,如果有VREF- 引脚(根据封装而定),它必须连接到VSSA,确保共地。ADC的参考电压都是通过Vref+提供的。100脚以上的型号,Vref+引到了片外,引脚
名称为Vref+;64脚和小于64脚的型号,Vref+在芯片内部与VCC信号线相连,没有引到片外,这样AD的参考电压就是VCC上的电压。VDDA和VREF的电压范围请查阅手册。
②处:输入通道,ADC的输入通道,F4系列单片机ADC共有19个通道(每个ADC都有19个),其中外部的16个通道就是框图中的ADCx_IN0到ADCx_IN15,这16个通道对应着不
同的IO口,具体对应关系可以在手册或者CUBEMX配置界面获得。另外三个内部通道连接温度传感器、内部电压和电池电压。F4系列的不同型号略有差异,需要查阅手册确定。
③处:注入类通道、规则类通道,STM32F4将ADC的转换分为2类通道:规则通道和注入通道。规则通道相当于正常运行的程序,而注入通道,就相当于中断。注入通道的转换可以打
断规则通道的转换,在注入通道被转换完成之后,规则通道才得以继续转换。规则通道组最多包含16个通道,而注入通道组最多包含4个通道。
④处: ADC 的触发源,ADC转换可以由控制寄存器ADC_CR2的位ADON来启动(软件启动),也可以由外部事件的触发来启动转换。使用控制寄存器启动时,很简单,写1开始转换;写0停
止转换。使用外部事件来触发转换,这个触发包括内部定时器触发和外部IO触发。触发源的选择由ADC_CR2的EXTSEL[2:0]和JEXTSEL[2:0]位来控制,EXTSEL[2:0]用于规
则通道的触发源,JEXTSEL[2:0]用于选择注入通道的触发源。如果使能了外部触发事件,我们还可以通过设置ADC控制寄存器2:ADC_CR2的EXTEN[1:0]和JEXTEN[1:0]来
控制触发极性,可以有4种状态:禁止触发检测、上升沿检测、下降沿检测以及上升沿和下降沿均检测。电机中可以用TIM来触发AD,也可以在中断服务函数中软件启动AD。
⑤处:ad时钟,ADC的时钟源来源于ADC预分频器,是由PCLK2经过ADC Prescaler 得到。最大为36MHz,通常设置为21MHz。分频因子由ADC通用寄存器ADC_CCR的ADCPRE[1:0]设
置,可设置的分频系数有2、4、6和8。
⑥处:转换结果,当ADC转换完成后,根据转换组的不同,规则组的数据放在ADC_DR寄存器,注入组的数据放在JDRx寄存器。如果使用双重或者三重模式那规则组数据是存放在通用寄存
器ADC_CDR内的。规则通道有16个,规则寄存器只有一个,如果使用多通道转换,那转换的数据就全都挤在了DR里面,前一个时间点转换的通道数据,就会被下一个时间点的
另外一个通道转换的数据覆盖掉,所以当通道转换完成后就应该吧数据取走(规则组应立即读取,否则会覆盖)。或者开启DMA模式,将数据传输到内存里面,常用的方法是开启DMA传输。
注入组有4个通道,相应的寄存器也有4个,这个不会有数据覆盖问题。(注入组没有覆盖问题)。电机中,都放入规则组即可。
⑦处:中断,数据转换结束后,可以产生中断,中断分为四种:规则通道转换结束中断、注入转换通道转换结束中断、模拟看门狗和溢出中断。模拟看门狗中断:当ADC转换的模拟
电压低于阈值或者高于阈值时,就会产生中断,前提是我们开启了模拟看门狗中断。溢出中断:如果DMA传输数据丢失,会置位ADC状态寄存器ADC_SR和OVR位,如果同时使能
了溢出中断,那在转换结束后会产生一个溢出中断。规则和注入通道转换结束后,除了产生中断,还可以产生DMA请求,将转换好的数据直接存储在内存里面。电机中不开启终端,
开启DMA即可。
三、功能说明
3.1 单次转换、连续转换、扫描模式之间的关系

电机中,若使用“不启动scan,单次扫描”,在控制中断的服务函数中,先软起动adc1的ch1,读取currA,然后软起动adc1的ch2,读取currB。这样花费两个ad时间。
如果同时采用两个adc(adc1 adc2),同时启动adc1 adc2 ,则只花费一个ad时间。
也可以使用“启动scan,单次转换”,这样也是2个ad时间。
注意:ch>1时,规则组的转换结果需要及时读取,尤其是开启了scan的情况。
3.2 注入通道管理
注入通道分为触发注入和自动注入两种方式,关于这两种方式的功能、特性和注意事项,手册上写的很清晰且没有歧义,这里不再多余描述,请直接查阅手册。

一般电机中不用注入通道。
3.3不连续采样模式(间断采样模式)
如果需要对多个ADC通道进行分组转换,组与组之间希望有可调的时间间隔。采样间断模式可能会比较方便。这块手册上也写的比较详细其且没有歧义。这里就不再过多描述。如果想详细了解,可以参阅手册或者点击这一篇博客。
电机中没有这个需求,而是越快越好。
3.4 采样时间计算

3.5 使用DMA的一些注意事项
1.开启ADC的DMA功能,建议在ADC校准之后进行。换句话说校准ADC前不要使能其ADC的DMA功能。尤其涉及到多通道ADC DMA传输时要注意这个次序。(先校准ad,再使能dma)
2.如果使用ADC的DMA传输,在启动AD转换时,DMA需配置好且被使能待命。(启动ad前要使能dma)
3.在多通道ADC DMA传输时,经常出现因为缓冲区数据类型、源数据类型不一致导致的异常状况。这里主要是因为数据宽度不一致所导致的问题。
3.6 多重ADC模式
在具有两个或更多 ADC 的器件中,可使用双重(具有两个 ADC)和三重(具有三个 ADC)ADC 模式。在多重 ADC 模式下,通过 ADC1 主器件到 ADC2 和 ADC3 从器件的交替触发或同时触发来启动转换,具体取决于 ADC_CCR 寄存器中的 MULTI[4:0] 位所选的模式。
注意:
·在多重 ADC 模式下,配置外部事件触发转换时,应用必须设置为仅主器件触发而禁止从器件触发,以防止出现意外触发而启动不需要的从转换。(主器件由外部触发,从器件由ad触发)
·不要在两个/三个 ADC 上转换同一通道(转换同一通道时,不允许两个/三个 ADC 采样时间 重叠)。
可实现以下四种模式:
- 注入同时模式
- 规则同时模式
- 交替模式
- 交替触发模式
也可按以下方式组合使用上述模式:
- 注入同时模式 + 规则同时模式
- 规则同时模式 + 交替触发模式
(1)注入同时模式
此模式可转换注入通道组。外部触发源来自 ADC1 的注入组多路复用器(通过 ADC1_CR2 寄存器中的 JEXTSEL[3:0] 位进行选择)。同时触发可用于 ADC2 和 ADC3。

阿这,这实现了FPGA的同步功能啊...
(2)规则同时模式
此模式式可用于规则通道组。外部触发源来自 ADC1 的规则组多路复用器(通过 ADC1_CR2 寄存器中的 EXTSEL[3:0] 位进行选择)。同时触发可于 ADC2 和 ADC3。

电机中用这个最好。
(3)交替模式
此模式只能用于规则组(通常为一个通道)。外部触发源来自 ADC1 的规则通道多路复用器。

对单通道多次采样。电机用不上。
(4)交替触发模式
此模式只能用于注入组。外部触发源来自 ADC1 的规则通道多路复用器。
好复杂,用不上这个场景
(5)其他符合模式
略。
3.7温度传感器
略。
3.8 关于中断的说明



浙公网安备 33010602011771号