tag 标签: sport接口

相关博文
  • 热度 19
    2012-5-7 16:39
    1485 次阅读|
    0 个评论
    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) 不同模式下,寄存器配置值:   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 测试结果   优酷链接: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-1Akvusid=9026190872    
  • 热度 12
    2012-5-4 09:38
    1540 次阅读|
    0 个评论
    第6集更新,主要讲解了Blackfin的UART和SPORT接口。 板卡说明:http://www.openadsp.com/product_detail.asp?proid=29 淘宝网店:http://dsp-tools.taobao.com/ http://player.youku.com/player.php/sid/XMjg4Mjc1MTU2/v.swf 3.7 BF53x_UART 3.71 接口功能介绍 UART(Universal Asynchronous Receiver/Transmitter (UART) port)接口,是全双工通用的串行接口,由RX和TX两根线组成,扩展RS232芯片可以直接和计算机串口通讯,通常作为调试用的命令和数据通讯接口。 ADSP-BF53x的UART接口,除了支持标准串口功能外,还支持IrDA模式,在硬件上增加一个红外通讯模块可以进行红外数据传输。 当设置IrDA模式后,输出的波形会与原数据相反,且信号宽度变窄,下图是IrDA模式下和正常模式下的比较。   UART接口通讯的波特率配置值可以通过下面公式进行计算: BAUD RATE = SCLK/(16 x Divisor) 3.72 接口寄存器说明   寄存器 功能 UART_THR UART传输数据寄存器 UART_RBR UART接收缓存寄存器 UART_DLL UART波特率配置低8位寄存器 UART_DLH UART波特率配置高8位寄存器 UART_IER UART中断使能寄存器 UART_IIR UART中断识别寄存器 UART_LCR UART线路控制寄存器 UART_MCR UART调制控制寄存器 UART_LSR UART线路状态寄存器 UART_SCR UART暂存寄存器 UART_GCTL UART全局控制寄存器   3.73 例子代码分析        *pUART_GCTL=0x0009;                                                                                               *pUART_LCR=0x0080;// DLAB=1 允许访问DLL 和DLH        *pUART_DLL=div;     //将变量div的值写入波特率配置寄存器        *pUART_DLH=div8; //DLL DLH分别赋值        *pUART_LCR=0x0003;//  允许访问 RBR THR 和IER        *pUART_IER=0x0001;//  接收中断允许          *pSIC_IAR0 = 0xffffffff;            *pSIC_IAR1 = 0xf3ffffff;     // UART 中断等级设置        *pSIC_IAR2 = 0xffffffff;                                      register_handler(ik_ivg10, UART_ISR);           // 注册UART中断等级为10,标志为UART_ISR        *pSIC_IMASK = 0x00004000;   //使能UART中断          *pUART_THR=TXbuf ;           //向UART传输数据寄存器写数据 while(!(*pUART_LSR0x0020));             //等待传输完成   EX_INTERRUPT_HANDLER(UART_ISR)                   //UART接收数据中断函数 {            if(*pUART_LSRDR)          //判断是否有新的数据。        {               if(cont512)                //防止buff溢出,测试代码,将接收到的数据重复写入512字节的buff               cont = 0;                      RXbuf =*pUART_RBR;     //读取数据               cont++;        } } 3.74 代码实现功能 代码实现了配置波特率为9600,设定了数据接收中断,运行代码后,会将数组Txbuf中的字符串通过串口发送出,当接收到数据后,会进入中断函数读取数据。 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) 不同模式下,寄存器配置值:   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 测试结果   优酷链接: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-1Akvusid=9026190872