[求助]CH374枚举HUB

[font=Arial][size=3]hcn 你好。 已经将你发来的工程编译并做实验,但是出来的数据还是一样的错误。 我另外换了个GL850A来枚举,结果还是跟我原来程序读出来的一样。都是固定那几个字节的错误。 另外枚举鼠标仍然是正确的。请问这些例程之前实验时枚举的HUB都是什么型号的呢?我试了一下别的HUB,芯片是81181D,读出结果是正确的。 谢谢! [/size][/font]


你把你的HUB接到计算机上面去,在设备管理器里面把EHCI这个主机控制器关闭掉,然后在计算机上面插入HUB,使用BUSHOUND软件来抓取下数据,和你枚举的数据是否一样?


[font=Arial][size=3] 刚刚按你说的做了一次,插上HUB后停用了HUB的控制器,然后拔插HUB,BUSHOUND 没有反应,需要启用这个WINDOWS内我这个HUB所连接的控制器才会有信号。 另外,我试过手头上有的USB2.0的设备,用CH374抓出来的数据都是有这个错误,起码第2、3个字节,也就是协议号(应该为0x00,0x02)都错了。而1.1,1.0的设备目前都是可以正常运行的。 还有,对设备的供电是否需注意些什么?我看不少板子上都给VCC加了个 2 欧的电阻,然后又对地加了100UF的电容,是要是设备的上电滞后么?请问是为何? 谢谢! [/size][/font]


不是要你把USB都禁止掉,是需要你把USB2.0的控制器给禁止掉,来判断下你的设备是否有问题。


[font=Arial][size=3]你好。 手头上的HUB都是可以正常工作的,而且已经试了好几个不同的USB2.0设备了,用CH374抓描述符都有问题。另外,手头有一块STM32的板子(支持 2.0 协议),把其当做设备来枚举,数据也是错误的。请问,是否CH374对2.0的支持有问题。PDF中所说的兼容USB2.0是怎么实现的呢? 或者究竟是我哪里做错了呢? 谢谢! [/size][/font]


[font=Arial][size=3]请各位技术支持帮帮忙,老大让我换芯片,我不想换,我坚信CH374还是可以做好这个项目的。 网上虽然可以查到不少人说完成什么什么项目,但都没有明说是2.0协议的,我还是想试试,请各位帮帮忙。谢谢了! [/size][/font]


如果你调试不出来的话,那么可以把硬件快递到我司我们技术人员可以帮您调试。


[font=Arial][size=3]现在有新的问题,我通过374向HUB获取描述符,只要要求的字节数少于15个,返回的数据就是正确的。 例如,我让374发送命令:0x80, 0x06, 0x00, 0x01, 0x00, 0x00, 0x0E, 0x00 就可以返回14个正确的字节 0x12 0x01 0x00 0x02 0x09 0x00 0x00 0x40 0xE3 0x05 0x08 0x06 0x01 0x09 若要求字节数超过15个,则返回的数据就会出错。 以下是要求返回15个数据的: 0xB4 0x01 0x02 0x02 0x0D 0x04 0x06 0x44 0xAB 0x15 0x08 0x86 0x41 0x09 0x28

弱弱的问一句:如果麻烦贵公司调试,大概时间要多久啊?快5.1了。。。 [/size][/font]


你把这个函数这样修改下: INT8 HostCtrlTransfer374( PUINT8 ReqBuf, PUINT8 DatBuf, PUINT8 RetLen ) // 执行控制传输,ReqBuf指向8字节请求码,DatBuf为收发缓冲区 // 如果需要接收和发送数据,那么DatBuf需指向有效缓冲区用于存放后续数据,实际成功收发的总长度保存在ReqLen指向的字节变量中 { UINT8 s, len, count, total; BOOL tog; u8 data_buf[8]; Write374Block( RAM_HOST_TRAN, 8, ReqBuf ); Read374Block( RAM_HOST_TRAN, 8, data_buf ); 看下你发送15个字节的时候,写进缓冲区的数据是多少?好像你的硬件上面哪边还是有点问题。 如果快递过来的话,尽量在51前给你解决这个问题,但是取决于快递公司的快慢。


[font=Arial][size=3]你好,谢谢回复。 是这样的,刚我试过了,读回要374发送的数据为: 0x80 0x06 0x00 0x01 0x00 0x00 0x0E 0x00 或者: 0x80 0x06 0x00 0x01 0x00 0x00 0x0F 0x00 都是发送正常的。 好吧,那我还是发过去把。邮件联系吧,谢谢! [/size][/font]


刚看了你发的原理图,在你的原理图上面,RAM和CH374会出现总线干扰的,建议你先把RAM去掉之后,直接使用单片机内部RAM进行枚举,看下会不会有问题。


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