本人用ch375做usb host读取我们自己的一个D11做的usb HID类的仪表,可惜连枚举都不能成功。而ch375 接u盘,扫描仪都能枚举,D11也能被pc正常枚举,并且ch375也不能鼠标键盘。
后来没法只好弄了套sl811,上面的问题也就都解决了,D11,u盘,mouse,keyboard都能正常枚举!
是不是375不能接hid 或者和 D11冲突?
我可很想用国货啊!
本人用ch375做usb host读取我们自己的一个D11做的usb HID类的仪表,可惜连枚举都不能成功。而ch375 接u盘,扫描仪都能枚举,D11也能被pc正常枚举,并且ch375也不能鼠标键盘。
后来没法只好弄了套sl811,上面的问题也就都解决了,D11,u盘,mouse,keyboard都能正常枚举!
是不是375不能接hid 或者和 D11冲突?
我可很想用国货啊!
HID 的鼠标键盘,是低速的,CH375正常情况,工作在12M,USB1.1全速。如果你想用CH375读HID鼠标和键盘,那你得将CH375的晶振降到1.5M,另外D+,D-,两线交换,跟CH375接口的单片机,在接口时序上也得做相应的调整,增加延时。 跟D11没有冲突!
我的D11可是接的12M晶振!并且811接48M晶振却可以读 D11,mouse,keyboard!!
811应该用12MHz的晶体,为何用更贵的48MHz
48M更稳定,以后再换成12M,为什么375+D11(12M)就不行?
D11程序是你做的吗,能将CH375不能用的错误信息贴出看看,什么错误?好分析找出原因
引用回复:HID 的鼠标键盘,是低速的,CH375正常情况,工作在12M,USB1.1全速。如果你想用CH375读HID鼠标和键盘,那你得将CH375的晶振降到1.5M,另外D+,D-,两线交换,跟CH375接口的单片机,在接口时序上也得做相应的调整,增加延时。 跟D11没有冲突!
这个你做了吗?
D11的资料我看过,是全速协议,CH375本身是可以读取,只是未做过这个实验,你说你的不能读,能将具体现象贴出来吗??
源代码见附件 当我接u盘时,一切正常,log如下 begin set usb host mode in main() line=133: wait_interrupt():CH375_INT_WIRE= H line=138:wait_interrupt() CH375_INT_WIRE= L usb connect in main()! reset usb device in main() line=138:wait_interrupt() CH375_INT_WIRE= L usb reconnect after reset begin enum device in main() line 314:in device_enum():get_descr line=133: wait_interrupt():CH375_INT_WIRE= H line=138:wait_interrupt() CH375_INT_WIRE= L line 317:device_enum():get_descr status =0x14h line 322:device_enum():get device descr (len=18):12 01 10 01 00 00 00 10 d8 0d 13 c0 04 01 01 02 00 01 line=133: wait_interrupt():CH375_INT_WIRE= H line=138:wait_interrupt() CH375_INT_WIRE= L line 331:set_addr(3)=0x14h line=133: wait_interrupt():CH375_INT_WIRE= H line=138:wait_interrupt() CH375_INT_WIRE= L line 336:get configuration descr(len=32):09 02 20 00 01 01 00 80 32 09 04 00 00 02 08 06 50 04 07 05 82 02 40 00 00 07 05 02 02 40 00 00
当我接我的D11时,不能枚举,超时:status 有时是0x28h有时是0x20h ,log如下 begin set usb host mode in main() line=133: wait_interrupt():CH375_INT_WIRE= H line=138:wait_interrupt() CH375_INT_WIRE= L usb connect in main()! reset usb device in main() line=138:wait_interrupt() CH375_INT_WIRE= L usb reconnect after reset begin enum device in main() line 314:in device_enum():get_descr line=133: wait_interrupt():CH375_INT_WIRE= H line=138:wait_interrupt() CH375_INT_WIRE= L line 317:device_enum():get_descr status =0x28h enum error
wch的人看看啊,我的源代码有问题吗?我用的是你们的串行u盘模块!
在philips官方网上说D11不建议用,好不容易找到资料,看后,CH375应该可以支持.你的现象是USB超时,可能原因是速度不配:如果你的D11是IIC串行I/O,程序跑得很慢,用慢的SL811没问题,CH375内部固件比SL811快,D11可能跟不上.试试下述方法:像SL811一样,用MCU跑外部固件接CH375,不用CH375的命令GET-DESCR. 或者检查D11的程序是否太慢
我自己重写了外部固件了,用你们的u盘模块更新程序 更新了固件程序,代码可见9楼的程序,里面加了很多延时。而811的程序却没有任何延时!
不明白不明白真的不明白
我是说CH375的內部固件快.刚发1个USB包就开始下一个.可能D11-MCU跟不上,so timeout
有没寄存器修改得慢一些?