TMS320VC5402與模擬芯片TLC320AD50C接口設計
3.1 硬件連接
根據(jù)圖1和圖2的時序,則容易實現(xiàn)TLC320AD50C與TMS320VC5402的硬件連接,如圖3所示。
TLC320AD50C的MCLK外接8.192MHz的晶振,TMS320VC5402的FSX和FSR由TLC320AD50C設置。如果選擇D7=0,N=8,則采樣速率為8kHz。
3.2 通信協(xié)議
TLC320AD50C的通信有兩種格式:一次通信格式和二次通信格式。
一次通信格式的16位都用來傳輸數(shù)據(jù)。DAC的數(shù)據(jù)長度由寄存器1的D0位決定。啟動和復位時,缺省值為15+1位模式,最后一位要求二次通信。如果工作在16位傳輸模式,則必須由FC產生二次通信請求。
二次通信格式則用來初始化和修改TLC320AD50C內部寄存器的值。在二次通信中可通過向DIN寫數(shù)據(jù)來初始化。
格式如下:
系統(tǒng)復位后,必須通過DSP的DX口向TLC320AD50C的DIN寫數(shù)據(jù),如果采用一片TLC320AD50C,只需初始化其寄存器1、寄存器2和寄存器4。
由于通信數(shù)據(jù)長度為16位,初始化時應通過RCR1和XCR1設置McBSP的傳輸數(shù)據(jù)長度為16??紤]到TLC320AD50C復位后至少經(jīng)過6個MCLK才可以脫離復位,故可以在此時間內初始化DSP的串行口。
3.3 軟件實現(xiàn)
SERIAL_INIT
LD #AIC_DPDP 為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_RETR SPCR1
STM #K_SERIAL_RETX SPCR2
初始化串行口控制寄存器1,2復 位串行口
STM #K_SERIAL_OUTRETR SPCR1
STM #K_SERIAL_OUTRETX SPCR2
使串行口脫離復位
RSBX INTM INTM=0,打開所有的中斷
LD #0 DP
ORM #K_BRINT0|K_BXINT0IMR
打開BRINT0和BXINT0
LD #AIC_DPDP
STM # K_BRINT0 IFR 清除標志
ST #K_ORESET AIC_OUT_RESET
PORTW #AIC_OUT_RESET K_AIC_ADDR
AIC脫離復位
STM RCR1#K_RFW
初始化接收控制寄存器1,設
置接收數(shù)據(jù)長度為16位
STM XCR1#K_XFW
初始化發(fā)送控制寄存器1,設
置發(fā)送數(shù)據(jù)長度為16位
STM PCR#K_SERIAL
設置為串行口工作方式,而不
是通用I/O方式
STM #K_DATA DXR1
向DIN寫數(shù)據(jù),引起二次通信,
等待串行口中斷
IDLE
在BXINT0的中斷服務程序里,向DXR1寫入寄存器的值。
評論