请选择 进入手机版 | 继续访问电脑版

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

【经验分享】STM32G4学习笔记之DAC+FMAC

[复制链接]
STMCU小助手 发布时间:2021-12-8 21:00
1.高性能DAC
G4系列一共有四个DAC,前两个为低速采集DAC(1MHz),后两个为高速(可达15MHz)

20200724174034276.png


20200724174706457.png


DAC1,DAC2的采样速率最大为1MHz,DAC3,DAC4的采样速率最大为15MHz。但是没有直接连接的GPIO口。

20200725100546822.png


20200725102032195.png


20200725102059872.png


DAC可以输出任意的高频模拟波形。
此时DAC的更新速度受制于运放带宽的限制,因此最大的速度也就是13M。

2.滤波算法加速器FMAC(硬核FMAC+DMA滤波计算,能解放CPU)

20200725104311843.png



使用硬核的滤波,不通过软件程序进行,可以有效的解放CPU,
2.滤波方程

20200725104541862.png


3.单乘累加架构

20200725105056369.png


FMAC单乘累加架构,是重复利用的。输入有Buffer,输出也有Buffer,通过Buffer加一个乘累加器实现滤波的计算。

Buffer:存储缓冲器,将外设送来的数据暂时存放,以便处理器将它取走。

4.Buffer配置

20200725105214582.png


5.存储空间需求(Buffer的空间)-FIR

20200725113904393.png


输入空间:N+k
固定参数空间:N
输出空间:k
总的占用空间=2(N+k)应该小于Buffer的空间256
6.硬核与软件的滤波计算比较
硬核处理滤波计算(FMAC+DMA),速度不占优,但是胜在可以解放CPU.

20200725114947242.png


7.工作流控制

20200725122307469.png


20200725122346451.png



20200725122657175.png


9.FMAC应用举例

20200725122916185.png


20200725123036873.png


2020072512310251.png


20200725123123685.png


2020072512314**.png



代码:
  1. 1.FMAC_FilterConfigTypeDef sFmacConfig; sFmacConfig.CoeffBaseAddress = 0; sFmacConfig.CoeffBufferSize = FIR_COEFF_B_SIZE; …… …… 2. HAL_FMAC_FilterConfig(&hfmac, &sFmacConfig); HAL_FMAC_FilterPreload(&hfmac, aInputValues, FIR_COEFF_B_SIZE + FIR_D1, aOutputDataToPreload, FIR_COEFF_A_SIZE +FIR_COEFF_B_SIZE) 3.HAL_FMAC_FilterStart(&hfmac, aCalculatedFilteredData, &FIR_OutputSize)
复制代码

20200725123456384.png


20200725123522134.png


20200725123544835.png


20200725123633745.png


20200725123723577.png






总结
STM32G4的Cordic可以加快环路计算
• STM32G4的FMAC做滤波算法可以释放CPU资源
• 使用出色的片上运放,比较器即省成本又省板材空间
• 特色外设可以有更多设计想象



收藏 评论0 发布时间:2021-12-8 21:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版