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