UART16550 IP core笔记二
XIN时钟
表示use external clk for baud rate选型,IP核会出现Xin时钟引脚
XIN输入被外部驱动,也就是外部时钟源,那么外部时钟必须要满足特定的要求,就是XIN
的range范围是xin<=S_AXI_CLK/2,如果不满足这个条件,那么AXI UART16550这个IP核就
不能正确的运行。
XIN时钟如果太快,也就是超过系统时钟的一半,UART可能无法在一个时钟周期内完成这些任务,
从而导致数据的丢失或者错误。
16550模式编程步骤
1.由于LCR线控制器的bit7对register space的所有寄存器都有影响,所以首先要对LCR寄存器
的bit7进行配置;
2.通过LRC寄存器,然后设置数据位是5bit,还是7bit,还是8bit;
3.通过LRC寄存器,来设置Divisor latch access bit设置除数锁存访问位置;
4.中能使能寄存器写入之,运行哪些条件下产生中断,比如是否使能接收数据产生中断,是否
发送缓冲器为空的时候产生中断,是否发生极性错误产生中断等等。
5.配置FIFO,写FIFO控制寄存器
启用FIFO,清除FIFO,设置接收FIFO的触发级别,多少byte触发中断
6.设置uart波特率
写Divisor latch除数锁存,先写最低有效字节,再写最高有效字节,用于设置正确的波特率
7.处理中断
当AXI UART 16550触发中断的时候,软件必须读取相关寄存器,处理数据,然后清除中断标识。
参考:https://icode.best/i/815770382847922