Blackfin入門教程 SPORT
ADSP-BF53x上有兩個(gè)SPORT口,SPORT(synchronous serial ports)接口是ADSP-BF53x上速度最快的串口,其速度可以達(dá)到系統(tǒng)時(shí)鐘的1/2, 每一個(gè)SPORT口有兩根接收數(shù)據(jù)線和兩根傳輸數(shù)據(jù)線,支持全雙工模式傳輸。
本文引用地址:http://cafeforensic.com/article/201610/307426.htmSPORT接口通常用做一些高速的數(shù)據(jù)傳輸,它支持I2S模式,通常將SPORT接口連接音頻的編解碼器芯片,作為音頻數(shù)據(jù)輸出接口。
SPORT時(shí)鐘頻率配置: SPORTx_TCLK frequency = (SCLK frequency)/(2 x (SPORTx_TCLKDIV + 1)) SPORTx_RCLK frequency = (SCLK frequency)/(2 x (SPORTx_RCLKDIV + 1)) SPORT同步信號(hào)頻率配置:
SPORTxTFS frequency = (TSCLKx frequency)/(SPORTx_TFSDIV + 1)
SPORTxRFS frequency = (RSCLKx frequency)/(SPORTx_RFSDIV + 1) 寄存器 功能 SPORTx_TX_CONFIG SPORTx傳輸配置寄存器 SPORTx_RX_CONFIG SPORTx傳輸配置寄存器 SPORTx_TX SPORTx傳輸寄存器 SPORTx_RX SPORTx接收寄存器 SPORTx_TSCLKDIV SPORTx傳輸時(shí)鐘配置寄存器 SPORTx_RSCLKDIV SPORTx接收時(shí)鐘配置寄存器 SPORTx_TFSDIV SPORTx傳輸同步信號(hào)配置寄存器 SPORTx_RFSDIV SPORTx接收同步信號(hào)配置寄存器 SPORTx_STAT SPORTx狀態(tài)寄存器 *pSPORT0_TCLKDIV = TCLKDIV; //配置SPORT傳輸接口的時(shí)鐘頻率
*pSPORT0_TFSDIV = TFSDIV; //配置SPORT傳輸接口的同步頻率
*pSPORT0_TCR1 = ITFS|TFSR|ITCLK;//配置SPORT傳輸工作模式
*pSPORT0_TCR2 = 31; //配置SPORT以32Bit數(shù)據(jù)傳輸
*pDMA2_PERIPHERAL_MAP = 0x2000; //設(shè)置SPORT傳輸接口DMA
*pDMA2_CONFIG = WDSIZE_32 | DI_EN |FLOW_1; //設(shè)置DMA工作模式
*pDMA2_START_ADDR = (void *)iTxBuffer; //設(shè)置DMA 傳輸數(shù)據(jù)起始地址
*pDMA2_X_COUNT = 1000; //設(shè)置DMA傳輸次數(shù)
*pDMA2_X_MODIFY = 4; //設(shè)置DMA每次地址增量變化
*pDMA2_CONFIG = (*pDMA2_CONFIG | DMAEN); //使能傳輸DMA
*pSPORT0_TCR1 = (*pSPORT0_TCR1 | TSPEN); //使能傳輸SPORT
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xfffff32f; //配置SPORT DMA中斷等級(jí)
*pSIC_IAR2 = 0xffffffff;
register_handler(ik_ivg9, Sport0_RX_ISR); //注冊(cè)接收中斷
register_handler(ik_ivg10, Sport0_TX_ISR); //注冊(cè)傳輸中斷
*pSIC_IMASK = 0x00000600; //使能中斷
EX_INTERRUPT_HANDLER(Sport0_TX_ISR) //傳輸DMA中斷函數(shù)
{
*pDMA2_IRQ_STATUS = 0x0001; //清楚中斷標(biāo)志位
printf(SPORT TX DMA Done!n); //打印信息
*pSIC_IMASK = ~0x00000400; //關(guān)閉傳輸中斷
} 代碼實(shí)現(xiàn)了通過(guò)SPORT0接口利用SPORT0 DMA傳輸數(shù)據(jù)和接收數(shù)據(jù),SPORT接口時(shí)鐘和同步信號(hào)采用內(nèi)部由系統(tǒng)時(shí)鐘配置分頻獲取。
代碼描述了SPORT接口使用DMA傳輸時(shí)常用的配置,沒有和其他設(shè)備做通訊,所以看不到接收的實(shí)際數(shù)據(jù)。
對(duì)于BF60x系列,只能用CCES環(huán)境編譯,CCES中自帶了SPORT驅(qū)動(dòng),與VDSP環(huán)境不同的是,CCES提供的驅(qū)動(dòng),兼容RTOS;就是說(shuō)CCES中系統(tǒng)自帶的接口驅(qū)動(dòng)是操作系統(tǒng)格式接口的;所以這種方式下的驅(qū)動(dòng),需要摸索: 如圖中的兩個(gè)merroy,要是獨(dú)立的;否則,兩個(gè)HSPORT只能有一個(gè)被配置(重復(fù)配置);
評(píng)論