STM32F37x/38x SDADC (Sigma-Delta ADC)入门 ! z N( [. E3 r. z0 ^9 Q 前言 % g& I$ S1 [& [( I9 _% @" }" J 1 ?1 u8 B* P; p) u9 z8 n STM32F37x/38x 系列微控制器整合了带有 DSP 与 FPU 指令、工作频率为 72 MHz 的 32 位ARM Cortex-M4 内核和高级模拟外设。 . v9 s' a) T8 Z4 G2 e6 V " X; p* w& x) x" ^! S: f 此系列是 Cortex-M4 内核和精确 16 位 Sigma-Delta ADC 的结合。 & d9 J. q: ], K$ M! x+ F 2 p, e6 L. S( y( |7 }" g% r7 ^ 本文概述了 SDADC 的主要特性,并演示了怎样在各种应用案例中使用 SDADC。本文用举例的方法演示了四个应用案例。 % w) D& O f. P) y* ~ 1. 使用 PT100 的温度测量 $ A( `; m5 ?8 {' S' Q7 P" C 2. 使用 MPX2102A 的压力测量 ) o# l0 A' T6 b( h6 F. e: l 3. 录音机 ' u8 o+ e1 b: h" J/ Q- X1 I 4. 心电图 (ECG)捕获 ( K3 t" E y* `9 H) X: K/ s4 @ 为帮助您快速上手,四个应用案例都用 C 语言实现,并作为 STM32F37x/38x DSP 和标准外设库包 stm32f37x_dsp_stdperiph_lib 和 STM32373C-EVAL 演示固件包 stm32373c-eval_fw.的一部分 请注意,本文并不能取代 STM32F37x/STM32F38x 参考手册 RM0313 中的 Sigma-Delta 模数转换器 (SDADC)一节。 & q6 f3 o! i& `: _" p 本文中给出的所有数值仅作参考。请参考相关的数据手册以获取有效的最新数据。- f1 _' e* F0 q% i3 i* y 1 sigma-delta 转换器基础 Sigma-delta 转换器又称过采样转换器,它包含两个基本电路:调制器和数字滤波器(图 1)。在调制器中,输入信号被加至数模转换器 (DAC)输出的负反馈信号。通过集成电路之后,信号的差值到达比较器的输入 (1 位 ADC),在此与参考电压比较 (比较器作为 1 位量化器工作)。比较器的输入信号 (1 位 ADC)控制着 1 位转换器,到达数字滤波器的输入。数字滤波器降低流速,将 1 位的流转换为 16 位的字。使用的滤波器拓扑确保了低通的阶为 Sinc³。% H; j! | d3 J, R0 b, s 2 16 位 SDADC 概述 - x& ^' r$ F% O3 y2 h; i X* z) n2.1 主要特性 STM32F37x/38x 器件具有三个嵌入式 Sigma-Delta 模数转换器(SDADC)。它们可以同步,且每一个都有下列主要特性: + ^6 _7 z1 }6 {9 Y● 有效位数 (ENOB)等于 14 位 : I2 q: f2 G! J& o● 5 个差分输入对,或者 9 个单端输入,或它们的组合 2 o6 U7 c2 V- f/ P+ { ~8 O M● 高性能数据吞吐量: – 当在不同通道之间复用时,为 16.6 ksps 输入采样率 – 单通道工作时为 50 ksps 输入采样率 ● 可编程增益:x0.5、 x1、 x2、 x4、 x8、 x16 及 x32 2 C$ H9 @/ _4 z9 W/ }4 a● 可选参考电压:VDDSD、 1.22 V、 1.8 V 及 VREF 2.1.1 时钟选择 SDADC 时钟由 SDADCCLK 提供,它按可选的倍数将系统时钟(SYSCLK)预分频:2、4、6、 8、 10、 12、 14、 16、 20、 24、 28、 32、 36、 40、 44 和 48。 SDADC 的典型工作频率为快速模式下 6 MHz 及慢速模式下 1.5 MHz。 1 ]( j0 {5 j6 x示例: 如果 SYSCLK 设为 72 MHz,则 SDADC 分频器应设为 SYSCLK/ 典型频率:快速模式:预分频 = 72 MHz / 6 MHz = 12低速模式:预分频 = 72 MHz / 1.5 MHz = 48 2.1.2 输入模式 SDADC 有三种可能的输入模式,也可组合使用。 ● 差分模式: ● 单端偏移模式 ● 单端零参考模式 # g0 Q" l! {5 L I差分模式 * T7 N' ~' h4 q: D当所用传感器产生的信号非常小,易受噪声影响时,推荐使用差分模式。当使用热电偶和桥式传感器 (压力传感器)时,尤其如此。 在差分模式中,SDADC 转换的是 SDADCx_AINyP 和 SDADCx_AINyM 的差值。结果可能是正值或负值,取决于哪个输入电压更高。 + I6 b5 t5 c& s+ U3 d9 K8 S6 Q注 : SDADC 无法测量负电压,并且每个通道的输入电压都必须在器件的电气极限之内。输入范围为 [-Vref/(2*gain), + Vref/(2*gain)],转换值范围为 [-32767, +32767] : b: `" G, {1 l+ u, r' ?% w" g; M3 B# }! a8 Z/ a |
谢谢图图的分享 |
谢谢分享 |
基于STM32F334的数字电源
STM32F3DISCOVERY + UCGUI3.90A的移植(源码+视频)
基于STM32F303双电机FOC驱动: 无感原理图/BOM表/代码等开源...
【基于STM32F3的电机控制】_给力外围之 OPAMP
在 STM32 F0、 F2、 F3、 F4 和 L1 系列MCU 中使用硬件实时时钟 (RTC)
基于STM32F334的BUCK同步降压数字电源设计
ST FOC4.3 库关于 STM32F30x 系列 ICS采样代码的修改
STM32F334 上的 ADC 管脚和 DAC 管脚复用问题
如何使用USART或LPUART将STM32F0/F3/L0/L4微控制器从低功耗模式唤醒
在 STM32 F0、 F2、 F3、 F4 和 L1 系列 MCU 中使用硬件实时时钟 (RTC)