瑞萨 RX130 串口调试日记

瑞萨RX1303AxLF芯片(48pin)串口异步通信

瑞萨 RX130 串口调试日记_第1张图片

本文中串口参数为:选择SCI12对应的收发引脚,波特率19200, 数据位:8位,停止位:1位,校验位:无,流控:无;

芯片时钟配置如下:

串口配置如下:瑞萨 RX130 串口调试日记_第2张图片

瑞萨 RX130 串口调试日记_第3张图片

注意:通过该界面配置的波特率其实是一个固定值,在代码里都是0x0C,也就是说你在此处所选择的波特率很有可能没有被设置成功,需要你手动去修改;其次,此波特率所对应的写进寄存器SCI12.BRR里的值是根据手册里的公式进行计算得出的,但是根据我的验证,当时钟源选择为高频HOCO (32MHZ)时,根据公式是可以准确算出波特率所对应的值,但是,如果选择Main Clock (8MHZ)时,根据所选的波特率代入公式里是不能够准确算出其对应的值。我一开始是按照默认的配置,即选择了main clock (8MHZ),通过串口工具按照所选择的波特率却根本不能实现正常通讯,这个问题困扰了很久,直到各更换了时钟源配置才正常通讯;

瑞萨 RX130 串口调试日记_第4张图片

瑞萨 RX130 串口调试日记_第5张图片

其中SMR.CKS[1:0] 设置为 0  1;SEMR寄存器的BGDM设置为0,ABCS为1;因为是异步通讯,故而套用的公式为


在选择高频时钟作为时钟源的情况下:PCLKB = PCLK = 32MHZ,B = 19200bps,n = 1;得出N = 25,即0x19;通过串口工具验证无误,可以正常通信;

瑞萨 RX130 串口调试日记_第6张图片

而在选择默认配置的Main Clock作为时钟源的情况下:PCLKB = PCLK = 32MHZ,B = 19200bps,n = 1;得出N = 25,即0x19;串口通信得到的是一堆乱码;

瑞萨 RX130 串口调试日记_第7张图片

串口配置部分的代码如下:

1.HOCO (32MHZ,PCLK = 32MHZ

瑞萨 RX130 串口调试日记_第8张图片

2.默认Main Clock (8M,PCLK = 32MHZ)

瑞萨 RX130 串口调试日记_第9张图片

此时根据手册的说明得出PCLKB = PCLK = 32MHZ,就算我把PCLK = 8 MHZ代入公式,串口通信结果依然是不正常的;

瑞萨 RX130 串口调试日记_第10张图片

以mainclock作为时钟源,串口配置部分和之前的高频作为时钟源是完全一样的,根据以上推测,手册中的公式并不完善,在main clock作为时钟源时我根据手册公式得出的结果是无法让串口正常工作的,至少我是这么认为的;各位有兴趣的话可以试一试,自己去验证一下;

                                                                                        Author:Flynn

                                                                                                        2018年4月2日    下午13:30


你可能感兴趣的:(瑞萨RX130系列芯片开发日记)