请问有CH569W通过USB3.0(模拟自定义CH372Device例程)与PC端通信成功的代码吗?可以分享下吗?
您好,请问您有没有做过基于模拟自定义CH372Device例程实现CH37599W与PC端通信的下位机程序
测试CH372Device例程即可,3.0收发可以参考这个帖子
https://www.wch.cn/bbs/thread-86707-1.html
你好,我使用CH372DebugTool这个工具进行上传的时候,总是上传失败,显示端点上传失败,如果设备断开过,请先关闭本程序,不过我设备没有断开,或者是点击上传后up处显示0,没有数据上传,还有就是有时长度那里我填写了4096,但是点击上传后会一直上传超过4096,如果方便的话可以微信联系:15040574115
您好。
可以检查下端点设置的突发级数,一般端点3设置的是3级突发,也就是每次上传3*1024的数据量,每发送完3072,可以再次点击上传3072,您可以先仔细看下4楼的链接理解下上下传的逻辑,可以先测试下端点1,可以点一次上传点一次下传交互发送,同样要注意突发级数。后续问题可以通过邮件联系我:dxy@wch.cn
您好,我使用CH372Debug做了一些测试,然后有些问题,我发您邮箱了,我的邮箱号是个人信息保护,已隐藏,麻烦您方便时看一下,谢啦
你好,打扰了,附件是我在CH372Device例程基础上写的程序代码,我有几个问题想向您请教一下, 我先描述下我做的事情及使用CH372Debug的现象
端点1:
我将端点1的描述符中的max burst size分别设置为4 和 1,并对USB30D_init()中端点1的USB30_OUT_Set()中对应包数量参数也分别设置为了4和1,但是这两种设置下,使用 CH372Debug的现象是一致的,现象如下:
必须先下传4包,之后上传4包,可以循环多次操作, 在上传时包长度必须填写1024,不可以填写大于或小于1024的其他值
端点2:
我将端点2的描述符中的max burst size设置为了3, 并对USB30D_init()中端点2的USB30_OUT_Set()和USB30_IN_Set()中对应包数量参数设置为3,测试现象如下:
初始化中只调用USB30_OUT_Set(), 可以一直下传,只调用USB30_IN_Set()可以一直上传(上传时包长度必须填写1024,不可以填写大于或小于1024的其他值)
均调用可以一直下传,也可以一直上传,也可交替(上传时包长度必须填写1024,不可以填写大于或小于1024的其他值)
端点3:
我将端点2的描述符中的max burst size设置为了3,并对USB30D_init()中端点3的USB30_OUT_Set()和USB30_IN_Set()中对应包数量参数设置为3
初始化中只调用USB30_IN_Set(), 可以上传3包(每包1024),之后点击上传不再生效
初始化调用UBS30_OUT_Set()和USB30_IN_Set(),出现了比较奇怪的现象,现象如下:
下传一包 上传一包:只可以进行3次,之后上下传均不再生效
先下传3包,再上传:在上传窗口会显示1024Byte的数据(只能进行1次),但是我在上传回调函数中的添加的打印信息并没有打印, 之后上下传均不再生效
先上传3包,再下传:下传处也是显示数量的增加(只能进行一次),但打印信息也没有打印,之后上下传均不再生效
问题:
问题1:比如端点1只能上传4包后再下传四包这样循环,而端点2可以一直下传 一直上传 或者交替进行,端点3再进行3包后就不能再进行操作,我在下位机上的这些操作几乎没太大不同,这个是不是和上位机程序设计有关? 还是下位机中的有些配置但是我没注意到
问题2:就是这个端点描述符中的max burst size 以及在初始化时在USB30_OUT_Set()/USB30_IN_Set()中设置的接受包数量,端点1就不符合这个,无论我设置多大,都是4包4包的,这个是为什么?
是个小白,第一次接触USB协议,问题有点多,还烦请您在有时间时帮我看下,多谢啦!
您好。
已经通过邮件回复您了。邮箱为:dxy@wch.cn
好的,看到了,多谢!
你好,我想问下关于批量传输中的突发级数的问题,比如我将突发级数设置为4,设置能够接收/发送4包,最后一包长度为1024,那我PC端能够直接将一个4096字节的数据包发送到设备上吗?还是我还是要分4个包依次发出
您好,应该是分四个包分别发出,每包的包长应满足描述符中的最大包长大小,即1024,不可超出