1、引言
客戶在使用 STM32H743 的 DFSDM 模塊時,配置有誤。于是協助客戶按照下面的方法進行配置并分享之。
2、參數的計算
使用 NUCLEO-H743 開發板進行測試。由于客戶需要 16KHz 音頻數據, 24bits 的音頻數據,因此配置如下。
PDMMic -> PDM data -> 濾波器類型 -> 過采樣率 Fosr(濾波器)-> 過采樣率 Isor(積分器)-> 右移位器 -> 偏移補償 -> 采樣數據
1)Clock out (CKOUT)的計算
Fs= Fclockout/( Fosr*Iosr)Fs= 16kHz 音頻數據Fosr:濾波器過采樣率,也就是抽取率,在這里取 128Iosr:積分器過采樣率,在這里取 1則 Fclockout = 2.048MHz相應的寄存器配置可以參考下圖:
2)SAI clock 的計算
(FSAIclock/ Divider) =Fclockout => FSAIclock = Fclockout * Divider
FSAIclock:當時鐘源選 audio clock 時,即 STM32CubeMX 中 Output clock:selection-> source of output clock is audio clock.Divider : Audio clock 經過的預分頻比,在下面的配置中取 7(見圖 3. OutputClock 配置)Fclockout:為 2.048Mhz則 FSAIclock = (Fclockout * Divider) = 2.048 * 7 = 14.336MHz因此下圖中的 SAI clock 需要配置到 14.336Mhz。濾波器階數 FORD:取 4,即 sinc Order : sinc 4 filter type.
3)右移位數的計算
B = N*log2(M) +BinB:中間變量位寬N:Ford,濾波器階數,此例中取 sinc 4 階。M:濾波器過采樣率,抽取率,此例中取 128 ,見圖 4Channel 配置,Fosr。Bin:積分器過采樣率,濾波器輸入位寬,此例中取 1位寬 = 4* log2(128)+1 = 4*7+1 =29(位)因此積分器處理后的數據需要右移 5 位,然后變為 24 位。STM32CubeMX 中 RightBit Shift = 0x5.也可以參考下表來規劃右移位:
3、STM32CubeMX 的配置
根據上面的計算值配置時鐘參數。SAI clock 配置為 14.336Mhz。
3、小結
關于DFSDM 模塊寄存器的配置,需要計算合適的參數值方可進行。需要時可以參考上面內容來操作。
來源:STM32單片機
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理
審核編輯 黃宇
-
濾波器
+關注
關注
161文章
7862瀏覽量
178936 -
寄存器
+關注
關注
31文章
5363瀏覽量
121182 -
STM32
+關注
關注
2272文章
10924瀏覽量
357590
發布評論請先 登錄
相關推薦
Dali通信模塊的選擇與配置
AMC1303M2520所輸出的信號經過STM32的DFSDM外設進行采集濾波后,得出的數據轉換成波形與實際波形不一致怎么解決?
LORA模塊的安裝與配置指南
STM32L4的DFSDM外設采集PDM數字MIC后的數據
WiFi模塊網絡配置基本設置
使用STM32H7的DFSDM獲取注入通道值時的參數不匹配是怎么回事?
使用STM32H7的DFSDM模塊對NSI1306M25電信號進行采集遇到的幾個疑問求解
只想采集20-2000Hz以內的音頻信號改怎么配置DFSDM?
使用STM32H750 DFSDM濾波,輸出與設置不一致的原因?
使用dfsdm單個麥克風錄音出現錄音重復問題,怎么解決?
關于使用STM32F412 DFSDM的幾個問題求解
DFSDM如果使用內部并行數據輸入,輸入數據的最大頻率是多少?
STM32MP135F-DK配置了asound.conf后報錯的原因?
關于STM32L476 DFSDM時鐘配置的疑問求解
STM32使用片內外設DFSDM的應用問題
![STM32使用片內外設<b class='flag-5'>DFSDM</b>的應用問題](https://file1.elecfans.com/web2/M00/C2/7D/wKgZomXlQAuAYTNXAAAR5NGGZ4c138.png)
評論