裸機系列 IIS放音

2021-05-25 06:34:36 字數 1112 閱讀 4193

裸機程式設計的iis程式,趙老師已經寫的很是明白了,他的部落格位址

所以這裡我自己也不寫關於iis的一些原理了,我想自己總結一下自己編寫iis程式中間的心得和問題。

首先對於iis程式設計,要明白三個重點

1. iis匯流排,對於iis匯流排2440來說有五根線,分別是iissclk iislrclk cdclk iisdi iisdo ,其中後面倆跟是資料的輸入輸出,前面三根是iis通訊的時鐘。其實對於iis的時序等等2440硬體已經做好了,我們只有設定幾個暫存器就好了。

2. l3匯流排,對於2440的iis音訊通訊iis只是資料的流通,產生音訊還需要音訊晶元uda1341。音訊資料通過iis匯流排傳輸到uda1341,2440通過l3匯流排來控制uda1341晶元的初始化,復位,時鐘設定,暫存器等等所以要使能夠放音,首先要設定好uda1341晶元。對於l3匯流排有幾點要注意:

1. l3匯流排顧名思義只有三根線,l3mode l3data l3clock ,引腳連線到gpb2-4,首先對於io的初始化設定應該置為output,一開始我設定成了tout了。

2.對於l3匯流排有寫位址和資料之分,對於寫位址l3mode為l(0),寫資料l3mode為h(1),時鐘和模式開始都應該為1,資料線開始為0.先寫位址在些資料,先發低位在發高位。

3. iis時鐘,對於一種匯流排驅動時鐘都是很重要的,iis也不例外,時鐘比較多,看手冊有很多的不明白,現在寫的也不知道是不是對的,要是不對請看到的朋友指出,非常感謝。對於2440的iis時鐘,首先時鐘的輸入有倆個pclk 和 mpllin

,一般選用pclk來作為iis時鐘的輸入源。其實,iis通訊中用到的幾個時鐘,iisclk 序列時鐘,也是位時鐘,計算方法很多文章寫的很好了就不多說,iislrclk左右聲道選擇時鐘,它的值等於取樣頻率fs,cdclk,其完整的是codeclk編譯碼時鐘,為uda1341提供時鐘。這些都還好理解,資料手冊上還有乙個時鐘,就是pclk通過分頻器a後的乙個主時鐘,sclkg這個時鐘困惱了我好幾天,後面也沒找到很明確的資料,但經過我自己找到的一些資料總結分析,這個時鐘應該是產生iisclk和iislrclk的主時鐘,為了很好了匹配和系統的高時鐘頻率,其值一般是256fs或者384fs,和cdclk的一樣也是這倆個倍數選項,經過測試,只有這倆個值設定成一樣iis通訊才有聲音,所以就有很多文章中的分頻器a和b的值是一樣的。

裸機系列 nandflash

看了好久的nandflash 手冊以及其他方面的一些資料,因為英語不好,所以手冊看的有點暈,幸好網路資源的豐富。總結一下我所理解的nandflash 操作,基於一些其他的原因,暫時不繼續進行裸機程式設計,只是把所有的理解詳細的寫下來。1.首先對於nandflash 程式設計有三個方面 1.nandf...

ARM裸機程式設計系列 buzzer

蜂鳴器控制很簡單只需要控制引腳輸出即可。通過原理圖檢視找到對應的gpio 下面是 start.s global start start 關閉看門狗 ldr r0,0xe2700000 mov r1,0 str r1,r0 設定棧,以便呼叫c函式 ldr sp,0x31000000 呼叫main bl...

ARM 2410裸機系列 中斷處理

目的 為了更好地掌握s3c2410中斷的原理及中斷程式的編寫。內容利用s3c2410的外部中斷0和外部中斷1實現兩個按鍵功能 原理 本次選擇的是外部中斷extint0和extint11。中斷的產生分別來自按鈕sb1202和sb1203,當按鈕按下時,extint0 對應管腳gpf0 或extint1...