CH9434M串口拓展芯片 linux驱动 SPI通信不正常问题。

执行ch943x_probe接口中的ch943x_scr_test(&s->p[i].port);函数,

读取出来的寄存器值全是0xff。如下图。

问题:

1、使用CH9434M没有接外部晶振使用内部晶振,有没有影响。

2、使用的linux驱动是1.0版本的。

3、没有接reset引脚有没有影响。

4、CH9434M  SPI最大频率是16M?

5、SPI设备树配置是需要配置SPI模式吗?

6、linux驱动1.0版本配置的晶振是外部晶振,并分频。



1685006904194501.png

1685006904118007.jpg

1685006914230581.jpg



1、CH9434M支持外接晶振,驱动默认为外接晶振模式;可使用内部晶振,需在ch943x_probe函数中将ch943x_port_write(&s->p[0].port, CH943X_CLK_REG, CH943X_CLK_EXT_BIT | CH943X_CLK_PLL_BIT | clkdiv);修改为ch943x_port_write(&s->p[0].port, CH943X_CLK_REG, CH943X_CLK_PLL_BIT | clkdiv);

2、没有接reset引脚没有影响;

3、为排除SPI频率过高导致的通讯问题,可先降频使用2M测试,调通后再提高频率测试;

4、设备树不需要设置SPI模式,芯片默认模式3。


谢谢,

这是我抓到的时序图,感觉不对。CS和clk都有问题。您帮忙看下,万分感谢。1685060719401.jpg


只有登录才能回复,可以选择微信账号登录