上海妇科疾病研究所 上海女性不孕医院 上海引产医院 无痛引产痛不痛 上海人流医院 白癜风治疗医院 上海小儿脑瘫医院 上海女子医院
Blackfin的技术文章和教学视频连载13:SPORT-Blackfin-技术中心-国内专业ADI仿真器,Blackfin开发板,DSP芯片,软件算法,解决方案提供商-北京四维卓信电子有限公司
用户名: 密码:
主页 设为首页 加入收藏
      产品中心       技术中心       下载中心        社区新闻        诚聘英才       大学计划        关于我们       技术论坛
  您的当前位置:ADSP开源社区 >> 技术中心 >> Blackfin 今天是:
技术中心  
SigmaDSP
SHARC
A2B音频总线
Blackfin
ADI操作系统
ADSP-218X
TigerSAHRC
ADI DSP仿真器
产品导航
ADI DSP仿真器
SigmaDSP开发板
ADI A2B总线开发板
SHARC DSP开发板
销售网络
Blackfin  
Blackfin的技术文章和教学视频连载13:SPORT
[ 作者:OP ] [ 来源:ADSP开源社区 ] [ 发布时间:2014-8-8 ]
    SPORT是Blackfin专门的音频接口,是最高速的串口,当然也有不少人拿这个接口去干别的,但在ADI自己的定义里,它大多数是来接音频的。

    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)

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


    接口寄存器说明:

    寄存器                        功能
    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            状态寄存器

    作为一个高速串口,不多说了,看一段核心程序:

*pSPORT1_TCLKDIV = TCLKDIV; //配置SPORT 传输接口的时钟频率
*pSPORT1_TFSDIV = TFSDIV; //配置SPORT 传输接口的同步频率
*pSPORT1_TCR1 = ITFS|TFSR|ITCLK; //配置SPORT 传输工作模式
*pSPORT1_TCR2 = 31; //配置SPORT 以32Bit 数据传输
*pDMA4_PERIPHERAL_MAP = 0x4000; //设置SPORT 传输接口DMA
*pDMA4_CONFIG = WDSIZE_32 | DI_EN |FLOW_1; //设置DMA 工作模式
*pDMA4_START_ADDR = (void *)iTxBuffer; //设置DMA 传输数据起始地址
*pDMA4_X_COUNT = 1000; //设置DMA 传输次数
*pDMA4_X_MODIFY = 4; //设置DMA 每次地址增量变化
*pDMA4_CONFIG = (*pDMA4_CONFIG | DMAEN); //使能传输DMA
*pSPORT1_TCR1 = (*pSPORT1_TCR1 | TSPEN); //使能传输SPORT
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xfff32fff; //配置SPORT DMA 中断等级
*pSIC_IAR2 = 0xffffffff;
register_handler(ik_ivg9, Sport1_RX_ISR); //注册接收中断
register_handler(ik_ivg10, Sport1_TX_ISR); //注册传输中断
*pSIC_IMASK = 0x00001800; //打开SPORT 传输和接收中断屏蔽
EX_INTERRUPT_HANDLER(SPORT1_TX_ISR) //传输DMA 中断函数
{
*pDMA4_IRQ_STATUS = 0x0001; //清除中断标志位
printf("SPORT TX DMA Done!\n"); //打印信息
*pSIC_IMASK &= ~0x00001000; //屏蔽接收中断
}

    这段代码实现了通过 SPORT1 接口利用SPORT1 DMA 传输数据和接收数据,SPORT1 接口时钟和同步信号采用内部由系统时钟配置分频获取。代码描述了 SPORT1 接口使用DMA 传输时常用的配置,由于没有和其他设备做通讯,所以看不到接收的实际数据。也可以将扩展接口上SPORT1 的DT1PRI 和DR1PRI 两个接口短接,实现环路测试功能,通过接收数据
Buffer 查看收到的数据。

    附上这个SPORT代码的完整源码供参考: 链接: http://pan.baidu.com/s/1dDrexln 密码: 4m1x

    这一章也是有视频教程的,如下:



    如需清晰版可联系我。
联系我们 | 关于我们 | 免责声明 | 诚征英才 | 友情链接
Copyright 2019 All rights reserved  本网页版权属Open ADSP所有
北京海淀区中关村大街32号新中发市场3659 邮编100100
电话 18611096839 
粤ICP备14035876号-1