tiny4412 基础(六)串口

串口对嵌入式必备的调试工具。

串口的操作不外乎以下几点:

1.设置对应gpio复用为uart

2.设置时钟,设置波特率,数据位等基本参数

3.使能

对于tiny4412的串口特性,这里不赘述。对于ch0,tx/rx各由256bytes的FIFO。

时钟

对于clock:

 

由上可知uart的时钟可选XusbXTI,前面说过是24M板载晶振,也可以SCLK_MPLL,由CLK_SRC_PERIL0来决定的。

Base Address: 0x1003_0000
 Address = Base Address + 0xC250, Reset Value = 0x0001_1111
低4位表示uart0, 默认值是0x01,

UART0_SEL[3:0]RWControls MUXUART0
0000 = XXTI
0001 = XusbXTI
0010 = SCLK_HDMI24M
0011 = SCLK_USBPHY0
0101 = SCLK_HDMIPHY
0110 = SCLKMPLL_USER_T
0111 = SCLKEPLL
1000 = SCLKVPLL
Others = Reserved
MUXUART0 is the source clock of UART0.
0x1

即默认24M。
 

在这里可以先使用默认值, 然后把串口设置好后,反过来去读BL1里面设置情况。

上面分频器DIV由CLK_DIV_PERIL0寄存器控制

Base Address: 0x1003_0000
 Address = Base Address + 0xC550, Reset Value = 0x0000_0000

UART0_RATIO[3:0]RWDIVUART0 Clock Divider Ratio
SCLK_UART0 = MOUTUART0/(UART0_RATIO + 1)
0x0


因此,默认情况下SCLK UART时钟是24M

GPIO

对于tiny4412-1506板本来说,串口原理图:

最后连到核心板

UART_0_RXDInputReceives data for UART0XuRXD_0muxed
UART_0_TXDOutputTransmits data for UART0XuTXD_0muxed

XuRXD_0 对应GPA0[0]/UART_0_RXD 
XuTXD_0 对应GPA0[1]/UART_0_TXD


波特率

由上面分析,默认的SCLK UART = 24M

根据手册:

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

DIV_VAL  = (24 M)/(115200*16) - 1 = 12.02

UBRDIVn = 12(integer part of DIV_VAL)
UFRACVALn/16 = 0.2
Therefore, UFRACVALn = 3

即UBRDIVn = 12, UFRACVALn  = 3

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值