1、引言
客戶在使用 STM32H743 的 DFSDM 模塊時(shí),配置有誤。于是協(xié)助客戶按照下面的方法進(jìn)行配置并分享之。
2、參數(shù)的計(jì)算
使用 NUCLEO-H743 開發(fā)板進(jìn)行測(cè)試。由于客戶需要 16KHz 音頻數(shù)據(jù), 24bits 的音頻數(shù)據(jù),因此配置如下。
PDMMic -> PDM data -> 濾波器類型 -> 過采樣率 Fosr(濾波器)-> 過采樣率 Isor(積分器)-> 右移位器 -> 偏移補(bǔ)償 -> 采樣數(shù)據(jù)
Clock out (CKOUT)的計(jì)算
Fs= Fclockout/( Fosr*Iosr)
Fs= 16kHz 音頻數(shù)據(jù)
Fosr:濾波器過采樣率,也就是抽取率,在這里取 128
Iosr:積分器過采樣率,在這里取 1
則 Fclockout = 2.048MHz
相應(yīng)的寄存器配置可以參考下圖:
2. SAI clock 的計(jì)算
(FSAIclock/ Divider) =Fclockout => FSAIclock = Fclockout * Divider
FSAIclock:當(dāng)時(shí)鐘源選 audio clock 時(shí),即 STM32CubeMX 中 Output clock:
selection-> source of output clock is audio clock.
Divider : Audio clock 經(jīng)過的預(yù)分頻比,在下面的配置中取 7(見圖 3.
Output Clock 配置)
Fclockout:為 2.048Mhz
則 FSAIclock = (Fclockout * Divider) = 2.048 * 7 = 14.336MHz
因此下圖中的 SAI clock 需要配置到 14.336Mhz。
濾波器階數(shù) FORD:取 4,即 sinc Order : sinc 4 filter type.
3. 右移位數(shù)的計(jì)算
B = N*log2(M) +Bin
B:中間變量位寬
N:Ford,濾波器階數(shù),此例中取 sinc 4 階。
M:濾波器過采樣率,抽取率,此例中取 128 ,見圖 4Channel 配置,F(xiàn)osr。Bin:積分器過采樣率,濾波器輸入位寬,此例中取 1
位寬 = 4* log2(128)+1 = 4*7+1 =29(位)
因此積分器處理后的數(shù)據(jù)需要右移 5 位,然后變?yōu)?24 位。STM32CubeMX 中 Right
Bit Shift = 0x5.
也可以參考下表來規(guī)劃右移位:
3、STM32CubeMX 的配置
根據(jù)上面的計(jì)算值配置時(shí)鐘參數(shù)。SAI clock 配置為 14.336Mhz。
3、小結(jié)
關(guān)于DFSDM 模塊寄存器的配置,需要計(jì)算合適的參數(shù)值方可進(jìn)行。需要時(shí)可以參考上面內(nèi)容來操作。
審核編輯:湯梓紅
-
模塊
+關(guān)注
關(guān)注
7文章
2707瀏覽量
47476 -
寄存器
+關(guān)注
關(guān)注
31文章
5343瀏覽量
120377 -
STM32H743
+關(guān)注
關(guān)注
0文章
24瀏覽量
1719
原文標(biāo)題:工程師筆記|DFSDM 模塊的配置
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論