
STM32 DFSDM测量温度应用 前言+ W* d9 S9 w# i1 i. N5 rSTM32L4集成了DFSDM数字滤波模块,配合Σ-Δ器件使用,可进行高精度、高速率的AD测量。 模块框图- s) ?) `( }) l$ z4 T+ J2 w4 t STM32 Σ-Δ转换器应用框图如下: ![]() 6 r8 S! B- {# w- q" q+ C; [7 F 系统被分为两部分: STM32外部的模拟前端Σ-Δ模块和内置的数字部分DFSDM模块。3 ~6 |! M9 f9 S1 s+ | DFSDM是STM32产品内部的一个新的数字外设,通常搭配外部的Σ-Δ器件使用,可根据相应的应用选择外部的模拟部分,如测量、马达控制等应用。模拟部分提供串行数据给DFSDM,DFSDM负责对数字信号进行处理。3 C6 ~3 n. X7 O. f. O- }* n DFSDM数字部分集成了模拟看门狗、注入和常规转换、灵活的触发系统、中断信号生成、极值检测等。 • Σ-Δ模块5 g( v; _0 c7 F) n7 q$ ? · 输入模拟信号 · 输出1位或2位的快速串行数字信号,可达20MHz速率。 · 广泛的厂商支持: ST, TI, Analog Devices • DFSDM = Digital Filter for Sigma Delta Modulators: ·从Σ-Δ模块接收串行数据. Z/ I& o$ I' o: q* N# Z ·对接收到的Σ-Δ模块数据进行滤波 ·最大24位的输出精度 0 h1 H; }7 B" J/ ]2 D1 } 典型应用 • 电信号测量:电流、电压等。 • 马达控制 • 医疗应用- w- O5 f. r& ]7 }8 q1 p5 ^! D; E • 麦克风音频 2 a0 X% J- |0 S6 A* ` STM32 DFSDM架构图如下: ![]() 收发器 • 快速串行输入(20MHz)# ^% L& l+ Q; q& D' e · SPI或曼切斯特编码模式 · 时钟生成/ e9 B' ?, C6 F; T* G; ?' E5 s • 内部并行输入/ q- _$ a7 p" ~) t d8 G- G% K# ] ·由CPU/DMA写入的16位寄存器数据输入 · 收发器提供串行连接到外部Σ-Δ模块,支持SPI、曼切斯特协议。收发器也支持通过CPU或DMA写入到DFSDM数据寄存器的内部16位并行数据输入,. X% K, h" v( ]$ O% p8 y1 g 滤波器' d: d3 h1 X& b2 Q$ I • Sinc1,Sinc2,Sinc3,Sinc4,Sinc5,FastSinc内插滤波器,过采样因子可达1024.( D! J0 P: f% g • 积分器过采样因子可达1024 STM32 DFSDM应用框图如下:' C+ @5 _ E% I ![]() 整个DFSDM模块包含如下接口:9 d! I$ h* N$ V$ J • 8个串行收发器; I& O: d8 E/ p- ^1 @1 d ]/ u7 s- f • 4个Sinc滤波器和积分器0 @' L- \# p# M; ^- c • 4个输出数据单元 • 4个模拟看门狗 • 8个短路检测器 • 4个极值检测器 • 8个并行数据进入寄存器3 ~% U( U3 o7 e+ m; W0 l 串行收发器 ![]() 功能; A& n, L9 G* ]6 B* n: j: g • 从Σ-Δ模块接收1位的串行数据,提供时钟和数据给滤波阶段,最大支持8个输入串行通道。4 m, T2 j/ E! z( r9 x( r2 |' } 支持的协议 • 1线曼切斯特编码+ I/ [( J& O% \8 ?$ X% M& { • SPI模式(时钟和数据线)2 l2 L' ]# E& m · 上升沿、下降沿采样 ·数据速率测量 ·时钟缺失检测' C9 K( S& K/ P' h0 v+ U1 G · 时钟速率高达20MHz • 串行输入(时钟和数据)通道的 DFSDM_DATINy和DFSDM_CKINy引脚可被重定向,通道重定向用于收集来自立体麦克风类型的PDM音频数据,PDM立体麦克风具有时钟和数据信号,数据通道提供左右声道信息,左声道进行时钟上升沿采样,右声道进行时钟下降沿采样。 并行收发器2 ?$ U0 A: A2 g, |! \4 X& ^/ h; T ![]() 功能" D, }; l: [- s4 W- U •从内部数据源接收16位的并行数据,并提供数据给滤波阶段。多达8个并行通道。 内部并行输入数据源$ M0 J9 V" p* v •RAM数据后期处理 · 来自内部ADC的数据处理3 D: @& p/ W" s ·来自被收集数据的后期处理数据 • CPU或者DMA提供数据到DFSDM输入寄存器 STM32 DFSDM温度测量应用原理图如下:7 J5 y- f7 m; q5 V ![]() ! _0 c: D6 m* X0 D6 s STPMS2是一个双通道的二阶Σ-Δ模块,一个通道感知PT100的电压,另一个通道感知PT100的电流。使用1秒定时器来触发2个通道进行注入扫描转换。PC7(DFSDM1_DATIN3)是通道3,时钟为PC2(DFSDM1_CKOUT)。通道3测量PT100的电压,通道2测量PT100的电流。 ![]() PT100温度计算公式为:T = (PT100 – 100) / (0.385),只要通过能够测量出PT100的电压和电流,就能计算出PT100电阻值,进而得到温度值。 应用示例 Z. f! Q6 ~6 X1 q3 G; u2 J* A 硬件平台基于STM32L476G-EVAL。% n. b6 f1 D, m0 ?+ n& \ 2 _# {4 B- f" ?, U CubeMX工程配置 选择STM32L476ZGTx,配置系统时钟为80MHz。; l' _, T I' w# D ![]() 将通道2配置为从通道3重定向输入,通道3则直接输入,两个通道使用相同的时钟源。 ![]() 对时钟进行80分频,设置DFSDM时钟为1MHz。( y/ j, ] U3 j+ D( b3 N9 D0 t* |: S ![]() 将PC2(DFSDM1_CKOUT)、PC7(DFSDM1_DATIN3)配置为下拉,GPIO高速模式。5 z! P9 Y: Y) t! y2 ?! x7 Y4 c ![]() 3 Q( l; h5 }# ]% P5 r8 v 通道2在时钟的上升沿采集数据,通道3在时钟的下降沿采集数据。 ![]() ![]() ![]() 使能DFSDM1滤波器0全局中断。. R- j! F' s, I" p } ![]() 使能定时器1作为DFSDM转换的触发源,触发间隔为0.5秒。 ![]() ![]() 1 l/ K7 e& h0 S 添加注入完成回调函数,获取通道2和通道3的转换值。 ![]() ![]() 因为积分器过采样因子设置的是64,需要将转换结果除以64。 ![]() M就是过采样因子64,积分器输出的结果是代码中转换得到的通道2和通道3分别获取的电压和电流值。 7 t8 E3 x4 z% A% V main.c中添加以下代码,启动DFSDM注入转换,启动定时器1来触发DFSDM注入转换。( g" V1 r' @% F- x- j, ?# O# i ![]() . n2 e4 }) |& @0 o' L2 P: d7 p( l - B& h& x0 @ j& S 主循环中检测到有转换过的数据收到, 根据PT100温度计算公式计算温度。6 A. j' o+ Z# V4 V! T4 b 结论, s1 X* Q* m7 |/ l STM32 DFSDM配合Σ-Δ模块,可对电压、电流、音频等信号进行高速串行采集,通过DFSDM对采集的数据进行滤波处理,并输出高精度24位的数据。在STM32 CubeMX工具中,可以方便的配置DFSDM模块,快速生成工程代码。4 u- r# B1 f& L, C& o 6 [! {" R* F( K1 G: g7 O; B+ @ 9 |3 z* w2 {. z. N- x! e ![]() |
介绍详细,十分有用,值得收藏!多谢了! |
第二关失败![]() ![]() |
学习学习. k. }) ] r/ k/ n0 Q: Z$ c* d: z |
MCSDK FOC应用详解
STM32F10xxx 正交编码器接口应用笔记 及源代码
基于STM32定时器ETR信号的应用示例
STM32 生态系统|基于STM32WB的低功耗蓝牙应用(一)
《无刷直流电机控制应用 基于STM8S系列单片机》
STM32定时器触发SPI逐字收发之应用示例
【银杏科技ARM+FPGA双核心应用】STM32H7系列10——ADC
【银杏科技ARM+FPGA双核心应用】STM32H7系列57——MDK_FLM
【STM32图书分享之九】—《STM32F 32位ARM微控制器应用设计与实践》
无刷直流电机控制应用+基于STM8S系列单片机---电子书