STM32-一文搞懂ADC

发布者:快乐奇迹最新更新时间:2022-04-23 来源: eefocus关键字:STM32  ADC  输入时钟 手机看文章 扫描二维码
随时随地手机看文章

1 STM32ADC简介

STM32 拥有 1~3 个 ADC(STM32F101/102 系列只有 1 个 ADC,F103系列至少有两个ADC),这些 ADC 可以独立使用,也可以使用双重模式(提高采样率)。STM32 的12位ADC是一种逐次逼近型模拟数字转换器,它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC的输入时钟不得超过14MHz,它是PCLK2经分频产生。


1.1 ADC特性

12位分辨率

转换结束、注入转换结束和发生模拟看门狗事件时产生中断

单次和连续转换模式

从通道0到通道n的自动扫描模式

自校准

带内嵌数据一致性的数据对齐

采样间隔可以按通道分别编程

规则转换和注入转换均有外部触发选项

间断模式

双重模式(带2个或以上ADC的器件) 


ADC转换时间:

  STM32F103xx增强型产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs) 

  STM32F101xx基本型产品:时钟为28MHz时为1μs(时钟为36MHz为1.55μs) 

  STM32F102xxUSB型产品:时钟为48MHz时为1.2μs 

  STM32F105xx和STM32F107xx产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs) 

ADC供电要求:2.4V到3.6V 

ADC输入范围:VREF- ≤ VIN ≤ VREF+

规则通道转换期间有DMA请求产生。


1.2 STM32的ADC模块结构

单个ADC模块的框图如下所示

其中绿色部分为输入部分,蓝色为ADC模块核心部分,红色部分为输出部分。下面分别介绍。


2 ADC模块详解

这里分为输入单元、核心单元、输出单元进行分析。


2.1 ADC核心单元

2.1.1 规则通道和注入通道

STM32有18个多路通道,为了保证这些通道上的转换有序地、有优先级地进行,把 ADC 的转换分为 2 个通道组:规则通道组和注入通道组。任意多个通道上以任意顺序进行的一系列转换构成组转换。例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。


规则组由多达16个转换组成。规则通道和它们的转换顺序在ADC_SQRx寄存器中选择。规则组中转换的总数应写入ADC_SQR1寄存器的L[3:0]位中。

注入组由多达4个转换组成。注入通道和它们的转换顺序在ADC_JSQR寄存器中选择。注入组里的转换总数目应写入ADC_JSQR寄存器的L[1:0]位中。


如何理解规则通道组合注入通道组?


所谓过则通道就是一般的转换规则组,所有该组内的通道按顺序进行转换,而注入通道组的转换则是有较高优先级的,可以打断规则通道组的转换。规则通道相当于你正常运行的程序,而注入通道呢,就相当于中断。在你程序正常执行的时候,中断是可以打断你的执行的。同这个类似,注入通道的转换可以打断规则通道的转换, 在注入通道被转换完成之后,规则通道才得以继续转换。


2.1.2 规则/注入通道数据寄存器

通道数据寄存器用来保存AD转换的结果,数据以左对齐或右对齐的方式存储。可以看到有四个注入通道数据寄存器,而所有的规则通道组只有一个数据寄存器!而每个注入通道都有一个单独的数据寄存器。因为规则通道转换的值储存在一个仅有的数据寄存器中,所以当转换多个规则通道时需要使用DMA,这可以避免丢失已经存储在ADC_DR寄存器中的数据。


ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4)

JDATA[15:0]:注入转换的数据 (Injected data)

这些位为只读,包含了注入通道的转换结果,数据是左对齐或右对齐。


ADC规则数据寄存器(ADC_DR)

ADC2DATA[15:0]:ADC2转换的数据 (ADC2 data)

在ADC1中:双模式下,这些位包含了ADC2转换的规则通道数据。见11.9:双ADC模式

在ADC2和ADC3中:不使用这些位。


DATA[15:0]:规则转换的数据 (Regular data)

这些位为只读,包含了注入通道的转换结果,数据是左对齐或右对齐。


2.2 ADC输入单元

输入单元主要包括电源和参考电压、时钟、模拟输入通道、触发通道。


2.2.1 电源和参考电压

工作电源VDDA、VSSA


ADC使用一个独立于VDD的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰,ADC的电源引脚为VDDA,以及独立的电源地VSSA。


参考电压VREF+、VREF-


为了确保输入为低压时获得更好精度,用户可以连接一个独立的外部参考电压ADC到VREF+和 VREF-脚上。VREF+的电压范围为2.4V~VDDA(一般直接接VDD)。64脚或以下的封装上没有VREF+和VREF-引脚,他们在芯片内部与ADC的电源(VDDA)和地(VSSA)相联。


ADC所能测量的电压范围就是VREF- ≤ VIN ≤ VREF+。因为一般接VDD(3.3V),故一般使用下,测量范围为0~3.3V。

注(1).VDDA和VSSA应该分别连接到VDD和VSS。


2.2.2 时钟

时钟来源


RCC控制器为ADC时钟提供一个专用的可编程ADC预分频器,如下图(时钟树部分截取)。ADC的时钟是由高速APB2时钟PCLK2经该分频器2、4、6或8分频后获得。注意ADC的输入时钟不得超过14MHz。

时钟配置


ADC预分频器的分频系数可以通过时钟配置寄存器(RCC_CFGR)的位15:14 ADCPRE[1:0]配置


由软件置’1’或清’0’来确定ADC时钟频率

00:PCLK2 2分频后作为ADC时钟

01:PCLK2 4分频后作为ADC时钟

10:PCLK2 6分频后作为ADC时钟

11:PCLK2 8分频后作为ADC时钟

2.2.3 模拟输入通道

STM32的ADC有多达18个通道,可测量16个外部(与GPIO复用)和2个内部(片内温度传感器和)信号源,其中两个内部信号源通道只存在于ADC1中。温度传感器和通道ADC1_IN16相连接,内部参照电压VREFINT和ADC1_IN17相连接。


与GPIO复用映射关系如下,在使用AD功能时,要进行复用使能相关引脚

2.2.4 触发转换

ADC转换可以由软件的方式触发转换,也可以由外部触发的方式进行转换,比如定时器捕获、EXTI线。如果设置了EXTTRIG控制位,则外部事件就能够触发转换。当外部触发信号被选为ADC规则或注入转换时,(仅)它的上升沿可以启动转换。

其中ADC1和ADC2的触发源基本相同,ADC3的触发源见上图右下角。


2.3 ADC输出单元

2.3.1 ADC-中断

规则和注入组转换结束时能产生中断,它们都有独立的中断使能位。ADC1和ADC2的中断映射在同一个中断向量上,而ADC3的中断有自己的中断向量。


2.3.2 ADC-DMA

因为规则通道转换的值储存在一个仅有的数据寄存器中,所以当转换多个规则通道时需要使用DMA,这可以避免丢失已经存储在ADC_DR寄存器中的数据。只有在规则通道的转换结束时才产生DMA请求,并将转换的数据从ADC_DR寄存器传输到用户指定的目的地址。


需要注意的是,只有ADC1和ADC3拥有DMA功能。


3 功能详解

3.1 ADC开关控制

通过设置ADC_CR2寄存器的ADON位可给ADC上电,清除ADON位可以停止转换,并将ADC置于断电模式。


3.2 转换时间

Tcovn=采样时间+12.5 个周期


其中:Tcovn 为总转换时间,采样时间是根据每个通道的 SMP 位的设置来决定的。例如,当 ADCCLK=14Mhz 的时候,并设置 1.5 个周期的采样时间,则得到:Tcovn=1.5+12.5=14 个周期=1us。


3.3 单次转换模式

所谓单次转换是指对所选通道组只转换一次。单次转换模式下,ADC只对所选的通道组内的一个通道执行一次转换,即不管所选通道组内有多少个通道,只对一个通道转换一次。单次也是我们学习或者做简单的应用时常用的模式。该模式既可通过设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动也可通过外部触发启动(适用于规则通道或注入通道)。


如果一个规则通道被转换完成:

转换数据被储存在16位ADC_DR寄存器中

EOC(转换结束)标志被设置

如果设置了EOCIE(转换结束中断允许位),则产生中断。

如果一个注入通道被转换完成:

转换数据被储存在16位的ADC_DRJ1寄存器中

JEOC(注入转换结束)标志被设置

如果设置了JEOCIE(注入转换中断允许位),则产生中断。

然后ADC停止,直到下次启动ADC转换命令。


3.4 连续转换模式

在连续转换模式中,当前面ADC通道转换一结束马上就启动下一次转换,同样之转换通道组里的第一个通道。此模式可通过外部触发启动或通过设置ADC_CR2寄存器上的ADON位启动。


如果一个规则通道被转换完成:

转换数据被储存在16位的ADC_DR寄存器中

EOC(转换结束)标志被设置

如果设置了EOCIE,则产生中断。

如果一个注入通道被转换完成:

转换数据被储存在16位的ADC_DRJ1寄存器中

JEOC(注入转换结束)标志被设置

如果设置了JEOCIE位,则产生中断。


3.5 扫描模式

此模式用来扫描一组模拟通道,与单词转化和连续转换模式不一样的是,扫描模式是以此转换所选通道组里的所有的通道。扫描模式可通过设置ADC_CR1寄存器的SCAN位来选择。一旦这个位被设置,ADC扫描所有被ADC_SQRX寄存器(对规则通道)或ADC_JSQR(对注入通道)选中的所有通道。在每个组的每个通道上执行单次转换。在每个转换结束时,同一组的下一个通道被自动转换。


如果设置了连续转换模式,转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。


扫描模式一般要通过DMA读!在每次EOC后,DMA控制器把规则组通道的转换数据传输到SRAM中。而注入通道转换的数据总是存储在ADC_JDRx寄存器中。


这些模式之间什么区别呢?


首先搞明白什么是通道、通道组、ADC模块,他们之间的包含关系。

每个ADC模块有18个通道,要使用到的通道任意组合构成通道组。


单次转换、连续转换是针对“通道组”而言的,通道组是最小单元,与组内通道无关。通道组内的通道转换规则由扫描模式、间断模式设置。ADC模块之间的转换规则由双ADC模式设置。


关于单次转换模式、连续转换模式、扫描模式的区别的形象介绍,可以戳这里参考一下。


3.6 间断模式

所谓间断模式是指提前设定好每次触发转换所选通道组里的多少个通道。间断模式只能作用于一组转换,应该避免同时为规则组和注入组设置间断模式。


此模式通过设置ADC_CR1寄存器上的DISCEN位激活。它可以用来执行一个短序列的n次转换(n<=8),此转换是ADC_SQRx寄存器所选择的转换序列的一部分。数值n由ADC_CR1寄存器的DISCNUM[2:0]位给出。一个外部触发信号可以启动ADC_SQRx寄存器中描述的下一轮n次转换,直到此序列所有的转换完成为止。总的序列长度由ADC_SQR1寄存器的L[3:0]定义。


举例:


n=3,被转换的通道 = 0、1、2、3、6、7、9、10 

第一次触发:转换的序列为 0、1、2 

第二次触发:转换的序列为 3、6、7 

第三次触发:转换的序列为 9、10,并产生EOC事件

第四次触发:转换的序列 0、1、2


注意,最后一次触发转换时,如果剩下的通道数不够n,剩多少转换多少。注意上述例子的第三次触发,只转换了剩下的两个通道。


3.7 双ADC模式

所谓双ADC模式,是指两个ADC都工作,可以提高工作效率,具体的工作方式由双ADC模式具体设置。在有2个或以上ADC模块的产品中,可以使用双ADC模式。双ADC模式下的触发源均来自ADC1的通道组。


共有6种可能的模式:


独立模式

同步注入模式

同步规则模式

快速交叉模式

慢速交叉模式

交替触发模式

还有可以用下列方式组合使用上面的模式:


同步注入模式 + 同步规则模式

同步规则模式 + 交替触发模式

同步注入模式 + 交叉模式

如果不使用双ADC模式就设置为独立模式,每个ADC接口独立工作,这也是常用的基本模式。


在双ADC模式里,当转换配置成由外部事件触发时,用户必须将其设置成仅触发主ADC,从ADC设置成软件触发,这样可以防止意外的触发从转换。但是,主和从ADC的外部触发必须同时被激活。

在双ADC模式里,为了在主数据寄存器上读取从转换数据,必须使能DMA位,即使不使用DMA传输规则通道数据。


3.7.1 同步模式

所谓同步模式是指,对于一个通道组内的所有通道的转换工作由ADC1和ADC2同时工作来完成,以一个通道组内的16个通道的同步模式转换为例,如下图所示。同步模式的组可以是规则组也可以是注入组,因此又分别称为同步规则模式、同步注入模式。

在同步模式中,必须转换具有相同时间长度的序列,或保证触发的间隔比2个序列中较长的序列长,否则当较长序列的转换还未完成时,具有较短序列的ADC转换可能会被重启。不要在2个ADC上转换相同的通道(两个ADC在同一个通道上的采样时间不能重叠)。


3.7.2 交叉模式

所谓交叉模式是指ADC1和ADC1对规则通道组内的一个通道的转换工作交叉进行,该模式只适用于规则通道组中的一个通道,且在交叉模式下不能有注入通道的外部触发产生。根据交叉进行的快慢又分为快速交叉模式和慢速交叉模式。快速交叉模式下,读一个同道进行转换的第二个ADC与第一个ADC的时间间隔是7个ADC时钟周期,慢速交叉模式的时间间隔是14个时钟周期。


对于快速交叉模式:


外部触发产生后:

ADC2立即启动并且

ADC1在延迟7个/14个ADC时钟周期后启动

如果同时设置了ADC1和ADC2的CONT位(连续转换),所选的两个ADC规则通道将被连续地转换。

对于慢速交叉模式:


触发产生后:

ADC2立即启动并且

ADC1在延迟14个ADC时钟周期后启动

在延迟第二次14个ADC周期后ADC2再次启动,如此循环。

ADC1产生一个EOC中断后(由EOCIE使能),产生一个32位的DMA传输请求(如果设置了DMA位),ADC1_DR寄存器的32位数据被传输到SRAM,ADC1_DR的上半个字包含ADC2的转换数据,低半个字包含ADC1的转换数据。在28个ADC时钟周期后自动启动新的ADC2转换。在这个模式下不能设置CONT位,因为它将连续转换所选择的规则通道。

在通道0上的快速/慢速交叉模式分别如下图所示

对于慢速交叉模式下,采样时间小于14个ADC时钟周期;快速模式下,采样时间小于7个ADC时钟周期。


3.7.3 交替触发模式

所谓交替触发模式是指触发信号交替触发ADC1和ADC2上的注入通道组的转换,该模式只使用与注入通道组。


当第一个触发产生时,ADC1上的所有注入组通道被转换。

当第二个触发到达时,ADC2上的所有注入组通道被转换。

如此循环……

如果允许产生JEOC中断,在所有ADC1/ADC2注入组通道转换后产生一个JEOC中断。


交叉模式和交替触发模式什么区别?


交叉模式是一个触发信号后,ADC1和ADC2对规则通道组里的一个通道交替转换。ADC1采样完了开始转化,这是ADC2利用ADC1转换的空闲开始采样,然后进行转换,这样可以大大提高对这个通道的采样率。


交替触发模式是ADC1注入通道组和ADC2注入通道组对触发信号交替响应。


多种模式的配置可以参见这篇文章


3.8 校准

ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。在校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差。通过设置ADC_CR2寄存器的CAL位启动校准。一旦校准结束,CAL位被硬件复位,可以开始正常转换。建议在上电时执行一次ADC校准。校准阶段结束后,校准码储存在ADC_DR中。


4 基本功能相关寄存器

ADC的寄存器很多,这里只列举和规则通道的单次转换相关的寄存器。


4.1 ADC控制寄存器 1(ADC_CR1)

位[19:16]:  DUALMOD[3:0]:双模式选择 (Dual mode selection)


软件使用这些位选择操作模式。最基本的使用就是独立模式。


0000:独立模式

0001:混合的同步规则+注入同步模式

0010:混合的同步规则+交替触发模式

0011:混合同步注入+快速交叉模式

0100:混合同步注入+慢速交叉模式

0101:注入同步模式

0110:规则同步模式

0111:快速交叉模式

1000:慢速交叉模式

1001:交替触发模式

位[8]: SCAN:扫描模式 (Scan mode)

0:关闭扫描模式;

1:使用扫描模式。

该位由软件设置和清除,用于开启或关闭扫描模式。在扫描模式中,转换由ADC_SQRx或ADC_JSQRx寄存器选中的通道。

如果分别设置了EOCIE或JEOCIE位,只在最后一个通道转换完毕后才会产生EOC或JEOC中断。


位[7]: JEOCIE:允许产生注入通道转换结束中断 (Interrupt enable for injected channels)

该位由软件设置和清除,用于禁止或允许所有注入通道转换结束后产生中断。

0:禁止JEOC中断;

1:允许JEOC中断。当硬件设置JEOC位时产生中断。


位[5]: EOCIE:允许产生EOC中断 (Interrupt enable for EOC) 

该位由软件设置和清除,用于禁止或允许转换结束后产生中断。

0:禁止EOC中断;

1:允许EOC中断。当硬件设置EOC位时产生中断。


4.2 ADC控制寄存器 2(ADC_CR2)

位[0]: ADON:开/关A/D转换器 (A/D converter ON / OFF)

该位用于开关AD转换器,当该位为’0’时,写入’1’将把ADC从断电模式下唤醒。当该位为’1’时,写入’1’将启动转换。

0:关闭ADC转换/校准,并进入断电模式;

1:开启ADC并启动转换。

为防止触发错误,如果该位和其他位一起改变,将不会触发转换。


位[1]: CONT:连续转换 (Continuous conversion)

如果设置了该位,则转换将连续进行直到该位被清除。

0:单次转换模式;

1:连续转换模式。


位[2]: CAL:A/D校准 (A/D Calibration) 

该位由软件设置以开始校准,并在校准结束时由硬件清除。

0:校准完成;

1:开始校准。


位[3]: RSTCAL:复位校准 (Reset calibration)

该位由软件设置并由硬件清除。在校准寄存器被初始化后该位将被清除。

0:校准寄存器已初始化;

1:初始化校准寄存器。


位[11]: ALIGN:数据对齐 (Data alignment) 

该位由软件设置和清除。参考图29和图30。

0:右对齐;

1:左对齐。


位[19:17]: EXTSEL[2:0]:选择启动规则通道组转换的外部事件 (External event select for regular group)

这些位选择用于启动规则通道组转换的外部事件

一般最简单的使用为软件触发。


位[22]: SWSTART: 开始转换规则通道 (Start conversion of regular channels)

由软件设置该位以启动转换,转换开始后硬件马上清除此位。如果在EXTSEL[2:0]位中选择了

SWSTART为触发事件,该位用于启动一组规则通道的转换,

0:复位状态;

1:开始转换规则通道。


4.3 ADC采样时间寄存器 1~3(ADC_SMPR1~3)

位[23:0]: SMPx[2:0]:选择通道x的采样时间 (Channel x Sample time selection)

这些位用于独立地选择每个通道的采样时间。在采样周期中通道选择位必须保持不变。

000:1.5周期 100:41.5周期

001:7.5周期 101:55.5周期

010:13.5周期 110:71.5周期

011:28.5周期 111:239.5周期


关于转换时间的计算在前文已经提到了


ADC转换时间Tcovn=采样时间+12.5 个周期 


4.4 ADC规则序列寄存器 1~3(ADC_SQR1~3)

这三个寄存器都大同小异,这里以1为例。

位[23:20]: L[3:0]:规则通道序列长度 (Regular channel sequence length)

这些位由软件定义在规则通道转换序列中的通道数目。

0000:1个转换

0001:2个转换

…… 

1111:16个转换


SQ13~16 则存储了规则序列中第 13~16 个通道的编号(0~17)


4.5 ADC状态寄存器(ADC_SR)

位[1]: EOC:转换结束位 (End of conversion)

该位由硬件在(规则或注入)通道组转换结束时设置,由软件清除或由读取ADC_DR时清除

0:转换未完成;

1:转换完成。


此外还有

STRT:规则通道开始位 (Regular channel Start flag)

JSTRT:注入通道开始位 (Injected channel Start flag)

JEOC:注入通道转换结束位 (Injected channel end of conversion)

AWD:模拟看门狗标志位 (Analog watchdog flag)


参考资料:


《STM32中文/英参考手册》


《正点原子开发指南》

关键字:STM32  ADC  输入时钟 引用地址:STM32-一文搞懂ADC

上一篇:STM32-快速上手ADC
下一篇:STM32-电源【ADC供电、VDDA、VSSA、VREF、VBAT等】

推荐阅读最新更新时间:2024-11-16 23:58

STM32之can 实例+代码解析
#include sysdef.h #define MAX_MAIL_NUM 3 //CAN总线调试:0=运行 1=自环调试 #define CAN_DEBUG 0 //CAN总线波特率:0=250kbps,1=500kbps,2=1Mbps #define CAN1_BPS 0 unsigned char can1_addr = 0; unsigned short Can1_Tx_Count =0; unsigned short Can1_Rx_Count =0; unsigned short Can1_Send_Delay =0; unsigned char Can1_Send_Buf ={0xe
[单片机]
STM32—cubeMX+HAL库的SPI接口使用
本文主要介绍STM32的SPI接口、cubeMX软件配置SPI接口和分析SPI相关代码。 STM32之SPI简介: (1)SPI协议【Serial Peripheral Interface】 串行外围设备接口,是一种高速全双工的通信总线。主要用在MCU与FLASHADCLCD等模块之间的通信。 (2)SPI信号线 SPI 共包含 4 条总线。 SS(Slave Select):片选信号线,当有多个SPI 设备与 MCU 相连时,每个设备的这个片选信号线是与 MCU 单独的引脚相连的,而其他的 SCK、MOSI、MISO 线则为多个设备并联到相同的 SPI 总线上,低电平有效。 SCK (Serial C
[单片机]
<font color='red'>STM32</font>—cubeMX+HAL库的SPI接口使用
STM32 ILI9341驱动TFTLCD屏(三)
上次已经常用的指令封装成函数,今天通过调用这些函数在屏幕上显示图片,让大家进一步了解ILI9341。 要让屏幕显示图片,那就要先把图片转化为计算机能识别的数据.,这里用Image2Lcd这款工具软件,把图片转换成特定的数据格式以用来匹配STM32系统所需要的显示数据格式。 图片转换成特定的数据格式步骤: (1)把图片尺寸修改为想要显示的大小并保存; (2)在Image2Lcd中打开要显示的图片; (3)设置输出类型为C语言数组;扫描模式要和ILI9341的扫描方式一致;输出灰度选择屏幕适用的;确定要显示的宽度和高度; (4)将生成的数组保存到一个h文件或c文件,方便调用。 数组保存到文件后,文件会自动打开,图片现在
[单片机]
<font color='red'>STM32</font> ILI9341驱动TFTLCD屏(三)
【STM库应用】stm32 之 TIM (详解二 脉冲宽度、周期测量)
今天主要是用TIM3进行PWM的输入模式,进行对矩形波的脉冲信号宽度以及其周期进行测量,先来看一幅图。 图1 TIM内部逻辑图 我们先来看看datasheet上是怎么说的: 该模式是输入捕获模式的一个特例,除下列区别外,操作与输入捕获模式相同: ● 两个ICx信号被映射至同一个TIx输入。 ● 这2个ICx信号为边沿有效,但是极性相反。 ● 其中一个TIxFP信号被作为触发输入信号,而从模式控制器被配置成复位模式。 例如,你需要测量输入到TI1上的PWM信号的长度(TIMx_CCR1寄存器)和占空比(TIMx_CCR2 寄存器),具体步骤如下(取决于CK_INT的频率和预分频器的值) ● 选择TIMx_CCR1的有效
[单片机]
【STM库应用】<font color='red'>stm32</font> 之 TIM (详解二 脉冲宽度、周期测量)
STM32-IIC通信(基于AT24C02的软件IIC通信)
IIC是什么? IIC是一种通信是一种由 PHILIPS 公司开发的两线式串行总线。IIC是用来传输数据的,也是一种通信协议。 IIC的特点: IIC总线简单而有效,占用的PCB(印制电路板)空间很小,芯片引脚数量少,设计成本低。IIC总线支持多主控(Multi-Mastering)模式,任何能够进行发送和接收的设备都可以成为主设备。主控能够控制数据的传输和时钟频率,在任意时刻只能有一个主控。高速 IIC 总线一般可达 400kbps 以上。 IIC的通信时序: I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。 开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开
[单片机]
STM32-IIC通信(基于AT24C02的软件IIC通信)
STM32CubeMx入门教程(5):ADC应用
导语“在本次教程中我们使用指南者开发板的ADC功能,实现ADC电压采样转换。本项目在USART项目(参考USART章节)的基础上配置ADC,通过将采集到的数据转化为电压值在串口上打印出来。” 第一节 系统要求 •硬件 野火指南者开发板 •软件 CubeMx &MDK & 串口调试助手 •原理图 第二节 CubeMX配置 在CubeMx 中设置ADC,选择PC1对应的11通道,ADC1,参数根据下图设置: 第三节 MDK代码编写 CubeMx 初始化代码配置后使用MDK打开项目,主main.c 文件中添加电压转化函数和定义变量: float adc_conv_value(uint16_t value);uint16_t
[单片机]
STM32CubeMx入门教程(5):<font color='red'>ADC</font>应用
stm32与pic单片机比较_哪个好
  STM32单片机   由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名…其强大的功能主要表现在:   stm32单片机特性   1、内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.2
[单片机]
<font color='red'>stm32</font>与pic单片机比较_哪个好
示波器并非千篇一律:ADC 和低本底噪声为何至关重要
作者:是德科技产品营销经理 Michelle Tate 在工程领域,精度是核心要素。无论是对先进电子设备执行质量和性能检测,还是对复杂系统进行调试,测量精度的高低都直接关系到项目的成功与否。这时,示波器中的垂直精度概念就显得尤为重要,它衡量的是电压与实际被测信号电压之间的一致性。而要实现高垂直精度,关键在于两个因素:一是模数转换器 (ADC) 的位数,二是示波器的本底噪声。 ADC 位数的作用 示波器的横轴代表时间基准,通常以s/div来表示,而纵轴则表示电压,以V/div为单位。垂直精度关乎示波器所显示的信号电压的精确程度,这对于直观地显示电信号的波形和特征以及实现精确的测量都至关重要。简而言之,示波器屏幕上读取
[测试测量]
示波器并非千篇一律:<font color='red'>ADC</font> 和低本底噪声为何至关重要

推荐帖子

伟福调试软件E2000w 3.2版
伟福调试软件E2000w3.2版伟福调试软件E2000w3.2版
zzzzer16 电源技术
CC1100E要把10mW的信号放大到50mW,有哪些器件可以选择,谢谢!
CC1100E要把10mW的信号放大到50mW,有哪些器件可以选择,谢谢!CC1100E要把10mW的信号放大到50mW,有哪些器件可以选择,谢谢!
wuyueye 无线连接
DRV8301 SPI接口配置问题
这几天,在利用直流无刷电机驱动芯片DRV8301控制一台直流无刷电机,控制器采用了TI的MSP430F2619,电机运行调速都没问题,但是在通过SPI接口配置DRV8301时遇到问题,无法配置。片选后,只要给SCLK时钟,DO口就有高电平输出,一个SCLK时钟结束后,DO拉低。可是等16位的DI命令发完后,DO愣是没反应,感觉时序都没问题,有哪位仁兄配置过么,指点一下,或者把SPI配置的程序发我一份可以么?多谢了DRV8301SPI接口配置问题请问会8301spi配置吗?
upchxf 微控制器 MCU
PCB设计知识
布线(layout)是pcb设计工程师最基本的工作技能之一。走线的好坏将直接影响到整个系统的性能,大多数高速的设计理论也要最终经过layout得以实现并验证,由此可见,布线在高速pcb设计中是至关重要的。下面将针对实际布线中可能遇到的一些情况,分析其合理性,并给出一些比较优化的走线策略。主要从直角走线,差分走线,蛇形线等三个方面来阐述。1.直角走线直角走线一般是pcb布线中要求尽量避免的情况,也几乎成为衡量布线好坏的标准之一,那么直角走线究竟会对信号传输产生多大的影响呢?从原理上说,直角走
程序天使 PCB设计
CC2640R2:浅析BLE配对机制及自定义配对密码的实现
CC2640R2是德州仪器推出的一款面向BluetoothSmart应用的低功耗无线MCU。该芯片集成有CortexM3内核,可以运行TI的BLE协议栈,具有功耗低,外设种类丰富,射频性能好等特点。与CC2640相比,R2版本的芯片将部分协议栈迁移到了片内的ROM中,留给客户的应用程序更多的Flash空间。CC2640R2芯片架构及核心特点如下图1所示。图1.CC2640R2芯片架构及
灞波儿奔 RF/无线
【Follow me第二季第1期】汇总提交帖:全部任务视频及其代码下载
首先很荣幸参加followme第二季第一期的活动,在学习、工作之余有精力和时间去接触AdafruitCircuitPlaygroundExpress这款开发板,下面我和大家分享一下开发过程。全部视频演示视频:完整版物料展示:本次活动中,我购买了CircuitPlaygroundExpress主板和陀机两种物料购买实物图片展示:任务成果展示入门任务:01Ardunioide环境搭建+物料展示+板载LED点亮相对应的帖子地
聪聪哥哥 DigiKey得捷技术专区
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved