使用官方提供的ch432t linux驅(qū)動(ch432ser_linux/ch432.c at main · WCHSoftGroup/ch432ser_linux · GitHub),ch43x_spi_test測試無法通過。無論我們怎么設(shè)置spi的頻率,都不行。
但是,當我們在ch43x_spi_test接口中增加9秒的讀寫寄存器操作后,5MHz(含)以下的頻率,能夠正常通信,應用層上的串口也正常。此時如果把spi頻率大于5MHz時,ch43x_spi_test將失??;
??
tatic int ch43x_spi_test(struct uart_port *port)
{
.....
// 增加start。。。。
u8 cnt=3'
while(cnt--)
{
ch43x_port_write(port, CH43X_SPR_REG, 0x55);
mdelay(1500);
ch43x_port_read(port, CH43X_SPR_REG);
mdelay(1500);
}
// 增加end。。。。
ch43x_port_write(port, CH43X_SPR_REG, 0x55);
val = ch43x_port_read(port, CH43X_SPR_REG);
if (val != 0x55) {
dev_err(&s->spi_dev->dev, "UART %d SPR Test Failed.\n", port->line);
return -1;
}
....
}