你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F37x/38x SDADC (Sigma-Delta ADC)入门

[复制链接]
STMCU小助手 发布时间:2022-7-17 22:22
前言
7 O. p/ ?* `$ b9 N2 oSTM32F37x/38x 系列微控制器整合了带有 DSP 与 FPU 指令、工作频率为 72 MHz 的 32 位ARM Cortex-M4 内核和高级模拟外设。
* f8 D" r; t" j& E此系列是 Cortex-M4 内核和精确 16 位 Sigma-Delta ADC 的结合。( Y& R  Z  u8 k! D3 \) T' F( e
本文概述了 SDADC 的主要特性,并演示了怎样在各种应用案例中使用 SDADC。本文用举例的方法演示了四个应用案例。# U; X2 h4 Z6 w6 u' K
1. 使用 PT100 的温度测量
  \+ p$ Q" j0 H# v$ O2. 使用 MPX2102A 的压力测量
) u2 s6 n9 K( q2 a# N5 ~+ j3. 录音机
/ R0 K) ?9 y6 B6 p* A4. 心电图 (ECG)捕获! A: N( C" `+ i  v
为帮助您快速上手,四个应用案例都用 C 语言实现,并作为 STM32F37x/38x DSP 和标准外设库包 stm32f37x_dsp_stdperiph_lib 和 STM32373C-EVAL 演示固件包 stm32373c-eval_fw.的一部分0 W5 M+ W# O' O) ~$ g  J  |
请注意,本文并不能取代 STM32F37x/STM32F38x 参考手册 RM0313 中的 Sigma-Delta 模数转换器 (SDADC)一节。
7 o: I+ D! p8 H) q7 f9 G( c7 ?本文中给出的所有数值仅作参考。请参考相关的数据手册以获取有效的最新数据。' c# @0 T- y8 ^: R" |0 g$ G

0 H. F2 y$ z2 ~5 ?2 a! N
1E@H9PEW4FQY_NG_Z5PGTO5.png
) X+ n* w/ z' l( j& g& ~& n/ M

( G" p- U0 l" u3 y) x9 }/ ?4 I1 sigma-delta 转换器基础
. }) Q& K& E, q: kSigma-delta 转换器又称过采样转换器,它包含两个基本电路:调制器和数字滤波器(图 1)。7 H5 k7 a( y5 L5 T4 H
在调制器中,输入信号被加至数模转换器 (DAC)输出的负反馈信号。通过集成电路之后,信号的差值到达比较器的输入 (1 位 ADC),在此与参考电压比较 (比较器作为 1 位量化器工作)。比较器的输入信号 (1 位 ADC)控制着 1 位转换器,到达数字滤波器的输入。数字滤波器降低流速,将 1 位的流转换为 16 位的字。使用的滤波器拓扑确保了低通的阶为 Sinc³。
$ A$ K1 |2 O- p% M
# M# |9 G, t5 K9 Z5 R4 r
$KD~M%`3{1NAME@%ZYAU[MY.png # N% h3 I0 t" b* z% e0 ^

( i$ u( s4 @9 ~' v
2 h+ I+ y5 H) q- X
2 16 位 SDADC 概述# D. r6 g6 d; Y5 Y+ S8 P
2.1 主要特性2 j. m) o8 E# o; C( l
STM32F37x/38x 器件具有三个嵌入式 Sigma-Delta 模数转换器(SDADC)。它们可以同步,且每一个都有下列主要特性:8 o! h( I) U- E8 R' Y
● 有效位数 (ENOB)等于 14 位
* }9 g( I6 a! [1 E( t) k( Q● 5 个差分输入对,或者 9 个单端输入,或它们的组合' J% ?0 ]2 S7 \, ]' m0 S8 B# T
● 高性能数据吞吐量:5 r( b/ }" f1 y: E9 M9 u, c! @
– 当在不同通道之间复用时,为 16.6 ksps 输入采样率) L2 {1 t- z" F  E, ~7 w
– 单通道工作时为 50 ksps 输入采样率
/ m0 j9 f  Z& l1 o/ P' _6 ]● 可编程增益:x0.5、 x1、 x2、 x4、 x8、 x16 及 x32
  c8 F- o& w# G1 ?% U# k● 可选参考电压:VDDSD、 1.22 V、 1.8 V 及 VREF' F# R; `/ g9 I% b0 W# c

4 M' p$ m4 O% t9 g0 ^0 @+ @
2.1.1 时钟选择
3 F/ q  M' B9 Q( y7 H. ^8 ^SDADC 时钟由 SDADCCLK 提供,它按可选的倍数将系统时钟(SYSCLK)预分频:2、4、 6、 8、 10、 12、 14、 16、 20、 24、 28、 32、 36、 40、 44 和 48。
, W9 n- a- w: U& e: S4 V% LSDADC 的典型工作频率为快速模式下 6 MHz 及慢速模式下 1.5 MHz。, |, b5 u* Z% {+ z7 U: G
示例:
! t: G3 z7 Z  S/ a: E; c+ u如果 SYSCLK 设为 72 MHz,则 SDADC 分频器应设为 SYSCLK/ 典型频率:9 `6 o# G, i: M
快速模式:预分频 = 72 MHz / 6 MHz = 128 P2 N; G+ a0 B) H
低速模式:预分频 = 72 MHz / 1.5 MHz = 48
* h7 `/ R, L+ \8 c2 ]- b: s) W3 F* M' G: }6 w1 M& p7 J3 ?4 p( u+ ^
2.1.2 输入模式
1 h2 x6 ^! w4 q" V/ ^) e+ Q, E3 r# NSDADC 有三种可能的输入模式,也可组合使用。4 s* B6 r- C: `. X9 X
● 差分模式:  q: i+ R* P6 ?, B
● 单端偏移模式/ G+ p  x7 S* Q, {
● 单端零参考模式: J" O8 f( v* A
  r! i. A1 C+ {- V
差分模式
+ b. E6 t' z* R: @当所用传感器产生的信号非常小,易受噪声影响时,推荐使用差分模式。当使用热电偶和桥式传感器 (压力传感器)时,尤其如此。
+ Y: W/ {% d, j& i3 q4 C, ]在差分模式中,SDADC 转换的是 SDADCx_AINyP 和 SDADCx_AINyM 的差值。结果可能是正值或负值,取决于哪个输入电压更高。$ q- H: F$ \3 A; z& W+ u
注 : SDADC 无法测量负电压,并且每个通道的输入电压都必须在器件的电气极限之内。
" |! d2 _! P6 I8 l9 _输入范围为 [-Vref/(2*gain), + Vref/(2*gain)],转换值范围为 [-32767, +32767]8 o0 A1 h- Y! K) d" }& E. C9 x0 a
( t! c, V& }2 n% v3 g/ W2 N6 |
示例:# C( D$ B7 j4 y
对于 1.22V 的参考电压, 1 倍增益,输入范围为 +/- 0.61V
* k  g( g+ C# \! M6 Z) Y7 ^公式为:  N' f( p& C. X# }
Vin = SDADCx_AINyP - SDADCx_AINyM = ReadData * Vref/(2 x gain x 32767) ( C% x+ P& j' H0 |% \1 B
其中, ReadData 为 SDADC 数据寄存器的两个补充读数据 (SDADCx_JDATAR 或SDADCx_RDATAR)
) k, _* T, {3 X/ Y. b8 R% I: i1 C( ]7 N- C1 r8 b6 H
, h$ L- P1 n! G" D
4ZKN38Z{LR@)EEIPY6KDC{5.png
/ A( \3 c, I" x% ~
8 R! n2 l7 z, g  F9 r
W%ISSL4YQWDV2I([W}0UC%X.png
  s' r: g$ A0 w% {
( ~) \% J. M/ [. v1 M% ^, s& _1 s8 s单端偏移模式
( _: ?" }5 d) T$ L. [) @( l. K在单端偏移模式中,通过将负输入内部连至0 V进行转换,负输入的相应引脚(SDADCx_AINyM)可用作其它用处。要测量的信号施加于正输入 SDADCx_AINyP。此工作模式与差分模式类似,只是输出数据范围仅为 0 到 +32767,而不是 –32767 到 +32767,因此有一半的动态范围损失,导致 SNR 下降。* N* W* Z1 {( L: E$ E3 T
公式为:
/ q5 x% U% Q& O2 j. q- P$ HVin = SDADCx_AINyP = ReadData * Vref/(2 x 增益 x 32767)) S5 Y. h0 {0 e2 O
其中, ReadData 为 SDADC 数据寄存器的两个补充读数据 (SDADCx_JDATAR 或SDADCx_RDATAR)
8 G4 a: o5 H5 _0 N2 F6 s) U7 j0 ?4 L9 g/ u5 Q, ]" l
$ E' {) _/ k# a% X
{0WF_C2LKS{U5E9(}ED2)01.png / i3 f' j! E& n# N0 `4 |5 l, L- I) _

4 p9 n  W, L6 S) @- v0 J. m0 s1 w9 k* j
单端零参考模式. \% R0 }7 }$ @' \- R
信号施加于正输入 SDADCx_AINyP,负输入设为信号参考 (一般为 0 V)。此模式将一半标度的输入共模注入 ADC,以此保持了与差分模式一样的动态范围 (-32767 到 +32767)。在此模式中,注入的共模取决于增益变化。: h% D, O+ |; Z# M; `0 S
公式为:$ a# A5 F/ ]* M# a4 t! ]
Vin = SDADCx_AINyP = (ReadData + 32767) * Vref/( 增益 x 65535)
" Q% P# T0 r6 T# v其中, ReadData 为 SDADC 数据寄存器的两个补充读数据 (SDADCx_JDATAR 或SDADCx_RDATAR)
, ]$ L" K3 s, E0 `* b& i2 P9 X, L
: s6 @% t' e. D
1 [( g( O* u5 W. ~9 m/ o( Y4 m% J
]EZ}RQQNM@Y]Y$NQPN[$NXG.png
- h* ?% P! B  Q& ]4 I
  w  k+ M4 }7 a" b; |2 k' g% u2.1.3 SDADC 电压参考! T: @( Q6 F7 Z0 V. [
SDADC 可从四个源中选择:0 R/ o  M7 @, S( F+ F
1. VREFINT1:1.2V 嵌入式参考电压
. ?4 K3 \# ^: j& e2. VREFINT2:1.8V 嵌入式参考电压, X3 G% J3 `9 I8 ]
3. VDDSD:SDADC 模拟供电电压。范围为 2.2 V 至 3.6 V
( `9 t& T. D3 P  ?& c4 S" Q8 [4. VREFSD+:外部 SDADC 参考电压。范围为 1.1 V 至 VDDSD: ~2 g# h+ i0 ]8 E# Y$ T5 a
下表显示了使用三种可能的参考时的每位电压权重 (步进大小)。
+ h5 x0 T' E. l; O. I' r4 F! R& ?7 t9 ]
(Q}7BE06EFR`4J7X@5X)9AE.png
5 Q: W* a$ b$ ]$ K
! V+ y/ {: c" H+ M# t( n0 P
# j6 d9 I) r+ q# j( H完整版请查看:附件

* s; V7 c. X% l+ D3 ]
' t! ~" w6 L. ?7 p
赞 收藏 1 评论0 发布时间:2022-7-17 22:22

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版