uart寄存器详解

在没有引入uart之前,由于没有os,我们写程序烧到开发板内执行后,并不能在程序的运行过程中打印一些提示信息告诉我们程序究竟运行了如何或者提供接口让用户去控制程序的运行路径,最后也只能通过物理现象去判断程序是否执行成功。
使用串口我们便可以实现开发板最基本的数据的发送和接收,实现同开发板的交互,控制程序的运行,并且在程序运行中打印出一些信息进行debug。实际上bootloader和kernel的控制台(nfs模式)都是通过uart实现的。由此我们可以发现uart在实际开发中是非常重要的。
uart寄存器详解
1.uart行控制寄存器ulconn(ulcon0, r/w, address = 0xec00_0000) ulconn的含义如表1所示。
表1 ulconn的含义
2.uart行控制寄存器uconn(ucon0,r/w address = 0xec00_0004) 寄存器详细说明如表2所示。
表2 uconn
续表
3.uart fifo 控制寄存器ufconn(ufcon0,r/w,address = 0xec00_0008) 寄存器详细说明如表3所示。
表3 ufconn的含义
4.uart modem控制寄存器umconn(umcon0,r/w,address = 0xec00_000c) 寄存器详细说明如表4所示。
表4 umconn的含义
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的含义

零知识证明的性质原理及应用实例介绍
恩智浦智能识别芯片荣获公安部“蓝盾奖”
Intel辟谣不会放弃10nm桌面版处理器
运放参数之交流电源抑制比详解
选购同轴馈线的误区盘点
uart寄存器详解
华为推出新声明式 UI 开发框架(ArkUI)
COB显示屏的定义、特点及发展前景详解
Diodes AP3302AQC4/4+ 27W Class A充电器解决方案详解
杰发科技MCU芯片应用新能源汽车的高端BMS系统设计方案
解读人工智能与新基建的关系
大数据时代还需要数据治理吗?如何面向用户开展大数据治理?
国家电网:建设国际一流绿色智能电网 服务京津冀协同发展
基于自动光学检测系统(AOI)设计
万里红亮相华为开发者大会,繁荣OpenHarmony生态建设
mac地址可以随便改吗
物联网应用和软件应用的区别是什么
细说拉曼光谱仪原理
诺基亚推65英寸智能电视,配备智能调光、宽色域和杜比视界
能源转型以电网为核心构建多能互补新能源系统