您尚未登录。

楼主 # 2023-02-17 17:21:06

谢图图
会员
注册时间: 2023-02-15
已发帖子: 5
积分: 0

V3S串口921600波特率使用

使用全志V3S,需要使用串口波特率921600,最后发现波特率只有750000,无法继续上调。经过学习了解到应该是uboot中时钟选择问题,按照之前大佬们的讨修改u-boot/arch/arm/macg-sunxi/clock_sun6i.c中:

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_PLL6|	//原本为APB2_CLK_SRC_OSC24M
	       APB2_CLK_RATE_N_1|
	       APB2_CLK_RATE_M(1),
	       &ccm->apb2_div);

	/* open the clock for uart */
	setbits_le32(&ccm->apb2_gate,
		     CLK_GATE_OPEN << (APB2_GATE_UART_SHIFT +
				       CONFIG_CONS_INDEX - 1));

	/* deassert uart reset */
	setbits_le32(&ccm->apb2_reset_cfg,
		     1 << (APB2_RESET_UART_SHIFT +
			   CONFIG_CONS_INDEX - 1));
#else
	/* enable R_PIO and R_UART clocks, and de-assert resets */
	prcm_apb0_enable(PRCM_APB0_GATE_PIO | PRCM_APB0_GATE_UART);
#endif
}

和/u-boot/include/configs/sunxi-common.h中的

/* Serial & console */
#define CONFIG_SYS_NS16550_SERIAL
/* ns16550 reg in the low bits of cpu reg */
#define CONFIG_SYS_NS16550_CLK		600000000   //原本为24000000
#ifndef CONFIG_DM_SERIAL
# define CONFIG_SYS_NS16550_REG_SIZE	-4
# define CONFIG_SYS_NS16550_COM1		SUNXI_UART0_BASE
# define CONFIG_SYS_NS16550_COM2		SUNXI_UART1_BASE
# define CONFIG_SYS_NS16550_COM3		SUNXI_UART2_BASE
# define CONFIG_SYS_NS16550_COM4		SUNXI_UART3_BASE
# define CONFIG_SYS_NS16550_COM5		SUNXI_R_UART_BASE
#endif

修改后串口终于能以921600波特率发送数据了,但不知道为何V3S变得十分卡顿。是否是由于修改APB时钟导致其他功能异常?有没有大佬能帮忙解答下或者有无大佬成功修改过v3s串口波特率为921600?非常需要帮助

离线

楼主 #1 2023-02-22 10:30:31

谢图图
会员
注册时间: 2023-02-15
已发帖子: 5
积分: 0

Re: V3S串口921600波特率使用

有没有大佬指点一下呢

离线

楼主 #3 2023-03-02 17:45:50

谢图图
会员
注册时间: 2023-02-15
已发帖子: 5
积分: 0

Re: V3S串口921600波特率使用

Alexey_77 说:

for 921600 baud 15MHz clock is enough....

是指设置15Mhz就够了吗?那请问需要选择哪个时钟?麻烦能告知下吗?

离线

页脚

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

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