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

【实战经验】STM32 DFSDM测量温度应用

[复制链接]
zero99 发布时间:2017-4-5 17:18
STM32 DFSDM测量温度应用
前言+ A# t9 k4 i1 n5 U/ k
STM32L4集成了DFSDM数字滤波模块,配合Σ-Δ器件使用,可进行高精度、高速率的AD测量。6 T. k! H0 `( T+ V, l' \( m; P

! R  X, v) {) P) G6 z模块框图
6 S5 C7 q2 i0 v- D* n7 o) @. x3 ySTM32 Σ-Δ转换器应用框图如下:
+ U0 u$ m, Q6 m" U- o% L' ~
21.jpg / D1 A+ d& y. X- S' v$ u
) W5 a+ \# X) ^7 W8 _$ ?) _
系统被分为两部分: STM32外部的模拟前端Σ-Δ模块和内置的数字部分DFSDM模块。
0 r1 a: s% j, p5 a) L" S       DFSDM是STM32产品内部的一个新的数字外设,通常搭配外部的Σ-Δ器件使用,可根据相应的应用选择外部的模拟部分,如测量、马达控制等应用。模拟部分提供串行数据给DFSDM,DFSDM负责对数字信号进行处理。
3 f- ]  W* d" z, ], `       DFSDM数字部分集成了模拟看门狗、注入和常规转换、灵活的触发系统、中断信号生成、极值检测等。0 r9 p6 s3 K6 H9 i% P3 Q6 |
• Σ-Δ模块' ~4 s$ f! k0 S- Q* h, `4 d4 I
  · 输入模拟信号
/ V; _5 W! A2 O  l, t  · 输出1位或2位的快速串行数字信号,可达20MHz速率。
2 D' N) s* Z" {3 p# S& y4 H4 v  · 广泛的厂商支持: ST, TI, Analog Devices
% |: x+ t; i+ m
  C2 w. U* z; w4 m$ C9 H• DFSDM = Digital Filter for Sigma Delta Modulators:
/ I* b6 |4 l% A, x  ·从Σ-Δ模块接收串行数据% b( k1 M& h: r" v! W2 o" m7 L& L
  ·对接收到的Σ-Δ模块数据进行滤波
0 c, N3 C- m: y  ·最大24位的输出精度
3 `, _- H3 @2 k  l! f
' r* z( k) m) o: y% N典型应用
( d% ]" z: Y( k$ f1 u1 ^! b•  电信号测量:电流、电压等。% z" m& T: \' |$ \9 @
• 马达控制
$ j- `2 G, s; b, s• 医疗应用( Y. O" ^' f% r+ N2 ^: m
• 麦克风音频! y: b+ p) n' |
4 {) X. h; I. S2 \8 l$ M% `
STM32 DFSDM架构图如下:+ h6 I* i( t" s% n1 ?. v
22.jpg
; T2 f3 w% O, @  W0 e+ Z0 `4 T8 |6 [
* o3 R& g$ v. D  R收发器  d& z! \* y: [* K" W/ a& A" H4 m
• 快速串行输入(20MHz)* k( u: }1 Q* N' w: c4 y: r
  · SPI或曼切斯特编码模式
* ?6 Z. b4 D9 @1 @! E  · 时钟生成$ n# |1 M: F% x, G( Q# n# o" v
•  内部并行输入
. _) i( U9 A- s2 W  ·由CPU/DMA写入的16位寄存器数据输入
  y6 }# y. Y% x; Z& Z( u  · 收发器提供串行连接到外部Σ-Δ模块,支持SPI、曼切斯特协议。收发器也支持通过CPU或DMA写入到DFSDM数据寄存器的内部16位并行数据输入,7 {5 D+ `9 `0 n2 ?
滤波器+ E. b! Z. `( X' M1 ?
• Sinc1,Sinc2,Sinc3,Sinc4,Sinc5,FastSinc内插滤波器,过采样因子可达1024.( j2 X; t( D! U( C
• 积分器过采样因子可达1024
, T) G" _, o! k4 @+ l) t6 `; s3 q5 q/ @; @
STM32 DFSDM应用框图如下:
3 K( |7 T, Z2 a6 l# T
23.jpg
3 z6 R( R; |% }- a& I" }3 t% t% @; O整个DFSDM模块包含如下接口:" o1 Z: x2 {3 v: ]9 ^+ }7 z
•  8个串行收发器9 q1 s; |1 ]8 w9 r" X2 k
• 4个Sinc滤波器和积分器
: E$ L4 w8 R/ R: V& j: t8 ]* e•  4个输出数据单元
1 o; Z# v4 N  L• 4个模拟看门狗
3 }% T/ A/ K8 _: z- L+ o2 ?9 j! c•  8个短路检测器
3 K( M" v7 \9 h3 R% i9 g' Z• 4个极值检测器1 L- M; }: B* Q) |2 K
• 8个并行数据进入寄存器5 `& _3 ]2 V3 O
! N, ?" N6 y2 c2 L
串行收发器
8 W5 s9 `/ n. F/ \# I$ E3 R& J
24.jpg ) \: R" |( M" q; a5 s1 M0 z2 F
功能7 R% i$ B; V3 D
• 从Σ-Δ模块接收1位的串行数据,提供时钟和数据给滤波阶段,最大支持8个输入串行通道。6 Y- F5 M" \! R5 T
支持的协议2 e. E0 r. p% Z! f) ^9 u' ]" E) Z* P
• 1线曼切斯特编码9 C* S4 A+ B+ A1 V( s8 J
• SPI模式(时钟和数据线)8 f* J/ a0 L9 W4 g
  · 上升沿、下降沿采样* L+ Q4 X1 Q* u; r. G
  ·数据速率测量7 c, F3 E" R3 u& m& a9 P
  ·时钟缺失检测
" P; Z& B7 w4 l4 S  D/ r+ y  · 时钟速率高达20MHz
1 k# F5 K2 c) _• 串行输入(时钟和数据)通道的 DFSDM_DATINy和DFSDM_CKINy引脚可被重定向,通道重定向用于收集来自立体麦克风类型的PDM音频数据,PDM立体麦克风具有时钟和数据信号,数据通道提供左右声道信息,左声道进行时钟上升沿采样,右声道进行时钟下降沿采样。
& e$ P. v) Z' v! j3 L
. P1 G7 B* \. i/ N; y并行收发器, n' ?) u) f# V3 S
25.jpg
, r3 U! A! K4 R. ^功能& R! F' o4 W' n* [4 I/ h# N
•从内部数据源接收16位的并行数据,并提供数据给滤波阶段。多达8个并行通道。9 \7 K5 E# K& Z1 }8 Y; {: K6 D
内部并行输入数据源: V4 R8 H4 _8 |
•RAM数据后期处理' |. j/ R. z- Q/ W+ m# b- n& o
  · 来自内部ADC的数据处理
+ F/ g( U9 b, I7 r  }  ·来自被收集数据的后期处理数据
' r! r( z$ C' Z6 e• CPU或者DMA提供数据到DFSDM输入寄存器
1 w* f1 c2 L% J$ ^# c; z0 j
3 i' F( C8 i- c$ q/ l. W- c" XSTM32 DFSDM温度测量应用原理图如下:, B* v- i& F; ^4 M6 Z+ Y8 [
26.jpg 4 p  S: ~: O8 y

  W- l& s* M; Y* ySTPMS2是一个双通道的二阶Σ-Δ模块,一个通道感知PT100的电压,另一个通道感知PT100的电流。使用1秒定时器来触发2个通道进行注入扫描转换。PC7(DFSDM1_DATIN3)是通道3,时钟为PC2(DFSDM1_CKOUT)。通道3测量PT100的电压,通道2测量PT100的电流。! \* m6 R1 G% i+ |' Q
27.jpg
) k+ \1 H& D9 j. ?8 W# LPT100温度计算公式为:T = (PT100 – 100) / (0.385),只要通过能够测量出PT100的电压和电流,就能计算出PT100电阻值,进而得到温度值。
5 p2 J  I* f: z8 h, t( S; D0 O1 {$ i% `, }+ I
应用示例& c% Z9 m! S" E0 k5 q
硬件平台基于STM32L476G-EVAL。+ S# x% R# \0 ]3 c/ R
) G5 r% f8 g) Q& n3 [
CubeMX工程配置
7 F% g6 H; m& C* b; P# ?选择STM32L476ZGTx,配置系统时钟为80MHz。
3 w  I9 J, {1 `$ L3 v) X/ Y5 Q
28.jpg 3 e  a) x& b; Q6 d* H

# v2 R3 W0 e5 P6 g! z+ ]将通道2配置为从通道3重定向输入,通道3则直接输入,两个通道使用相同的时钟源。4 r9 ?! m6 {+ H; z# d4 x" M
29.jpg
, @! m5 J6 g+ |
: w% A# T& Z$ L# X- I6 M对时钟进行80分频,设置DFSDM时钟为1MHz。% v' e* o# L. W  D7 k
30.jpg & C- ?& B4 k8 U

0 n6 ^# r  a& H# N3 r将PC2(DFSDM1_CKOUT)、PC7(DFSDM1_DATIN3)配置为下拉,GPIO高速模式。6 d! `! N9 H. \; v# t
31.jpg 4 o; x. J3 O- a2 p1 J1 k1 E9 ]3 F

7 l9 f: B6 D0 j通道2在时钟的上升沿采集数据,通道3在时钟的下降沿采集数据。
. `: X- t+ h9 A
32.jpg - g7 F* a* b1 `. h, U, ]
33.jpg 2 U6 A0 L% v5 ~7 r+ W( B3 x
34.jpg
5 \* F3 L7 O3 J  ?% f- A/ U" v. j4 |9 g/ d, ?* r! t
使能DFSDM1滤波器0全局中断。- K; I: J2 r0 G. y) H
35.jpg
' T& k) y  y7 S' Z. i使能定时器1作为DFSDM转换的触发源,触发间隔为0.5秒。
# w2 b# U/ [5 S/ b0 ^
36.jpg
2 v& d, C% G0 ~
37.jpg ! |7 L0 d" s& J6 m9 _' f

. C9 O6 @0 W% x# H5 q0 H添加注入完成回调函数,获取通道2和通道3的转换值。8 L1 L# O1 _; R3 f
38.jpg / k4 j: M& c. L$ w9 ~9 Z
39.jpg
0 H0 F5 Q6 y" Y) Z因为积分器过采样因子设置的是64,需要将转换结果除以64。
, {, U0 ]* H  I2 c2 e7 B
40.jpg
/ R7 O* c! Y! _; b# n% FM就是过采样因子64,积分器输出的结果是代码中转换得到的通道2和通道3分别获取的电压和电流值。
, I; `( I! X# `' L
# z$ v3 Z( p, l" G: N6 q8 ^main.c中添加以下代码,启动DFSDM注入转换,启动定时器1来触发DFSDM注入转换。
4 R' |6 g& ?$ V$ l+ {8 v8 Z/ W
41.png & |" }( M4 Z4 G: H0 U4 M
8 S+ O2 ^7 n" p/ v8 H2 y3 j. ~

! ]  a7 f0 s( R# R
/ H8 `' M& M! A5 S2 l5 _( g主循环中检测到有转换过的数据收到, 根据PT100温度计算公式计算温度。6 v" r8 J2 x$ d
  h, ~5 j  A7 `! W7 B, L- X+ A5 Y
结论8 ?7 x7 l/ D" S+ a# U& \1 _3 A( n
STM32 DFSDM配合Σ-Δ模块,可对电压、电流、音频等信号进行高速串行采集,通过DFSDM对采集的数据进行滤波处理,并输出高精度24位的数据。在STM32 CubeMX工具中,可以方便的配置DFSDM模块,快速生成工程代码。
- \8 U* \' r' Y0 B  m' C+ A; I& G6 Y; U* L# O; l
/ D0 Q) W9 i# F# b  }
STM32 DFSDM测量温度应用.pdf (1.29 MB, 下载次数: 183)
收藏 3 评论3 发布时间:2017-4-5 17:18

举报

3个回答
jinglixixi 回答时间:2017-4-5 18:08:23
介绍详细,十分有用,值得收藏!多谢了!
abbit-1988 回答时间:2017-5-28 07:47:18
第二关失败
877562693 回答时间:2022-7-8 09:33:25
学习学习
. J- s  Z4 w* Z; H
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版