CH395Q初始化问题

本人现在用CH395Q,与GD32硬件SPI通信,现在遇到的问题是CH395初始化函数执行完返回0x00,中途也能检测到返回0x10(即忙状态),但初始化时间过长,且Elink管脚电平始终为高电平没变过。用官方的demo改的程序,原本不能正常通讯,后来在命令与数据及数据与数据间根据手册加了点延时,单片机与CH395Q通讯正常(能正常取反),ip地址子网掩码默认网关也都设置正确且能通过指令读出来。几个问题麻烦解答:

(1)Elink上电平何时会变化?是i = CH395Init();执行完之后就应该变化吗?还是获取PHY状态后、打开socket后?最好能详细到函数。

(2)初始化函数里面发送初始化指令后,有个获取初始化状态的循环,我改成了20ms能返回0x00,i显示在110左右,也就是初始化执行力2s多(延迟函数用示波器看过可以保证准确),那个延时改短了会返回未知错误,循环次数i不大于200。请问执行时间过长时会自动返回0x00吗,有什么原因会导致这种情况?

(3)获取PHY连接状态前的过程如上文,看demo里没加CH395CMDSetPHY();这个函数,应该是自动协商吧,我没加这个函数时获取PHY状态返回断开,加了之后又能返回我设置的状态(比如PHY_10M_FLL),这是为什么?



  1. 当PHY连接上之后,ELink就会变化。这样网口灯会亮。

   2. 初始化代码中,如果200次没有获取到命令状态是会返回FA未知错误。并不会因为时间过长而返回00。

3. PHY是自动协商的。在网线没连接之前,phy状态都是断开。

如还有问题可以拨打电话025-52638373


我也遇到phy


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