[求助]CH375设置USB模式的奇怪现象

今天测试CH375芯片出现的奇怪现象如下: 运行代码: version=GetVersion();//得到版本号,0B7H即为版本号为37H usb_status=CheckExist();//测试工作状态 usb_status=set_usb_mode(5); // 设置USB主机模式, 如果设备端是CH37X, 那么5和6均可

version得到的数值是0x37,是正确的; CheckExis()使用的测试数据是0x5A,得到的返回值为0xA5,照理也是没有问题; 但是第三句得到的usb_status的值却是0x6F,既不是成功(0x51),也不是失败(0x5F)。

我来回试了很多次,换成usb_status=set_usb_mode(6)也是一样

我自己分析,第一条正确,写命令函数和读数据没问题;第二条正确,写命令,写数据,读数据都没有问题

请大神帮忙分析一下原因

设置模式应该跟测试命令一样先写一个命令,再写一个数据然后读一下数据。你可以测试命令多做几个其他数据确保通讯没问题。


测试命令我尝试了好多组,一直都没有问题,可是,就是读操作状态的时候,出了既不是成功(0x51)也不是失败(0x5F)的情况。


你的软件在设置模式之前,也就是上电之后需要延时50MS以上的时间在设置模式。测试命令的时候建议你做2次,一次是发送0X55,读取到的数据应该是0XAA,在发一次0XAA,看下读取到的数据是不是0X55。如果这个都没有问题那就真正说明硬件没有问题。那么你设置模式的时候都不需要判断返回值的。


按照楼上的方法测试命令做了修改,一次发0x55,读数据是0xaa;发送0xaa,读数据是0x55,没有问题,但是设置模式,读回的数据任然是0x6F,不知道为什么


那你直接设置成模式2.用万用表测试下UD+和UD-对地的电压是多少?正常应该是UD+在3.3V左右,UD-为0V左右。


我设置成模式2,然后用万用表测试了UD+和UD-都是0V,这个应该是有问题的,是吧?


如果设置成功的话,UD+应该是3.3V,是吧?


说明你硬件还有问题,正常的话,UD+是3.3V。


UD+是0V可能的问题会是什么呢


检查一下你供电是否充足,USB信号线上尽量不要接电容电阻,看看是否其他干扰导致UD+,UD-不正常。


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