uart寄存器详解

存储技术

606人已加入

描述

  在没有引入UART之前,由于没有OS,我们写程序烧到开发板内执行后,并不能在程序的运行过程中打印一些提示信息告诉我们程序究竟运行了如何或者提供接口让用户去控制程序的运行路径,最后也只能通过物理现象去判断程序是否执行成功。

  使用串口我们便可以实现开发板最基本的数据的发送和接收,实现同开发板的交互,控制程序的运行,并且在程序运行中打印出一些信息进行debug。实际上bootloader和kernel的控制台(nfs模式)都是通过uart实现的。由此我们可以发现uart在实际开发中是非常重要的。

  UART寄存器详解

  1.UART行控制寄存器ULCONn(ULCON0, R/W, Address = 0xEC00_0000)

  ULCONn的含义如表1所示。

  表1 ULCONn的含义

  uart

  2.UART行控制寄存器UCONn(UCON0,R/W Address = 0xEC00_0004)

  寄存器详细说明如表2所示。

  表2 UCONn

  uart

  续表

  uart

  3.UART FIFO 控制寄存器UFCONn(UFCON0,R/W,ADDRESS = 0xEC00_0008)

  寄存器详细说明如表3所示。

  表3 UFCONn的含义

  uart

  4.UART MODEM控制寄存器UMCONn(UMCON0,R/W,ADDRESS = 0xEC00_000C)

  寄存器详细说明如表4所示。

  表4 UMCONn的含义

  uart

  5.发送寄存器UTXHn和接收寄存器URXHn

  这两个寄存器存放着发送和接收的数据,在关闭FIFO的情况下只有一个字节8位数据。需要注意的是,在发生溢出错误时,接收的数据必须被读出来,否则会引发下次溢出错误。

  6.比特率分频寄存器UBRDIVn

  用于串口比特率的设置。S5PC100引入了UDIVSLOTn,使得波特率的设置比早期处理器更加精确。下面以设置波特率为115200为目标,介绍设置方法。

  DIV_VAL = (PCLK / (bps*16 ) ) -1

  =66.75M/115200*16 - 1 //PCLK由系统时钟提供,此为设定66.75M

  =35.214

  UBRDIVn = 35(DIV_VAL的整数部分)。

  (UDIVSLOTn中1的数量)/16 = 0.2。

  (UDIVSLOTn中1的数量) = 3。

  根据手册中的建议3 0x0888(0000_1000_1000_1000b)11 0xDDD5(1101_1101_1101_0101b)选择“UDIVSLOTn = 0x0888; ”。

  7.串口状态寄存器UTRSTATn(UTRSTAT0,R,ADDRESS = 0xEC00_0010)

  寄存器详细说明如表5所示。

  表5 UTRSTATn的含义

 uart

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分