|
STM32 DFSDM测量温度应用 前言STM32L4集成了DFSDM数字滤波模块,配合Σ-Δ器件使用,可进行高精度、高速率的AD测量。 + i9 O h- K! T8 X- ?4 t' k$ J 模块框图/ E' q* M' T' E4 M STM32 Σ-Δ转换器应用框图如下:) F9 H! W- m% u- f% [( N
系统被分为两部分: STM32外部的模拟前端Σ-Δ模块和内置的数字部分DFSDM模块。 DFSDM是STM32产品内部的一个新的数字外设,通常搭配外部的Σ-Δ器件使用,可根据相应的应用选择外部的模拟部分,如测量、马达控制等应用。模拟部分提供串行数据给DFSDM,DFSDM负责对数字信号进行处理。0 ]' E0 u9 K" S DFSDM数字部分集成了模拟看门狗、注入和常规转换、灵活的触发系统、中断信号生成、极值检测等。 • Σ-Δ模块$ f+ x; p; d R8 V+ ? · 输入模拟信号 · 输出1位或2位的快速串行数字信号,可达20MHz速率。 · 广泛的厂商支持: ST, TI, Analog Devices ; ?- {" {2 L4 ~: a% `% j • DFSDM = Digital Filter for Sigma Delta Modulators:# |' J; T% J& V k% q& `3 } ·从Σ-Δ模块接收串行数据 ·对接收到的Σ-Δ模块数据进行滤波0 N, {8 n! _/ t' K ·最大24位的输出精度! E5 T/ n; W. S: O 典型应用$ I$ H& X! c. O) S • 电信号测量:电流、电压等。 • 马达控制 • 医疗应用$ 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" |$ [
收发器 • 快速串行输入(20MHz) · SPI或曼切斯特编码模式) |6 A* c: b$ v · 时钟生成" o9 h9 T2 j* H6 Z( ^+ U4 B2 h; V+ l • 内部并行输入 ·由CPU/DMA写入的16位寄存器数据输入' q" \( Z, m+ r. Y' p · 收发器提供串行连接到外部Σ-Δ模块,支持SPI、曼切斯特协议。收发器也支持通过CPU或DMA写入到DFSDM数据寄存器的内部16位并行数据输入,- U0 C8 d; F) D3 s z) X 滤波器 • Sinc1,Sinc2,Sinc3,Sinc4,Sinc5,FastSinc内插滤波器,过采样因子可达1024.) N+ l$ \6 j8 I6 T. K+ W • 积分器过采样因子可达1024 Y+ ]+ _' C( @# J! V; b; ~3 \ STM32 DFSDM应用框图如下:
整个DFSDM模块包含如下接口: • 8个串行收发器 • 4个Sinc滤波器和积分器 • 4个输出数据单元 • 4个模拟看门狗 • 8个短路检测器! s2 M; j. `9 X7 |+ g' U% B • 4个极值检测器 • 8个并行数据进入寄存器7 c5 ]8 K$ R1 ` 1 E( y7 y- p# a i 串行收发器5 u m) i7 k q6 A
功能 • 从Σ-Δ模块接收1位的串行数据,提供时钟和数据给滤波阶段,最大支持8个输入串行通道。 支持的协议 • 1线曼切斯特编码 • SPI模式(时钟和数据线)6 v9 O! S( Z- N! ^$ \/ @7 V& N · 上升沿、下降沿采样 ·数据速率测量 ·时钟缺失检测# L4 A6 k$ {7 X6 s* d8 ?: L · 时钟速率高达20MHz • 串行输入(时钟和数据)通道的 DFSDM_DATINy和DFSDM_CKINy引脚可被重定向,通道重定向用于收集来自立体麦克风类型的PDM音频数据,PDM立体麦克风具有时钟和数据信号,数据通道提供左右声道信息,左声道进行时钟上升沿采样,右声道进行时钟下降沿采样。 并行收发器( Z7 o: ~* T$ p- g# w
功能! ~% y' H' x- v7 a, [ •从内部数据源接收16位的并行数据,并提供数据给滤波阶段。多达8个并行通道。% e: ?! J- ?: c- E 内部并行输入数据源 •RAM数据后期处理; s# D: C" u& V6 T · 来自内部ADC的数据处理 ·来自被收集数据的后期处理数据 • CPU或者DMA提供数据到DFSDM输入寄存器 9 h+ U- ~! \. j$ q2 V1 h STM32 DFSDM温度测量应用原理图如下:# {+ Y/ w: ~9 z
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
PT100温度计算公式为:T = (PT100 – 100) / (0.385),只要通过能够测量出PT100的电压和电流,就能计算出PT100电阻值,进而得到温度值。 " n4 \7 c: t' E: i9 S* t* u$ u 应用示例- V. i8 y5 j+ e8 E7 f+ j 硬件平台基于STM32L476G-EVAL。 CubeMX工程配置 选择STM32L476ZGTx,配置系统时钟为80MHz。
- G; q* a) k8 {5 n1 |; i 将通道2配置为从通道3重定向输入,通道3则直接输入,两个通道使用相同的时钟源。+ X* o, _8 s2 ^$ n6 [, s# o. j% O
对时钟进行80分频,设置DFSDM时钟为1MHz。* Y7 W7 t% O5 H( h
将PC2(DFSDM1_CKOUT)、PC7(DFSDM1_DATIN3)配置为下拉,GPIO高速模式。( [) ~4 p3 n( t
通道2在时钟的上升沿采集数据,通道3在时钟的下降沿采集数据。) f. _3 d1 k7 d) D* a/ K
$ X) t" P. q( q- E( r& S& h 使能DFSDM1滤波器0全局中断。* o. `* n! {; v5 z
使能定时器1作为DFSDM转换的触发源,触发间隔为0.5秒。
添加注入完成回调函数,获取通道2和通道3的转换值。+ P4 W, n- T5 B. d6 c7 ~' A3 w* x
因为积分器过采样因子设置的是64,需要将转换结果除以64。
M就是过采样因子64,积分器输出的结果是代码中转换得到的通道2和通道3分别获取的电压和电流值。 * R5 r7 V2 q) x1 _, A0 B main.c中添加以下代码,启动DFSDM注入转换,启动定时器1来触发DFSDM注入转换。
/ E9 C1 F; q/ A' P- { 0 n* p# n: J" q" G) l# {8 V. I 主循环中检测到有转换过的数据收到, 根据PT100温度计算公式计算温度。 结论7 V: @( q [, U7 W1 T STM32 DFSDM配合Σ-Δ模块,可对电压、电流、音频等信号进行高速串行采集,通过DFSDM对采集的数据进行滤波处理,并输出高精度24位的数据。在STM32 CubeMX工具中,可以方便的配置DFSDM模块,快速生成工程代码。 & `/ a! y! |% j* E " b) t( Q: j. o+ P6 A% S1 m8 g% s
STM32 DFSDMæµé温度åºç¨.pdf
(1.29 MB, 下载次数: 185)
|
| 介绍详细,十分有用,值得收藏!多谢了! |
第二关失败![]() |
|
学习学习 |
无刷直流电机控制应用+基于STM8S系列单片机---电子书
MCSDK FOC应用详解
STM32F10xxx 正交编码器接口应用笔记 及源代码
基于STM32定时器ETR信号的应用示例
《无刷直流电机控制应用 基于STM8S系列单片机》
STM32定时器触发SPI逐字收发之应用示例
【银杏科技ARM+FPGA双核心应用】STM32H7系列10——ADC
【银杏科技ARM+FPGA双核心应用】STM32H7系列57——MDK_FLM
【STM32图书分享之九】—《STM32F 32位ARM微控制器应用设计与实践》
STM32 USB的程序,包含固件、驱动和测试用的应用程序
微信公众号
手机版