數字信號處理器與音頻模擬芯片的接口設計
格式如下:
系統復位后,必須通過DSP的DX口向TLC320AD50C的DIN寫數據,如果采用一片TLC320AD50C,只需初始化其寄存器1、寄存器2和寄存器4。

由于通信數據長度為16位,初始化時應通過RCR1和XCR1設置McBSP的傳輸數據長度為16。考慮到TLC320AD50C復位后至少經過6個MCLK才可以脫離復位,故可以在此時間內初始化DSP的串行口。
3.3 軟件實現
SERIAL_INIT:
LD #AIC_DP,DP *為AIC的復位初始化DP
ST #K_RESET,AIC_IN_RESET
PORTW #AIC_IN_RESET,K_AIC_ADDR *復位AIC
Need at least 6 cycles to pull the aic out of reset
STM #K_SERIAL_RETRSPCR1
STM #K_SERIAL_RETXSPCR2 *初始化串行口控制寄存器1,2復位串行口
STM #K_SERIAL_OUTRETR,SPCR1
STM #K_SERIAL_OUTRETX,SPXR2 *使串行口脫離復位
RSBXINTM *INTM=0,打開所有的中斷

LD #0,DP
ORM #(K_BRINT0 K_BXINT0),IMT *打開BRINT0和BXINT0
LD #AIC_DP,DP
STM #(~K_BRINT0),IFR *清除標志
ST #K_ORESET,AIC_OUT_RESET
PORTW #AIC_OUT_RESET,K_AIC_ADDR *AIC脫離復位
STM RCR1,#K_RFW 初始化接收控制寄存器1,設置接收數據長度為16位
STM XCR1,#K_XFW *初始化發送控制寄存器1,設置發送數據長度為16位
STM PCR,#K_SERIAL *設置為串行口工作方式,而不是通用I/O方式
STM #K_DATA,DXR1 *向DIN寫數據,引起二次通信,等待串行口中斷
IDLE 在BXINT0的中斷服務程序里,向DXR1寫入寄存器的值。







評論