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

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

[复制链接]
STMCU小助手 发布时间:2021-12-8 21:00
1.高性能DAC4 m/ y( M* |1 \' O  b4 i' c: W
G4系列一共有四个DAC,前两个为低速采集DAC(1MHz),后两个为高速(可达15MHz)
2 G$ M  _" w- J: q* k$ D' x8 {# L; r8 y3 ~3 u+ C' d- M! h
20200724174034276.png

1 |+ e2 m/ D% P( B8 m% A6 o7 I  [) }4 B3 W* g
20200724174706457.png
5 U9 ~( d2 n9 v/ i0 Z

& f8 h5 x6 O# x, S2 PDAC1,DAC2的采样速率最大为1MHz,DAC3,DAC4的采样速率最大为15MHz。但是没有直接连接的GPIO口。' @$ }: `) E7 x6 Z' U

  Y. h0 v* p2 }: ~" [$ c/ m
20200725100546822.png

$ k2 E. |( N$ K- G
8 m/ t& z0 _; [% r
20200725102032195.png

4 s5 e/ N" m% Q+ O* L; p* H6 \3 Y. F
20200725102059872.png
; h0 F; J8 ]" k- D

, E! H; @* j2 z5 FDAC可以输出任意的高频模拟波形。
1 `* e/ x) v+ G此时DAC的更新速度受制于运放带宽的限制,因此最大的速度也就是13M。
( x$ L- Z; n# }; g: U9 K; E; T, F1 u3 g  k
2.滤波算法加速器FMAC(硬核FMAC+DMA滤波计算,能解放CPU)* n# {& J4 ?& H0 b; v

1 ^, |( [( l8 U. A* s( s! z
20200725104311843.png

; |; [" I. k: _6 [* Q+ E3 ~
1 Q2 U* }* _# V/ Y
+ W! o! K& x* |) c( K- J/ `0 O使用硬核的滤波,不通过软件程序进行,可以有效的解放CPU,( _! Z, h" R; M' Q, Q- @
2.滤波方程6 s7 F; T* `$ @5 A% f) N

3 P  ?2 r2 ^* @) t* R
20200725104541862.png

2 B/ d! M6 ~7 p( T) N6 u" e
: j6 S3 ~0 z0 U2 `3.单乘累加架构
2 S& E- p, c$ I/ o8 h% _; e- q
5 H9 m8 [9 {" ?3 F# @8 C# n9 L; b9 u
20200725105056369.png

$ u3 l8 A) n- X9 v) g. A9 ^% w1 X; `# ~- @' Q$ [' i8 d% O6 P
FMAC单乘累加架构,是重复利用的。输入有Buffer,输出也有Buffer,通过Buffer加一个乘累加器实现滤波的计算。
6 j6 N: I4 B9 j" @: Y8 \, D) L
4 u5 j. }+ }0 K$ z- {Buffer:存储缓冲器,将外设送来的数据暂时存放,以便处理器将它取走。
9 W6 M+ a# W1 w$ }7 ~" G: x
$ F# w' B( H( D/ {4.Buffer配置
6 ?0 z& _6 X2 V) K5 H' J
; A. l& ~5 g" h5 a) {
20200725105214582.png
6 L2 T7 y. i, z, ?

5 x  f4 R0 V. r5 a  R1 u- E, n5.存储空间需求(Buffer的空间)-FIR
) s3 z) f0 R; N
$ T; t* L* k- y/ C- I8 [( o, h: G
20200725113904393.png

- D& A9 e- f" G) a  }
# |& z; b' X9 r9 r3 S输入空间:N+k
& L; w" q# N" W固定参数空间:N
: L3 \, N/ I" h( }6 O! y输出空间:k
* N# M6 u  S7 o/ `) `; v0 K( o* o总的占用空间=2(N+k)应该小于Buffer的空间256& B+ f* h  a) i, q
6.硬核与软件的滤波计算比较
* \. |/ D7 f8 `$ _4 l, \: _硬核处理滤波计算(FMAC+DMA),速度不占优,但是胜在可以解放CPU.
4 t  L0 j1 \& C; }, }: n! G/ X( V# n( v8 s1 u
20200725114947242.png

# J# k& O. B: H# Z; T
, j3 X5 T* g1 t1 I, k8 ~! D7.工作流控制
. c; c% C6 T& n- [  v
" M; \: I( v5 y" i8 S4 S& H4 g
20200725122307469.png
, p% Z# b/ c- X
- r& [2 E: j) ^
20200725122346451.png
0 \; M; J3 E+ o

2 C8 L( |( `# Z) d+ W3 a3 f+ u  D
. |) ^4 O( \# t, D& C! g
20200725122657175.png

  A" c9 j1 W- f( t4 O# U! @# s6 _0 {9 E. R; z
9.FMAC应用举例
& ^2 t# E9 g! v5 o3 |9 g3 z0 l9 V' Q* @
20200725122916185.png
' Y0 b. m. \5 k

0 B- @0 o' \  R' Y8 d  d. R1 I" c
20200725123036873.png

8 R* u' j6 m: d( W2 }5 b9 O/ y0 S4 D  A( [, c
2020072512310251.png
+ {# m( a2 c0 Q- @- t" ?4 w

3 ^0 l3 \2 L/ _$ y
20200725123123685.png

# v- z1 [+ S: x5 \, ^$ I0 v1 E- X% S" G1 G  v8 V* U; x
2020072512314**.png
4 x  s1 j0 Z( c. o) O

# O* B) c* K6 L& z8 p
, P) j+ S. i/ B( N! A3 k. @2 a代码:
# F! R$ ?' I+ D' A
  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)
复制代码

" j4 b+ {  a- [- a, ]3 Q9 G
20200725123456384.png
# t7 }% }' m3 i

3 y0 h8 f3 l, c( V
20200725123522134.png

+ q( P9 k/ W0 u. p% }$ K" s6 {2 S# U
  `; c' b7 E% Q$ M+ X% H# S( I( n
20200725123544835.png

3 K. N5 a5 I# ~; w/ W  u0 h5 Q5 h2 W  [, {; o& q8 t& z
20200725123633745.png
% [  a3 H+ A, ?7 n7 w  X9 B! {
7 Y9 [; ^2 E2 l; m1 p: J' ~
20200725123723577.png
& E" W' }! {3 `. H2 c

7 p$ U- n! [* z8 I1 ^/ B$ O9 Y: ~, `
: r" h4 s1 C  j# [. f* R" E7 d
) \+ o% `5 Q4 \- O9 `
) r' a. Z1 D9 R6 v+ ^1 Q
总结
: H. ?1 P, V6 \+ o: D, L% ySTM32G4的Cordic可以加快环路计算
8 g2 l6 n6 f: c& l• STM32G4的FMAC做滤波算法可以释放CPU资源8 [- W8 u5 Y( E, o# B( x3 f
• 使用出色的片上运放,比较器即省成本又省板材空间/ z+ L. d: A2 z$ {/ r
• 特色外设可以有更多设计想象
9 u+ Z( a) |0 `1 ?; L6 Z- U% M( w) J1 b9 z  L  w+ X; n3 K* }
' z* M6 z/ M) m2 l3 _4 Q

, \$ {! G& c. Z) J' P, D, m* u
收藏 评论0 发布时间:2021-12-8 21:00

举报

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