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

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

[复制链接]
zero99 发布时间:2017-4-5 17:18
STM32 DFSDM测量温度应用
前言
) v; O8 h1 `( x6 T/ ~+ q3 XSTM32L4集成了DFSDM数字滤波模块,配合Σ-Δ器件使用,可进行高精度、高速率的AD测量。
0 Q5 N# O0 W2 \, ?# J+ i9 O  h- K! T8 X- ?4 t' k$ J
模块框图/ E' q* M' T' E4 M
STM32 Σ-Δ转换器应用框图如下:) F9 H! W- m% u- f% [( N
21.jpg ( O) q+ i5 ^2 e) a) e; O, g7 s

, E& [* H1 O$ ?/ Y  h3 r系统被分为两部分: STM32外部的模拟前端Σ-Δ模块和内置的数字部分DFSDM模块。
5 W. G; ~6 D7 P8 e; m1 f0 m0 S       DFSDM是STM32产品内部的一个新的数字外设,通常搭配外部的Σ-Δ器件使用,可根据相应的应用选择外部的模拟部分,如测量、马达控制等应用。模拟部分提供串行数据给DFSDM,DFSDM负责对数字信号进行处理。0 ]' E0 u9 K" S
       DFSDM数字部分集成了模拟看门狗、注入和常规转换、灵活的触发系统、中断信号生成、极值检测等。
  Y0 Y5 B& ?, P) Y1 W* _( H• Σ-Δ模块$ f+ x; p; d  R8 V+ ?
  · 输入模拟信号
( s: h; a6 D# x, D# P( _% U: p  · 输出1位或2位的快速串行数字信号,可达20MHz速率。
  h' E( n' l* C% u  · 广泛的厂商支持: ST, TI, Analog Devices
# k0 z5 z7 {- E4 \; ?- {" {2 L4 ~: a% `% j
• DFSDM = Digital Filter for Sigma Delta Modulators:# |' J; T% J& V  k% q& `3 }
  ·从Σ-Δ模块接收串行数据
  S1 h! X- C& \" T2 e  ·对接收到的Σ-Δ模块数据进行滤波0 N, {8 n! _/ t' K
  ·最大24位的输出精度! E5 T/ n; W. S: O

/ ^* D) s( S/ `7 v  Z) ?典型应用$ I$ H& X! c. O) S
•  电信号测量:电流、电压等。
. V& k; G# k: a• 马达控制
# k# e2 R( M/ a5 Y3 j• 医疗应用$ M& R! t9 u$ p% _1 Z
• 麦克风音频$ \5 d; w7 g+ C1 T! V1 f
! |" `2 l- {2 O
STM32 DFSDM架构图如下:- O1 j3 @- x( N: M" |$ [
22.jpg
/ `% {' r% i0 C; O
: [1 _. Q6 k! t4 Q) K收发器
% Z4 a) v0 w8 n# \• 快速串行输入(20MHz)
/ _8 _- W- D( |1 q% ]  · SPI或曼切斯特编码模式) |6 A* c: b$ v
  · 时钟生成" o9 h9 T2 j* H6 Z( ^+ U4 B2 h; V+ l
•  内部并行输入
* `, W# `9 }3 a0 o5 t# {9 }4 E6 ~  ·由CPU/DMA写入的16位寄存器数据输入' q" \( Z, m+ r. Y' p
  · 收发器提供串行连接到外部Σ-Δ模块,支持SPI、曼切斯特协议。收发器也支持通过CPU或DMA写入到DFSDM数据寄存器的内部16位并行数据输入,- U0 C8 d; F) D3 s  z) X
滤波器
8 r) O. j! f' K7 |9 i# Y* O# _• Sinc1,Sinc2,Sinc3,Sinc4,Sinc5,FastSinc内插滤波器,过采样因子可达1024.) N+ l$ \6 j8 I6 T. K+ W
• 积分器过采样因子可达1024
3 s9 t* ?; O3 Y5 L* H: R  Y+ ]+ _' C( @# J! V; b; ~3 \
STM32 DFSDM应用框图如下:
- b2 f1 m* X  K( x$ _
23.jpg # L) ]' p9 Y3 R7 J1 i+ x, _4 Y# l
整个DFSDM模块包含如下接口:
4 K$ r. O3 a' a6 q5 a  l•  8个串行收发器
4 `5 v& l: T" k  y• 4个Sinc滤波器和积分器
  l& w1 \, h% c. t1 \/ u•  4个输出数据单元
  w1 o- n. Q$ v$ X0 B- w• 4个模拟看门狗
3 |/ S) x, Y$ [8 T- q7 X" U& l•  8个短路检测器! s2 M; j. `9 X7 |+ g' U% B
• 4个极值检测器
+ [3 W7 O$ }4 W• 8个并行数据进入寄存器7 c5 ]8 K$ R1 `
1 E( y7 y- p# a  i
串行收发器5 u  m) i7 k  q6 A
24.jpg
4 O/ @/ c* V2 A/ D7 k) Z功能
2 Q" l. ?8 f# g5 p( C( [  _• 从Σ-Δ模块接收1位的串行数据,提供时钟和数据给滤波阶段,最大支持8个输入串行通道。
' Q1 l3 e# m6 f支持的协议
# H8 ~4 t. u. m$ Z0 |* w3 j9 G• 1线曼切斯特编码
  `/ {. d- W& j% {; L% g  a7 n• SPI模式(时钟和数据线)6 v9 O! S( Z- N! ^$ \/ @7 V& N
  · 上升沿、下降沿采样
8 T5 T+ ?% V+ ~" J% f6 ?  ·数据速率测量
' w1 q3 z& |% i+ W, g( W  ·时钟缺失检测# L4 A6 k$ {7 X6 s* d8 ?: L
  · 时钟速率高达20MHz
. D8 Q% t6 i! C) @' ?1 g: ^, l• 串行输入(时钟和数据)通道的 DFSDM_DATINy和DFSDM_CKINy引脚可被重定向,通道重定向用于收集来自立体麦克风类型的PDM音频数据,PDM立体麦克风具有时钟和数据信号,数据通道提供左右声道信息,左声道进行时钟上升沿采样,右声道进行时钟下降沿采样。
9 X3 S9 N/ Z7 C- A& a3 ~2 H
( {& j4 N4 @' r# r. S! o6 W& ~并行收发器( Z7 o: ~* T$ p- g# w
25.jpg
0 T' p8 c1 e% W' j功能! ~% y' H' x- v7 a, [
•从内部数据源接收16位的并行数据,并提供数据给滤波阶段。多达8个并行通道。% e: ?! J- ?: c- E
内部并行输入数据源
9 z5 `7 \7 X% [/ V: t. g4 G! D•RAM数据后期处理; s# D: C" u& V6 T
  · 来自内部ADC的数据处理
4 n# i& h; z4 z1 O  ·来自被收集数据的后期处理数据
0 |$ x9 L: B& U5 }; m1 |5 t2 \1 [• CPU或者DMA提供数据到DFSDM输入寄存器
0 f: o9 Z/ W! O! Q9 h+ U- ~! \. j$ q2 V1 h
STM32 DFSDM温度测量应用原理图如下:# {+ Y/ w: ~9 z
26.jpg
9 K/ b. K: \8 m( @, K  W$ d- H1 t* E; h; f5 J/ L  t
STPMS2是一个双通道的二阶Σ-Δ模块,一个通道感知PT100的电压,另一个通道感知PT100的电流。使用1秒定时器来触发2个通道进行注入扫描转换。PC7(DFSDM1_DATIN3)是通道3,时钟为PC2(DFSDM1_CKOUT)。通道3测量PT100的电压,通道2测量PT100的电流。: x2 Z( K) M: ]; g6 I
27.jpg
7 v7 n, p* O& @; {PT100温度计算公式为:T = (PT100 – 100) / (0.385),只要通过能够测量出PT100的电压和电流,就能计算出PT100电阻值,进而得到温度值。
6 r9 n( u  i7 l; f/ q4 E" n4 \7 c: t' E: i9 S* t* u$ u
应用示例- V. i8 y5 j+ e8 E7 f+ j
硬件平台基于STM32L476G-EVAL。
, x" q9 a6 @7 s7 i7 M$ N
4 v' P" y+ c' H, `/ s9 ~7 x/ KCubeMX工程配置
& N5 o6 [' `! ~# d8 J* e& R选择STM32L476ZGTx,配置系统时钟为80MHz。
6 a" M9 S+ O8 t- ?" \7 r
28.jpg 1 ^" L" I5 F( e
- G; q* a) k8 {5 n1 |; i
将通道2配置为从通道3重定向输入,通道3则直接输入,两个通道使用相同的时钟源。+ X* o, _8 s2 ^$ n6 [, s# o. j% O
29.jpg 1 _% j  d9 h4 Y6 a( o# r" t

) h5 b/ a: I- ~6 d+ ]对时钟进行80分频,设置DFSDM时钟为1MHz。* Y7 W7 t% O5 H( h
30.jpg
6 _6 `; b  R. t  g
5 X& Z8 V1 x. z) {: Q) B& G7 y1 x将PC2(DFSDM1_CKOUT)、PC7(DFSDM1_DATIN3)配置为下拉,GPIO高速模式。( [) ~4 p3 n( t
31.jpg
4 b0 S- R# q/ D& l& f- w; W& U* t
1 F) t  L7 U  l通道2在时钟的上升沿采集数据,通道3在时钟的下降沿采集数据。) f. _3 d1 k7 d) D* a/ K
32.jpg 2 B/ |1 S# A1 D
33.jpg 3 h$ T. R! I6 X9 W
34.jpg
( A, B' g1 K5 D- h; X$ X) t" P. q( q- E( r& S& h
使能DFSDM1滤波器0全局中断。* o. `* n! {; v5 z
35.jpg
4 f0 @4 p& Y8 w  m4 r$ d3 z* V使能定时器1作为DFSDM转换的触发源,触发间隔为0.5秒。
5 R1 O$ Q) r, E3 D1 t4 z$ n
36.jpg
2 d: c$ d+ U' b. I" z
37.jpg
0 R+ i' w5 {0 \. }: h; r( [  I
, l. u7 T5 B% W, @3 o, `添加注入完成回调函数,获取通道2和通道3的转换值。+ P4 W, n- T5 B. d6 c7 ~' A3 w* x
38.jpg
& d1 p7 \% z: C, B; x( |$ x2 i5 J( H1 r/ r
39.jpg 7 I, O% V" n+ R0 r
因为积分器过采样因子设置的是64,需要将转换结果除以64。
2 ]* J$ ^5 @0 j( s/ S: Q
40.jpg
4 h7 r8 i5 N# n% b5 O0 g# zM就是过采样因子64,积分器输出的结果是代码中转换得到的通道2和通道3分别获取的电压和电流值。
2 ?4 R5 z! c) V5 i0 D* R5 r7 V2 q) x1 _, A0 B
main.c中添加以下代码,启动DFSDM注入转换,启动定时器1来触发DFSDM注入转换。
1 `$ l5 V; D3 D$ i, p* c7 w
41.png 1 l  u$ `9 s+ V  \+ |

  |# f: F' e5 J$ p( A; [/ E9 C1 F; q/ A' P- {
0 n* p# n: J" q" G) l# {8 V. I
主循环中检测到有转换过的数据收到, 根据PT100温度计算公式计算温度。
5 C0 E4 C4 ^9 y' E% ]/ b2 P, }
$ h* P% p" Q* x0 U. I% h; E结论7 V: @( q  [, U7 W1 T
STM32 DFSDM配合Σ-Δ模块,可对电压、电流、音频等信号进行高速串行采集,通过DFSDM对采集的数据进行滤波处理,并输出高精度24位的数据。在STM32 CubeMX工具中,可以方便的配置DFSDM模块,快速生成工程代码。
+ i! q: U8 H- o% G6 k( w& `/ a! y! |% j* E
" b) t( Q: j. o+ P6 A% S1 m8 g% s
STM32 DFSDM测量温度应用.pdf (1.29 MB, 下载次数: 185)
赞 收藏 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
学习学习
. d9 s9 j0 ?) v" i6 E6 R

所属标签

相似技术帖

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