STM32 DFSDM测量温度应用 前言STM32L4集成了DFSDM数字滤波模块,配合Σ-Δ器件使用,可进行高精度、高速率的AD测量。* @) x* b$ a# c& { 模块框图 STM32 Σ-Δ转换器应用框图如下:3 _- o+ }5 Z, e4 e 系统被分为两部分: STM32外部的模拟前端Σ-Δ模块和内置的数字部分DFSDM模块。 DFSDM是STM32产品内部的一个新的数字外设,通常搭配外部的Σ-Δ器件使用,可根据相应的应用选择外部的模拟部分,如测量、马达控制等应用。模拟部分提供串行数据给DFSDM,DFSDM负责对数字信号进行处理。 DFSDM数字部分集成了模拟看门狗、注入和常规转换、灵活的触发系统、中断信号生成、极值检测等。 • Σ-Δ模块 · 输入模拟信号 · 输出1位或2位的快速串行数字信号,可达20MHz速率。, P- _* d. R+ t · 广泛的厂商支持: ST, TI, Analog Devices • DFSDM = Digital Filter for Sigma Delta Modulators:' {8 K: e* _# h: @% ]) p ·从Σ-Δ模块接收串行数据. z% y i' C: P' T ·对接收到的Σ-Δ模块数据进行滤波- a7 u" f$ [0 d! |7 t' s2 Q3 R ·最大24位的输出精度 典型应用 • 电信号测量:电流、电压等。 • 马达控制 • 医疗应用0 g: R" u5 }0 v, u' }* I, J/ S1 A • 麦克风音频 " G# Q% H: ^# F% F! n' W STM32 DFSDM架构图如下:9 B: C1 H1 J j5 c; u5 ] 收发器: B) t& ^# A% t/ L+ q • 快速串行输入(20MHz)) } R9 M/ r1 Y2 x. c) Z · SPI或曼切斯特编码模式 · 时钟生成 • 内部并行输入2 r' u8 {& u- x2 N }; h2 A4 ] ·由CPU/DMA写入的16位寄存器数据输入 · 收发器提供串行连接到外部Σ-Δ模块,支持SPI、曼切斯特协议。收发器也支持通过CPU或DMA写入到DFSDM数据寄存器的内部16位并行数据输入, 滤波器 • Sinc1,Sinc2,Sinc3,Sinc4,Sinc5,FastSinc内插滤波器,过采样因子可达1024. • 积分器过采样因子可达1024 2 Y% x4 O# H2 T0 U7 I STM32 DFSDM应用框图如下: 整个DFSDM模块包含如下接口:! J( N- l( D$ w9 x5 J) C4 S2 `' W: \ • 8个串行收发器9 o/ {" k3 x" c/ x: | • 4个Sinc滤波器和积分器 • 4个输出数据单元 • 4个模拟看门狗 • 8个短路检测器/ s& [: {# |5 k' _9 ?, w • 4个极值检测器 • 8个并行数据进入寄存器 1 t! I% Q' [6 @' w) b 串行收发器: I3 m1 T. W- c$ B 功能' K5 c" ?2 m2 J0 x • 从Σ-Δ模块接收1位的串行数据,提供时钟和数据给滤波阶段,最大支持8个输入串行通道。& V9 Y7 N8 U! j4 k% ~; ~ 支持的协议 • 1线曼切斯特编码& K* D4 z' K" B) ] • SPI模式(时钟和数据线)( {! ], B d% h; ]- ^3 l · 上升沿、下降沿采样! P9 u5 x' x, j& P9 ?& j ·数据速率测量3 z; a) i9 B; D4 [; ~/ `0 r( C ·时钟缺失检测 · 时钟速率高达20MHz/ l' u; l# i- ^5 c& s • 串行输入(时钟和数据)通道的 DFSDM_DATINy和DFSDM_CKINy引脚可被重定向,通道重定向用于收集来自立体麦克风类型的PDM音频数据,PDM立体麦克风具有时钟和数据信号,数据通道提供左右声道信息,左声道进行时钟上升沿采样,右声道进行时钟下降沿采样。3 z2 K& n+ @7 f4 ]- r $ w) w4 C$ b9 C, q7 @$ V; s 并行收发器. I# K* N& d9 M( l! y" s 功能 •从内部数据源接收16位的并行数据,并提供数据给滤波阶段。多达8个并行通道。 内部并行输入数据源 •RAM数据后期处理 · 来自内部ADC的数据处理3 d4 X9 f, [* I8 p" Y ·来自被收集数据的后期处理数据' d3 j; z' b3 w • CPU或者DMA提供数据到DFSDM输入寄存器 STM32 DFSDM温度测量应用原理图如下:3 _2 W/ ?8 @' O9 O2 t0 d STPMS2是一个双通道的二阶Σ-Δ模块,一个通道感知PT100的电压,另一个通道感知PT100的电流。使用1秒定时器来触发2个通道进行注入扫描转换。PC7(DFSDM1_DATIN3)是通道3,时钟为PC2(DFSDM1_CKOUT)。通道3测量PT100的电压,通道2测量PT100的电流。- H/ T% D" {; y: K. H7 z PT100温度计算公式为:T = (PT100 – 100) / (0.385),只要通过能够测量出PT100的电压和电流,就能计算出PT100电阻值,进而得到温度值。 应用示例% F p& M+ ^+ F; M. q! I 硬件平台基于STM32L476G-EVAL。 / _7 h; ~3 E. o' e- F2 e CubeMX工程配置7 r w6 h, a' m4 J4 u 选择STM32L476ZGTx,配置系统时钟为80MHz。 5 y% o: X8 d/ g. D) D J 将通道2配置为从通道3重定向输入,通道3则直接输入,两个通道使用相同的时钟源。 9 w7 L" y1 v) U; N% \ 对时钟进行80分频,设置DFSDM时钟为1MHz。% J$ ?( N/ ], a' ?9 B ( t- {: X% `" y# r! @* ]7 T( _ 将PC2(DFSDM1_CKOUT)、PC7(DFSDM1_DATIN3)配置为下拉,GPIO高速模式。 1 W" x: O* m0 o, @$ M% D2 e' B 通道2在时钟的上升沿采集数据,通道3在时钟的下降沿采集数据。 " _8 Q* m2 p. O 使能DFSDM1滤波器0全局中断。 使能定时器1作为DFSDM转换的触发源,触发间隔为0.5秒。 $ M+ Q: [1 U2 f% ]$ f8 _ 添加注入完成回调函数,获取通道2和通道3的转换值。 因为积分器过采样因子设置的是64,需要将转换结果除以64。 M就是过采样因子64,积分器输出的结果是代码中转换得到的通道2和通道3分别获取的电压和电流值。 i4 y" P! \) |+ G6 v" } main.c中添加以下代码,启动DFSDM注入转换,启动定时器1来触发DFSDM注入转换。 主循环中检测到有转换过的数据收到, 根据PT100温度计算公式计算温度。% [* q ~* ?6 I! ~! K6 b+ k 结论 STM32 DFSDM配合Σ-Δ模块,可对电压、电流、音频等信号进行高速串行采集,通过DFSDM对采集的数据进行滤波处理,并输出高精度24位的数据。在STM32 CubeMX工具中,可以方便的配置DFSDM模块,快速生成工程代码。 ) w5 b* N% j4 E4 D5 \ |
介绍详细,十分有用,值得收藏!多谢了! |
第二关失败 |
学习学习! u# ]! @* ?0 |# L |
STM32 生态系统|基于STM32WB的低功耗蓝牙应用(一)
《无刷直流电机控制应用 基于STM8S系列单片机》
STM32定时器触发SPI逐字收发之应用示例
【银杏科技ARM+FPGA双核心应用】STM32H7系列10——ADC
【银杏科技ARM+FPGA双核心应用】STM32H7系列57——MDK_FLM
【STM32图书分享之九】—《STM32F 32位ARM微控制器应用设计与实践》
无刷直流电机控制应用+基于STM8S系列单片机---电子书
STM32 USB的程序,包含固件、驱动和测试用的应用程序
工业以太网总线ETHERCAT驱动程序设计及应用(扫描版)
【实战经验】基于STM32 I2S的音频应用开发介绍