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

2012-5-7 16:38 1382 18 18 分类: 消费电子

******* classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" height="360" width="420">http://player.youku.com/player.php/sid/XMjg4Mjc1MTU2/v.swf

第6集更新,主要讲解了Blackfin的UART和SPORT接口。

3.7 BF53x_UART

3.71 接口功能介绍

UART(Universal Asynchronous Receiver/Transmitter (UART) port)接口,是全双工通用的串行接口,由RX和TX两根线组成,扩展RS232芯片可以直接和计算机串口通讯,通常作为调试用的命令和数据通讯接口。

ADSP-BF53x的UART接口,除了支持标准串口功能外,还支持IrDA模式,在硬件上增加一个红外通讯模块可以进行红外数据传输。

当设置IrDA模式后,输出的波形会与原数据相反,且信号宽度变窄,下图是IrDA模式下和正常模式下的比较。

12.jpg

 

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=div>>8; //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_LSR&0x0020));             //等待传输完成

 

EX_INTERRUPT_HANDLER(UART_ISR)                   //UART接收数据中断函数

{    

       if(*pUART_LSR&DR)          //判断是否有新的数据。

       {

              if(cont>512)                //防止buff溢出,测试代码,将接收到的数据重复写入512字节的buff

              cont = 0;       

              RXbuf[cont]=*pUART_RBR;     //读取数据

              cont++;

       }

}

3.74 代码实现功能

代码实现了配置波特率为9600,设定了数据接收中断,运行代码后,会将数组Txbuf中的字符串通过串口发送出,当接收到数据后,会进入中断函数读取数据。

 

 

PARTNER CONTENT

文章评论0条评论)

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