uart寄存器详解

uart寄存器详解,第1张

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

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

  UART寄存器详解

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

  ULCONn的含义如表1所示。

  表1 ULCONn的含义

  uart寄存器详解,uart寄存器详解,第2张

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

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

  表2 UCONn

  uart寄存器详解,uart寄存器详解,第3张

  续表

  uart寄存器详解,uart寄存器详解,第4张

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

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

  表3 UFCONn的含义

  uart寄存器详解,uart寄存器详解,第5张

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

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

  表4 UMCONn的含义

  uart寄存器详解,uart寄存器详解,第6张

  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寄存器详解,uart寄存器详解,第7张

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2471464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存