娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

基于Kinetis MK60N512和MAX5556的立體聲音頻接口設計

發布者:Yuexin888最新更新時間:2024-09-10 來源: elecfans關鍵字:Kinetis  MAX5556 手機看文章 掃描二維碼
隨時隨地手機看文章

MK60N512是飛思卡爾公司Kinetis系列微控制器集成度最高的芯片,它基于ARM Cortex—M4內核,具有功耗低、性能高、成本低的特點,旨在為嵌入式音頻、汽車電子和電源管理等提供靈活的解決方案。MAX5556是美信公司一款低功耗、立體聲音頻數/模轉換器(DAC),支持標準I2S總線協議,采樣精度最高可達24位,采樣率為2~50 kHz。采用∑-△調制技術,能夠對量化噪聲進行有效整形,減小量化噪聲。


音頻處理系統中,采用DMA實現音頻數據在微控制器內的傳輸,能減少內核的參與,降低內核負擔。系統的數據傳輸通道如圖1所示,音頻信號暫存在緩存區中,由DMA傳輸到I2S總線模塊的發送電路。為了保持音頻信號的連續性,采用“乒乓RAM”設計緩存。圖中A/B表示乒乓RAM的編號。

  1 MK60N512 I2S總線和eDMA介紹

  1.1 I2S總線模塊

  MK60N512的I2S總線模塊有3種基本操作模式:普通模式、網絡模式和門控時鐘模式,針對音頻上的應用,I2S總線模塊還支持兩種衍生模式:I2S總線模式和AC97模式。I2S總線模塊的結構如圖2所示,由發送電路、接收電路、串行時鐘和幀同步時鐘產生電路組成。STCK、SRCK分別為串行發送、接收時鐘端口,STFS、SRFS為串行發送、接收幀同步端口,STXD、SRXD為串行發送和接收數據端口。在同步模式下,STCK端口被發送和接收單元共同使用。

發送電路和接收電路均有兩個FIFO,寬度為32位,深度為15。對發送數據寄存器TX0/TX1和接收數據寄存器RX0/RX1的寫入與讀取可以訪問這些FIFO。發送邏輯將TX FIFO中的數據轉移出來,裝入發送串行移位器TXSR,然后從STXD端口串行發送;接收邏輯將數據從輸入的數據幀中轉移出來后,將它們放入接收RXFIFO的入口。當TX FIFO中空缺數目或RX FIFO數據達到設定的數目時,會觸發中斷或者DMA傳輸。

1.2 eDMA

MK60N512的eDMA高度可編程,數據傳輸高度優化而幾乎不需要CPU內核干預。與普通的DMA不同,eDMA的傳輸由主循環(Major Loop)和輔循環(MinorLoop)組成。主循環由外設自動觸發,每次主循環結束后源地址、目的地址都會按照TCDn_SOFF、TCDn_DOFF寄存器中的值自動偏移而不需要CPU去修改。除了所有傳輸結束后產生中斷申請外,eDMA還支持“半中斷”,即主循環完成總循環次數一半時產生中斷申請,這特別適合“乒乓RAM”設計。

2 MAX5556介紹

2.1 引腳定義和內部結構

MAX5556內部結構如圖3所示,MCLK為主時鐘,LRCLK為左/右聲道選擇時鐘,SCLK為外部串行時鐘,SDATA為串行音頻輸入,OUTL/OUTR為左/右聲道輸出。串行接口模塊獲取音頻數據后,由內置數字插值器、濾波器對其進行濾波,以去除基帶音頻信號攜帶的諧波噪聲;音頻數據經∑-△調制器調制后由DAC轉換,輸出的模擬信號經由內部的模擬低通濾波器進行濾波,衰減高頻量化噪聲;內置輸出緩存器能驅動大于3 kΩ的負載電阻和高達100 pF的負載電容;最終模擬音頻信號從OUTL/OUTR輸出。

2.2 工作模式

MAX5556支持外部串行時鐘模式和內部串行時鐘模式。在一個LRCLK周期內,若檢測到有效的SCLK,則進入外部串行時鐘模式,SCLK作為采樣時鐘;如果檢測不到有效的SCLK,則進入內部串行時鐘模式,采樣時鐘由內部生成。內部采樣時鐘的頻率根據檢測到的MCLK與LRCLK的比值確定,若MCLK與LRCLK的比值為384,則內部采樣時鐘頻率為48×fLRCLK;若MCLK與LRCLK的比值為256或512,則內部采樣時鐘頻率為32× fLRCLK。

2.3 數據格式

MAX5556支持左對齊16位或者24位數據格式。當其工作在外部串行時鐘模式,或工作在內部串行時鐘模式,且同時MCLK與LRCLK的比值為384時,有效數據為24位。如果數據不足24位,低位補零;超過24位的數據會被忽略。當工作在內部串行時鐘模式,且MCLK與LRCLK的比值為256或512時,有效數據為16位。MAX5556數據格式如圖4所示。每次LRCLK沿變化后的第二個SCLK上升沿時,SDATA上數據開始有效,出現最高有效位(MSB);24個或者16個時鐘周期后出現最低位有效位(LSB)。LRCLK為0時,數據進入左聲道DAC;LRCLK為1時,數據進入右聲道DAC。

3 系統硬件電路設計

MK60N512通過I2S總線將音頻數據傳輸給MAX5556進行數模轉換,輸出模擬音頻信號由濾波電路進行濾波,同時提高帶負載能力。I2S總線模塊工作在I2S總線主模式下,發送電路的STCK、STFS和STXD端口對應的引腳分別為BCLK、TX_FS和TXD,I2S總線模塊的主時鐘通過MCLK引腳輸出。硬件電路如圖5所示。由于MK60N512工作在3.3 V電壓下,而MAX5556工作電壓為5 V,為了提高數據傳輸的穩定性,接口均采用上拉方式。

LM358在5 V單電源供電時有效輸出為1.5~3.5 V,而MAX5556的輸出可以達到0~5 V,因而在輸入端使用R1和R2對原始信號進行衰減,防止輸出信號出現削頂失真。

4 軟件設計

4.1 “乒乓RAM”設計

MK60N512的I2S總線模塊在I2S總線模式下支持雙聲道,音頻數據在FIFO中交錯存放,因此在緩存中的音頻數據也需要交錯存放。數據緩存如圖6所示,其中L/R表示音頻左/右聲道。每個音頻數據占用4個字節空間,緩存BUFF_A、BUFF_B在物理地址上是連續的,它們大小均為512字節,共存儲256個音頻數據。當DMA從緩區BUFF_A中讀取數據時,CPU向緩存區BUFF_B中存儲下一組音頻信號;當DMA將BUFF_A中的數據全部傳輸結束后,將DMA通道源地址切換到BUFF_B,同時CPU向BUFF_A存儲數據,如此反復。

4.2 I2S總線模塊的配置

配置I2S總線模塊工作在I2S總線主模式下,默認一幀數據長度是32位,而且為左對齊模式;使用幀同步TX_FS作為聲道選擇時鐘,且同步幀長度為一個字。由于MAX5556的SCLK信號由MK60N512提供,MAX5556工作在外部串行時鐘模式,有效數據位是24位,因而配置發送數據位為24位。按照MAX5556的數據格式,數據需要在SCLK下降沿輸出從TXD數據,且需要發送早期幀同步,讓數據延遲一個采樣時鐘,還需要根據音頻采樣頻率設置幀頻率。

使能TX FIFO和其DMA請求,當FIFO中空缺數達到8時,啟動一次DMA主循環。圖7為音頻數據在TXFIFO移動過程。圖7(a)中FIFO為滿,隨著發送移位邏輯從FIFO從取出一個數據后,FIFO產生一個空缺,如圖7(b)所示。當發送8次數據后,FIFO空缺數達到8個,則觸發DMA主傳輸,如圖7(c)所示。

4.3 eDMA配置

當TX FIFO空缺數達到8時,觸發DMA主循環,故每次主循環傳輸數據數目是32字節,每次主循環源地址偏移也是32字節,完成緩存區1 024字節數據傳輸需要32次主循環。第16次主循環結束,DMA已經將BUFF_A中所有數據傳輸完畢,DMA源地址指向BUFF_B,并產生“半中斷”請求,CPU開始向BUFF_A中存儲下一組512字節音頻數據。

當BUFF_B中數據傳輸結束后,源地址恢復到BUFF_A起始地址,并產生中斷請求,CPIJ響應中斷并向BIJFFB中存儲下一組512字節音頻數據。可以看出,在傳輸過程中,CPU只需要響應兩次中斷請求,然后向緩存區寫入音頻數據。每次主循環結束后源地址偏移32字節,完整的傳輸結束后,源地址恢復到BUFF_A起始地址,這些操作都是通過eDMA模塊自己完成的。

5 測試結果

圖8為TX_FS和TXD的波形圖,通道1為TX_FS,通道2為TXD。左/右聲道發送的音頻數據均是0x555。圖8(a)的發送幀頻率為48 kHz,圖8(b)的為44.1 kHz。從圖8中可以看出,數據長度為24位,左對齊模式,而且數據與幀同步有一個采樣時鐘的延時,符合MAX5556的數據格式和時序。

  結語

  本文設計了基于Kinetis MK60N512和MAX5556的立體聲音頻接口,MK60N512將音頻數據按照MAX5556的數據格式和時序通過I2S總線傳輸給MAX5556,MAX5556內部DAC將數據轉化為模擬信號輸出,并由濾波電路對音頻信號進行濾波,同時提高帶負載能力。使用MK60N512內部高性能可配置的eDMA提高系統數據傳輸速率,降低CPU的負擔。測試表明,系統能輸出立體聲音頻,輸出頻率可調,可以為Kinetis系列微控制器音頻解決方案提供參考。


關鍵字:Kinetis  MAX5556 引用地址:基于Kinetis MK60N512和MAX5556的立體聲音頻接口設計

上一篇:淺談監控攝像機的5大主流技術
下一篇:你知道低頻R型電源變壓器的那些功能嗎?

推薦閱讀最新更新時間:2025-03-28 03:29

Mouser備貨Freescale? Kinetis? L系列32位MCU 基于ARM Cortex-M0+處理器構建
2012年10月8日 – Mouser Electronics宣布備貨業界能效最高的處理器,該處理器來自Freescale Semiconductor.?。 Freescale公司的Kinetis? L系列32位微控制器(MCU)基于ARM? Cortex?-M0+核心構建,不僅能效出眾、易于使用而且兼具了Kinetis 32位MCU產品組合的性能、外設、支持與可擴展性,同時還利用了ARM Cortex架構固有的低功耗和高性能特性。L系列產品采用Freescale的低泄露、90 nm薄膜存儲(TFS)工藝技術制造,通過將出色的動態和截止電流與卓越的處理性能相結合,讓功率關鍵型設計擺脫8位和16位MCU的限制。片內閃存記
[單片機]
Mouser備貨Freescale? <font color='red'>Kinetis</font>? L系列32位MCU 基于ARM Cortex-M0+處理器構建
小廣播
最新嵌入式文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 霍邱县| 兰坪| 徐水县| 绵竹市| 都匀市| 安泽县| 延川县| 青川县| 保德县| 易门县| 郎溪县| 阿巴嘎旗| 武城县| 嘉兴市| 延寿县| 桐梓县| 河西区| 尼木县| 北川| 日喀则市| 瑞安市| 延川县| 临湘市| 如东县| 吉林市| 德钦县| 都江堰市| 惠州市| 雷波县| 江达县| 炉霍县| 普宁市| 合作市| 梨树县| 孟州市| 福泉市| 托克逊县| 读书| 青龙| 白玉县| 图片|