原创 ADSP-EDU-BF531/BF533开发板教学视频第六集--Blackfin的UART和SPORT接口【II】

2012-5-7 16:39 1495 19 19 分类: 消费电子

3.75 测试结果

3.8 BF53x_SPORT

3.81 接口功能介绍

ADSP-BF53x上有两个SPORT口,SPORT(synchronous serial ports)接口是ADSP-BF53x上速度最快的串口,其速度可以达到系统时钟的1/2, 每一个SPORT口有两根接收数据线和两根传输数据线,支持全双工模式传输。

SPORT接口通常用做一些高速的数据传输,它支持I2S模式,通常将SPORT接口连接音频的编解码器芯片,作为音频数据输出接口。

SPORT时钟频率配置:

SPORTx_TCLK frequency = (SCLK frequency)/(2 x (SPORTx_TCLKDIV + 1))

SPORTx_RCLK frequency = (SCLK frequency)/(2 x (SPORTx_RCLKDIV + 1))

SPORT同步信号频率配置:

SPORTxTFS frequency = (TSCLKx frequency)/(SPORTx_TFSDIV + 1)

SPORTxRFS frequency = (RSCLKx frequency)/(SPORTx_RFSDIV + 1)

不同模式下,寄存器配置值:

123.jpg

 

3.82 接口寄存器说明

 

 

 

寄存器

功能

SPORTx_TX_CONFIG

SPORTx传输配置寄存器

SPORTx_RX_CONFIG

SPORTx传输配置寄存器

SPORTx_TX

SPORTx传输寄存器

SPORTx_RX

SPORTx接收寄存器

SPORTx_TSCLKDIV

SPORTx传输时钟配置寄存器

SPORTx_RSCLKDIV

SPORTx接收时钟配置寄存器

SPORTx_TFSDIV

SPORTx传输同步信号配置寄存器

SPORTx_RFSDIV

SPORTx接收同步信号配置寄存器

SPORTx_STAT

SPORTx状态寄存器

 

3.83 例子代码分析

       *pSPORT0_TCLKDIV =     TCLKDIV;           //配置SPORT传输接口的时钟频率

       *pSPORT0_TFSDIV           =     TFSDIV;       //配置SPORT传输接口的同步频率

       *pSPORT0_TCR1        =     ITFS|TFSR|ITCLK;//配置SPORT传输工作模式

       *pSPORT0_TCR2        =     31;  //配置SPORT以32Bit数据传输

 

       *pDMA2_PERIPHERAL_MAP = 0x2000;              //设置SPORT传输接口DMA

       *pDMA2_CONFIG = WDSIZE_32 | DI_EN |FLOW_1;  //设置DMA工作模式

       *pDMA2_START_ADDR = (void *)iTxBuffer;              //设置DMA 传输数据起始地址

       *pDMA2_X_COUNT = 1000;                                //设置DMA传输次数

       *pDMA2_X_MODIFY = 4;                                    //设置DMA每次地址增量变化

 

       *pDMA2_CONFIG      = (*pDMA2_CONFIG | DMAEN);     //使能传输DMA

       *pSPORT0_TCR1       = (*pSPORT0_TCR1 | TSPEN);                //使能传输SPORT

 

       *pSIC_IAR0 = 0xffffffff;

       *pSIC_IAR1 = 0xfffff32f;                                       //配置SPORT DMA中断等级

       *pSIC_IAR2 = 0xffffffff;

       register_handler(ik_ivg9, Sport0_RX_ISR);                    //注册接收中断

       register_handler(ik_ivg10, Sport0_TX_ISR);           //注册传输中断

       *pSIC_IMASK = 0x00000600;                               //使能中断

 

EX_INTERRUPT_HANDLER(Sport0_TX_ISR)            //传输DMA中断函数

{

              *pDMA2_IRQ_STATUS = 0x0001;                  //清楚中断标志位

              printf("SPORT TX DMA Done!\n");                //打印信息

              *pSIC_IMASK &= ~0x00000400;                           //关闭传输中断

}

3.84 代码实现功能

代码实现了通过SPORT0接口利用SPORT0 DMA传输数据和接收数据,SPORT接口时钟和同步信号采用内部由系统时钟配置分频获取。

代码描述了SPORT接口使用DMA传输时常用的配置,没有和其他设备做通讯,所以看不到接收的实际数据。

3.85 测试结果

1234.jpg

 

优酷链接:http://v.youku.com/v_show/id_XMjg4Mjc1MTU2.html

清晰版下载地址:http://u.115.com/file/dn68qgpb    如需提取码,则是:dn68qgpb

开发板链接:http://item.taobao.com/item.htm?spm=1103Qmdt.3-3dfNy.h-1Akvus&id=9026190872&

 

 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
19
关闭 站长推荐上一条 /3 下一条