你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【实战经验】STM32 DFSDM测量温度应用

[复制链接]
zero99 发布时间:2017-4-5 17:18
STM32 DFSDM测量温度应用
前言
STM32L4集成了DFSDM数字滤波模块,配合Σ-Δ器件使用,可进行高精度、高速率的AD测量。

模块框图
STM32 Σ-Δ转换器应用框图如下:
21.jpg

系统被分为两部分: STM32外部的模拟前端Σ-Δ模块和内置的数字部分DFSDM模块。
       DFSDM是STM32产品内部的一个新的数字外设,通常搭配外部的Σ-Δ器件使用,可根据相应的应用选择外部的模拟部分,如测量、马达控制等应用。模拟部分提供串行数据给DFSDM,DFSDM负责对数字信号进行处理。
       DFSDM数字部分集成了模拟看门狗、注入和常规转换、灵活的触发系统、中断信号生成、极值检测等。
• Σ-Δ模块
  · 输入模拟信号
  · 输出1位或2位的快速串行数字信号,可达20MHz速率。
  · 广泛的厂商支持: ST, TI, Analog Devices

• DFSDM = Digital Filter for Sigma Delta Modulators:
  ·从Σ-Δ模块接收串行数据
  ·对接收到的Σ-Δ模块数据进行滤波
  ·最大24位的输出精度

典型应用
•  电信号测量:电流、电压等。
• 马达控制
• 医疗应用
• 麦克风音频

STM32 DFSDM架构图如下:
22.jpg

收发器
• 快速串行输入(20MHz)
  · SPI或曼切斯特编码模式
  · 时钟生成
•  内部并行输入
  ·由CPU/DMA写入的16位寄存器数据输入
  · 收发器提供串行连接到外部Σ-Δ模块,支持SPI、曼切斯特协议。收发器也支持通过CPU或DMA写入到DFSDM数据寄存器的内部16位并行数据输入,
滤波器
• Sinc1,Sinc2,Sinc3,Sinc4,Sinc5,FastSinc内插滤波器,过采样因子可达1024.
• 积分器过采样因子可达1024

STM32 DFSDM应用框图如下:
23.jpg
整个DFSDM模块包含如下接口:
•  8个串行收发器
• 4个Sinc滤波器和积分器
•  4个输出数据单元
• 4个模拟看门狗
•  8个短路检测器
• 4个极值检测器
• 8个并行数据进入寄存器

串行收发器
24.jpg
功能
• 从Σ-Δ模块接收1位的串行数据,提供时钟和数据给滤波阶段,最大支持8个输入串行通道。
支持的协议
• 1线曼切斯特编码
• SPI模式(时钟和数据线)
  · 上升沿、下降沿采样
  ·数据速率测量
  ·时钟缺失检测
  · 时钟速率高达20MHz
• 串行输入(时钟和数据)通道的 DFSDM_DATINy和DFSDM_CKINy引脚可被重定向,通道重定向用于收集来自立体麦克风类型的PDM音频数据,PDM立体麦克风具有时钟和数据信号,数据通道提供左右声道信息,左声道进行时钟上升沿采样,右声道进行时钟下降沿采样。

并行收发器
25.jpg
功能
•从内部数据源接收16位的并行数据,并提供数据给滤波阶段。多达8个并行通道。
内部并行输入数据源
•RAM数据后期处理
  · 来自内部ADC的数据处理
  ·来自被收集数据的后期处理数据
• CPU或者DMA提供数据到DFSDM输入寄存器

STM32 DFSDM温度测量应用原理图如下:
26.jpg

STPMS2是一个双通道的二阶Σ-Δ模块,一个通道感知PT100的电压,另一个通道感知PT100的电流。使用1秒定时器来触发2个通道进行注入扫描转换。PC7(DFSDM1_DATIN3)是通道3,时钟为PC2(DFSDM1_CKOUT)。通道3测量PT100的电压,通道2测量PT100的电流。
27.jpg
PT100温度计算公式为:T = (PT100 – 100) / (0.385),只要通过能够测量出PT100的电压和电流,就能计算出PT100电阻值,进而得到温度值。

应用示例
硬件平台基于STM32L476G-EVAL。

CubeMX工程配置
选择STM32L476ZGTx,配置系统时钟为80MHz。
28.jpg

将通道2配置为从通道3重定向输入,通道3则直接输入,两个通道使用相同的时钟源。
29.jpg

对时钟进行80分频,设置DFSDM时钟为1MHz。
30.jpg

将PC2(DFSDM1_CKOUT)、PC7(DFSDM1_DATIN3)配置为下拉,GPIO高速模式。
31.jpg

通道2在时钟的上升沿采集数据,通道3在时钟的下降沿采集数据。
32.jpg
33.jpg
34.jpg

使能DFSDM1滤波器0全局中断。
35.jpg
使能定时器1作为DFSDM转换的触发源,触发间隔为0.5秒。
36.jpg
37.jpg

添加注入完成回调函数,获取通道2和通道3的转换值。
38.jpg
39.jpg
因为积分器过采样因子设置的是64,需要将转换结果除以64。
40.jpg
M就是过采样因子64,积分器输出的结果是代码中转换得到的通道2和通道3分别获取的电压和电流值。

main.c中添加以下代码,启动DFSDM注入转换,启动定时器1来触发DFSDM注入转换。
41.png



主循环中检测到有转换过的数据收到, 根据PT100温度计算公式计算温度。

结论
STM32 DFSDM配合Σ-Δ模块,可对电压、电流、音频等信号进行高速串行采集,通过DFSDM对采集的数据进行滤波处理,并输出高精度24位的数据。在STM32 CubeMX工具中,可以方便的配置DFSDM模块,快速生成工程代码。


STM32 DFSDM测量温度应用.pdf (1.29 MB, 下载次数: 184)
收藏 3 评论3 发布时间:2017-4-5 17:18

举报

3个回答
jinglixixi 回答时间:2017-4-5 18:08:23
介绍详细,十分有用,值得收藏!多谢了!
abbit-1988 回答时间:2017-5-28 07:47:18
第二关失败
877562693 回答时间:2022-7-8 09:33:25
学习学习
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版