STM32 DFSDM测量温度应用 前言STM32L4集成了DFSDM数字滤波模块,配合Σ-Δ器件使用,可进行高精度、高速率的AD测量。! i5 z3 ^8 y, g 模块框图. L' ~* y$ n. W3 y. l9 z STM32 Σ-Δ转换器应用框图如下:+ u' ~# \- {. Y+ @/ k 系统被分为两部分: STM32外部的模拟前端Σ-Δ模块和内置的数字部分DFSDM模块。 DFSDM是STM32产品内部的一个新的数字外设,通常搭配外部的Σ-Δ器件使用,可根据相应的应用选择外部的模拟部分,如测量、马达控制等应用。模拟部分提供串行数据给DFSDM,DFSDM负责对数字信号进行处理。6 L" z+ g8 e) d* t0 _ DFSDM数字部分集成了模拟看门狗、注入和常规转换、灵活的触发系统、中断信号生成、极值检测等。/ f# S) R3 ^4 ?* i • Σ-Δ模块 · 输入模拟信号 · 输出1位或2位的快速串行数字信号,可达20MHz速率。. D" \& [3 z; Z; h/ i2 w# ^ · 广泛的厂商支持: ST, TI, Analog Devices • DFSDM = Digital Filter for Sigma Delta Modulators:5 K+ L& n% ~1 ^' ~$ t ·从Σ-Δ模块接收串行数据! t( B( J. w. T( e4 ]6 E ·对接收到的Σ-Δ模块数据进行滤波 ·最大24位的输出精度 典型应用 • 电信号测量:电流、电压等。 • 马达控制 • 医疗应用# j4 d6 V- ~1 I6 r • 麦克风音频3 a/ J: ~2 `! Z/ j $ q3 e& }5 [0 \! z# R1 \& r STM32 DFSDM架构图如下: 6 X9 y; Y% G. Z6 J 收发器* D# A& L U" O& a4 |2 u • 快速串行输入(20MHz) · SPI或曼切斯特编码模式: |0 c9 s4 p: p/ L5 F" o · 时钟生成3 V0 C0 F0 T3 Q8 R: @, g • 内部并行输入2 F# w' _ R) W: b: W ·由CPU/DMA写入的16位寄存器数据输入1 R+ K5 S7 y Y- O' M& C% g · 收发器提供串行连接到外部Σ-Δ模块,支持SPI、曼切斯特协议。收发器也支持通过CPU或DMA写入到DFSDM数据寄存器的内部16位并行数据输入, 滤波器4 I* W5 ]$ \3 N! o3 ^. _, c4 r • Sinc1,Sinc2,Sinc3,Sinc4,Sinc5,FastSinc内插滤波器,过采样因子可达1024. • 积分器过采样因子可达1024 m. D2 ?/ L' f% ]) n* k STM32 DFSDM应用框图如下: 整个DFSDM模块包含如下接口:& H5 M! }- Q3 e) O- f • 8个串行收发器 • 4个Sinc滤波器和积分器! S3 s. }/ B2 ]5 H% ^. }7 _ M, P • 4个输出数据单元 • 4个模拟看门狗# h/ G* i4 {' w) {+ N. c- z • 8个短路检测器# \: H9 Y! h8 S$ |( k • 4个极值检测器+ M. D0 p k# G5 g2 a2 u • 8个并行数据进入寄存器 : y- L0 |; x0 k3 V- U 串行收发器4 m, c; _+ s$ Y3 m( ?) o6 z 功能 • 从Σ-Δ模块接收1位的串行数据,提供时钟和数据给滤波阶段,最大支持8个输入串行通道。7 s) R! z7 t6 y! Q! O7 t 支持的协议/ P5 v$ X5 D2 M% }1 `+ [0 s • 1线曼切斯特编码 • SPI模式(时钟和数据线)# |9 \$ L' J7 K, U, P · 上升沿、下降沿采样 ·数据速率测量, S' o% _6 z; a& ^9 [; U) \' h2 ^7 R ·时钟缺失检测$ b) ~5 k$ E5 g · 时钟速率高达20MHz • 串行输入(时钟和数据)通道的 DFSDM_DATINy和DFSDM_CKINy引脚可被重定向,通道重定向用于收集来自立体麦克风类型的PDM音频数据,PDM立体麦克风具有时钟和数据信号,数据通道提供左右声道信息,左声道进行时钟上升沿采样,右声道进行时钟下降沿采样。 / C1 A2 z; v3 @$ q+ ?- u5 J 并行收发器2 M, ]+ i- {6 w; o# g8 i8 { 功能4 f# X6 e, t' A •从内部数据源接收16位的并行数据,并提供数据给滤波阶段。多达8个并行通道。0 ^/ C% M: [7 s0 c5 I4 L1 X 内部并行输入数据源- w p3 g2 b3 l1 T- P •RAM数据后期处理: G/ b: N% a6 }" T · 来自内部ADC的数据处理 ·来自被收集数据的后期处理数据 • CPU或者DMA提供数据到DFSDM输入寄存器 % [& k0 E4 u/ |, r; w$ K0 ] STM32 DFSDM温度测量应用原理图如下: STPMS2是一个双通道的二阶Σ-Δ模块,一个通道感知PT100的电压,另一个通道感知PT100的电流。使用1秒定时器来触发2个通道进行注入扫描转换。PC7(DFSDM1_DATIN3)是通道3,时钟为PC2(DFSDM1_CKOUT)。通道3测量PT100的电压,通道2测量PT100的电流。) H2 B( e& B6 z5 j) Q; E PT100温度计算公式为:T = (PT100 – 100) / (0.385),只要通过能够测量出PT100的电压和电流,就能计算出PT100电阻值,进而得到温度值。% b: [# r e# X; Z( O$ K 应用示例$ D. v; X+ r9 b ^( q9 c 硬件平台基于STM32L476G-EVAL。* Z+ w, l% W0 r j# l . Z' x- v3 ^3 S) b CubeMX工程配置) k! q( f6 N8 \4 A3 ]1 U 选择STM32L476ZGTx,配置系统时钟为80MHz。, m% U1 L& @8 u 1 r1 ^+ I2 e0 O) P% K0 C' n f 将通道2配置为从通道3重定向输入,通道3则直接输入,两个通道使用相同的时钟源。1 V9 |7 S1 L1 [! o% U. x + C" f! T" f. `7 o4 |0 ~5 J" Q" D) B 对时钟进行80分频,设置DFSDM时钟为1MHz。0 h8 W8 {8 q* U% r/ e, B# l x 将PC2(DFSDM1_CKOUT)、PC7(DFSDM1_DATIN3)配置为下拉,GPIO高速模式。5 f% c7 M2 c6 w$ o- X2 p , `* u6 r$ W; i6 P6 m- _3 y5 H 通道2在时钟的上升沿采集数据,通道3在时钟的下降沿采集数据。" | ?! w- T& T" F# r! h+ e i+ h 使能DFSDM1滤波器0全局中断。: Z+ b5 r" `% K2 r& O3 T {9 [( x$ u 使能定时器1作为DFSDM转换的触发源,触发间隔为0.5秒。7 ^5 S' z# n: ]5 e; J! v) ?0 I) c* U ( F0 R M, O3 t' o6 p3 w ?/ p6 N5 ] 添加注入完成回调函数,获取通道2和通道3的转换值。& n+ E; i/ r6 q9 H2 [: b- c 因为积分器过采样因子设置的是64,需要将转换结果除以64。 M就是过采样因子64,积分器输出的结果是代码中转换得到的通道2和通道3分别获取的电压和电流值。 " O7 L+ w( [' L& i: _ main.c中添加以下代码,启动DFSDM注入转换,启动定时器1来触发DFSDM注入转换。 2 c. Z9 E* s5 R" f - u* r" d3 W2 d7 R4 p 主循环中检测到有转换过的数据收到, 根据PT100温度计算公式计算温度。! i: o! ^/ o+ U8 i( Q! d 结论 STM32 DFSDM配合Σ-Δ模块,可对电压、电流、音频等信号进行高速串行采集,通过DFSDM对采集的数据进行滤波处理,并输出高精度24位的数据。在STM32 CubeMX工具中,可以方便的配置DFSDM模块,快速生成工程代码。 1 o2 y$ m: t+ @: ?7 z: B' V6 Y) p |
介绍详细,十分有用,值得收藏!多谢了! |
第二关失败 |
学习学习, }' T! e! m+ z" \" e4 _ |
【银杏科技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系列单片机》