STM32 DFSDM测量温度应用 前言STM32L4集成了DFSDM数字滤波模块,配合Σ-Δ器件使用,可进行高精度、高速率的AD测量。 模块框图5 p* Z u- v2 _8 F3 R STM32 Σ-Δ转换器应用框图如下:' S" w7 H3 p; Z, k- u ; Q- Z$ x8 j( z 系统被分为两部分: STM32外部的模拟前端Σ-Δ模块和内置的数字部分DFSDM模块。 DFSDM是STM32产品内部的一个新的数字外设,通常搭配外部的Σ-Δ器件使用,可根据相应的应用选择外部的模拟部分,如测量、马达控制等应用。模拟部分提供串行数据给DFSDM,DFSDM负责对数字信号进行处理。: _) J4 x/ L- g% D/ M2 ? DFSDM数字部分集成了模拟看门狗、注入和常规转换、灵活的触发系统、中断信号生成、极值检测等。1 B# }, G/ E& M7 s( k • Σ-Δ模块+ D7 W& V* t+ Y i6 }: \0 E' s* V5 v · 输入模拟信号 · 输出1位或2位的快速串行数字信号,可达20MHz速率。$ i3 q( N7 c) X) M+ ^ · 广泛的厂商支持: ST, TI, Analog Devices 9 ~2 H. e0 ^& O( B6 G • DFSDM = Digital Filter for Sigma Delta Modulators: ·从Σ-Δ模块接收串行数据7 C( ]8 T5 Z4 t/ R- F. n ·对接收到的Σ-Δ模块数据进行滤波 ·最大24位的输出精度 + D& E/ a. W# X4 h 典型应用 • 电信号测量:电流、电压等。: A: @8 o. |; H: D1 a0 q • 马达控制 • 医疗应用 • 麦克风音频/ _' {; {* y( M' C1 _ STM32 DFSDM架构图如下: # z! B( v8 e8 _1 y1 v+ n: w 收发器 • 快速串行输入(20MHz) · SPI或曼切斯特编码模式 · 时钟生成 • 内部并行输入/ H& e1 C: O! v$ M* D ·由CPU/DMA写入的16位寄存器数据输入- F# r! _' v: B · 收发器提供串行连接到外部Σ-Δ模块,支持SPI、曼切斯特协议。收发器也支持通过CPU或DMA写入到DFSDM数据寄存器的内部16位并行数据输入, 滤波器5 Q2 X# \! K0 ~ • Sinc1,Sinc2,Sinc3,Sinc4,Sinc5,FastSinc内插滤波器,过采样因子可达1024. • 积分器过采样因子可达1024 + b1 Z0 [: _" _! r9 d) I) ~ STM32 DFSDM应用框图如下:: s# w8 _, p" \( V2 a7 \6 i M 整个DFSDM模块包含如下接口: • 8个串行收发器8 x2 _, Z F) e • 4个Sinc滤波器和积分器 • 4个输出数据单元' i) ~+ {" ~- p- L/ K • 4个模拟看门狗 • 8个短路检测器. O; M6 P5 T+ L/ G9 {, n' @% I • 4个极值检测器3 k) Q) V7 t* i( X • 8个并行数据进入寄存器' E$ A9 g: [! ?8 Y4 z 串行收发器 功能; i1 c! k* _# ?- C' B5 ? • 从Σ-Δ模块接收1位的串行数据,提供时钟和数据给滤波阶段,最大支持8个输入串行通道。- @9 ~. g f2 ?6 U/ A! l2 Z 支持的协议 • 1线曼切斯特编码: \" x) ], {6 @" |: v • SPI模式(时钟和数据线) · 上升沿、下降沿采样 ·数据速率测量 ·时钟缺失检测 · 时钟速率高达20MHz2 Y. s a9 |3 y3 ^/ \( o2 m1 v • 串行输入(时钟和数据)通道的 DFSDM_DATINy和DFSDM_CKINy引脚可被重定向,通道重定向用于收集来自立体麦克风类型的PDM音频数据,PDM立体麦克风具有时钟和数据信号,数据通道提供左右声道信息,左声道进行时钟上升沿采样,右声道进行时钟下降沿采样。 ) k! V4 g# V' I8 n9 G$ s 并行收发器 功能, K: X+ _; i! Q+ G. u9 F •从内部数据源接收16位的并行数据,并提供数据给滤波阶段。多达8个并行通道。- i4 \) E5 ]% @$ P 内部并行输入数据源 •RAM数据后期处理9 u P" |/ F+ F$ {+ S, R* D# i · 来自内部ADC的数据处理 ·来自被收集数据的后期处理数据2 B% V f+ q% a( y' a7 s! i4 [0 e • CPU或者DMA提供数据到DFSDM输入寄存器 % _" `7 ]: X7 l- i. S STM32 DFSDM温度测量应用原理图如下:. F. i& E/ s3 F6 }8 c1 K + E' t5 q# I) ^7 e# S; c STPMS2是一个双通道的二阶Σ-Δ模块,一个通道感知PT100的电压,另一个通道感知PT100的电流。使用1秒定时器来触发2个通道进行注入扫描转换。PC7(DFSDM1_DATIN3)是通道3,时钟为PC2(DFSDM1_CKOUT)。通道3测量PT100的电压,通道2测量PT100的电流。) \' z8 t$ Y3 F! h$ \ PT100温度计算公式为:T = (PT100 – 100) / (0.385),只要通过能够测量出PT100的电压和电流,就能计算出PT100电阻值,进而得到温度值。 T J. L0 s' t2 ~) o" { . b$ h+ P( C/ e$ p* }8 y! o6 Z9 b 应用示例$ |; Z& g/ X W! R 硬件平台基于STM32L476G-EVAL。: ^% c4 L! `- C( f+ c2 i # x( @0 R* k( U CubeMX工程配置5 ?0 q& L( S/ T' P& R 选择STM32L476ZGTx,配置系统时钟为80MHz。# H6 F3 i: H9 P5 r) P * |- h9 g6 J6 B$ s Q ]1 K 将通道2配置为从通道3重定向输入,通道3则直接输入,两个通道使用相同的时钟源。4 }) n$ G H: |9 O( F 对时钟进行80分频,设置DFSDM时钟为1MHz。 将PC2(DFSDM1_CKOUT)、PC7(DFSDM1_DATIN3)配置为下拉,GPIO高速模式。5 m* H) K+ @* m0 r, E! ] ' Y1 @! C8 h3 Q: \! S8 Z7 a1 O 通道2在时钟的上升沿采集数据,通道3在时钟的下降沿采集数据。 . D) w2 D4 p0 q2 n3 R. V 使能DFSDM1滤波器0全局中断。 使能定时器1作为DFSDM转换的触发源,触发间隔为0.5秒。 / V! ?5 m, K% T3 o' R( T2 {& B4 u 添加注入完成回调函数,获取通道2和通道3的转换值。6 F4 Z* s/ D* U! w* ` 因为积分器过采样因子设置的是64,需要将转换结果除以64。* m; k. a9 a7 N. j$ e M就是过采样因子64,积分器输出的结果是代码中转换得到的通道2和通道3分别获取的电压和电流值。 main.c中添加以下代码,启动DFSDM注入转换,启动定时器1来触发DFSDM注入转换。 主循环中检测到有转换过的数据收到, 根据PT100温度计算公式计算温度。: c3 e6 D3 b% \$ `7 }5 { * v9 M' \" E d: n 结论 STM32 DFSDM配合Σ-Δ模块,可对电压、电流、音频等信号进行高速串行采集,通过DFSDM对采集的数据进行滤波处理,并输出高精度24位的数据。在STM32 CubeMX工具中,可以方便的配置DFSDM模块,快速生成工程代码。$ }; y. P4 J% W# G7 h1 u |
介绍详细,十分有用,值得收藏!多谢了! |
第二关失败 |
学习学习 |
【银杏科技ARM+FPGA双核心应用】STM32H7系列10——ADC
【银杏科技ARM+FPGA双核心应用】STM32H7系列57——MDK_FLM
【STM32图书分享之九】—《STM32F 32位ARM微控制器应用设计与实践》
无刷直流电机控制应用+基于STM8S系列单片机---电子书
STM32 USB的程序,包含固件、驱动和测试用的应用程序
工业以太网总线ETHERCAT驱动程序设计及应用(扫描版)
【实战经验】基于STM32 I2S的音频应用开发介绍
【中文文档】AN4112_使用STM32F05xx模拟比较器的六个应用案例
[连载]STM32F103ZET6 uCGUI3.90a控件应用教程(第五节 复选框和单选按钮)
《无刷直流电机控制应用 基于STM8S系列单片机》