新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 數(shù)字信號處理器與音頻模擬芯片的接口設(shè)計(jì)

數(shù)字信號處理器與音頻模擬芯片的接口設(shè)計(jì)

作者: 時(shí)間:2012-02-08 來源:網(wǎng)絡(luò) 收藏

格式如下:

  系統(tǒng)復(fù)位后,必須通過DSP的DX口向的DIN寫數(shù)據(jù),如果采用一片,只需初始化其寄存器1、寄存器2和寄存器4。

  由于通信數(shù)據(jù)長度為16位,初始化時(shí)應(yīng)通過RCR1和XCR1設(shè)置McBSP的傳輸數(shù)據(jù)長度為16??紤]到復(fù)位后至少經(jīng)過6個(gè)MCLK才可以脫離復(fù)位,故可以在此時(shí)間內(nèi)初始化DSP的串行口。

3.3 軟件實(shí)現(xiàn)

SERIAL_INIT:

LD #AIC_DP,DP *為AIC的復(fù)位初始化DP

ST #K_RESET,AIC_IN_RESET

PORTW #AIC_IN_RESET,K_AIC_ADDR *復(fù)位AIC

Need at least 6 cycles to pull the aic out of reset

STM #K_SERIAL_RETRSPCR1

STM #K_SERIAL_RETXSPCR2 *初始化串行口控制寄存器1,2復(fù)位串行口

STM #K_SERIAL_OUTRETR,SPCR1

STM #K_SERIAL_OUTRETX,SPXR2 *使串行口脫離復(fù)位

RSBXINTM *INTM=0,打開所有的中斷

LD #0,DP

ORM #(K_BRINT0 K_BXINT0),IMT *打開BRINT0和BXINT0

LD #AIC_DP,DP

STM #(~K_BRINT0),IFR *清除標(biāo)志

ST #K_ORESET,AIC_OUT_RESET

PORTW #AIC_OUT_RESET,K_AIC_ADDR *AIC脫離復(fù)位

STM RCR1,#K_RFW 初始化接收控制寄存器1,設(shè)置接收數(shù)據(jù)長度為16位

STM XCR1,#K_XFW *初始化發(fā)送控制寄存器1,設(shè)置發(fā)送數(shù)據(jù)長度為16位

STM PCR,#K_SERIAL *設(shè)置為串行口工作方式,而不是通用I/O方式

STM #K_DATA,DXR1 *向DIN寫數(shù)據(jù),引起二次通信,等待串行口中斷

IDLE 在BXINT0的中斷服務(wù)程序里,向DXR1寫入寄存器的值。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉