您尚未登录。

楼主 # 2022-07-09 00:42:10

histimes
会员
注册时间: 2022-05-31
已发帖子: 30
积分: 30

V3s主线版uart波特率能超过115200吗?

我想让uart1在230400波特率下输出
在不分频的情况下,输出的是乱码
但是在115200波特率下输出是没问题的

查资料以后按照这里的方法进行了分频:https://wiki.sipeed.com/soft/Lichee/zh/Zero-Doc/Drive/UART.html
分频以后,发现有2个问题
1.uart1的在230400波特率下输出不是乱码了,但是信号不稳定,每200个字节就有一个错的
2.如果在uart0控制台进行键盘输入,就会出现如下的错误
buildroot login:  !"#$%&'()*+,-./01234[ 4688.082081] serial8250_interrupt: 10186593 callbacks suppressed
[ 4688.082091] serial8250: too much work for irq36
[ 4688.092845] serial8250: too much work for irq36
[ 4688.097636] serial8250: too much work for irq36
[ 4688.102425] serial8250: too much work for irq36
[ 4688.107215] serial8250: too much work for irq36
[ 4688.112002] serial8250: too much work for irq36
[ 4688.116792] serial8250: too much work for irq36
[ 4688.121579] serial8250: too much work for irq36
[ 4688.126368] serial8250: too much work for irq36
[ 4688.131155] serial8250: too much work for irq36

请问是什么原因呢?如果要波特率超过115200,有什么办法呢?



--------------------下面是分配的操作方法-----------------------------------------------------------------------
https://wiki.sipeed.com/soft/Lichee/zh/Zero-Doc/Drive/UART.html
一、波特率分频问题#
为了串口通信稳定,一般要求波特率误差在2.5%以内。
V3S的uart是挂在APB2下,而APB2时钟是24M,所以对一些高速率的波特率,难以分频到合适的频率。
以921600为例,下面进行修改:
进入 uboot的arch/arm/mach-sunxi/clock_sun6i.c,修改uart时钟:
void clock_init_uart(void)
{
#if CONFIG_CONS_INDEX < 5
        struct sunxi_ccm_reg *const ccm =
                (struct sunxi_ccm_reg *)SUNXI_CCM_BASE;

        /* uart clock source is apb2 */
        writel(APB2_CLK_SRC_OSC24M|      //这里改为APB2_CLK_SRC_PLL6,从内部pll6时钟分频
            APB2_CLK_RATE_N_1|               //这里预分频不变
            APB2_CLK_RATE_M(1),
            &ccm->apb2_div);
pll6时钟默认为600MHz,可以分出比较高的串口波特率。

600/0.9216/16=40.69, 舍入为41,相对误差为0.75%

/* ns16550 reg in the low bits of cpu reg */
#define CONFIG_SYS_NS16550_CLK          24000000    //这里改为600000000
#ifndef CONFIG_DM_SERIAL

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn