CH563 USB设备FIFO IN空中断异常

发现USB设备的例子中 FIFO IN的空中断总是关闭的,这样怎么判断何时可以继续往FIFO中写数据呢??


我这边的实现是打开相应FIFO IN的空中断,在空中断中调用USBDev_WR_FIFOx 函数往FIFO中写数据

我的测试代码是FIFO0 对应端点1 中断类型 IN,FIFO1 对应端点1 BULK类型 IN,测试发现FIFO0 产生空中断,FIFO1 也会产生空中断,在 FIFO1 的空中断中,执行USB_DEV_MASK_INT_GROP1 |= RB_MF1_IN_INT;  禁用FIFO1的中断也不行,测试代码在附件CH372.rar中,对应的上位机接收程序在附件test中,双击运行test.exe即可,麻烦帮忙看下哪里出的问题,谢谢


还有一个问题,CH563的USB高速接口,100M以太网,以及PARA 外部总线,你们官方测试的最大速度分别能运行到多少??


icon_rar.gifCH372.rar

icon_rar.giftest.rar


USB驱动程序可以用zadig安装,选择winusb驱动



下图是打印的USB中断过程日志,每次FIFO0空中断,都会伴随一个FIFO1空中断,在FIFO1空中断中设置禁止中断位也没有效果,下次依然会和FIFO0同时中断

image.png


沁恒管理员:

? ? ? 你好!最近我在做一个8路485的产品,硬件架构是这样的:ch563用PARA总线连接了一片CH438,外加8片485 PHY收发器。软件架构:CH563的USB通过IAD枚举出8个CDC设备,这一步已经完成,目前在win10 系统上几经枚举出8个COM口。

??????目前遇到的问题是CH563的USB只有4个FIFO,每个FIFO 512字节,而一个CDC至少需要2个设备端点(IN和OUT,中断传输我用缺省端点0),也就是说我目前需要启用8路IN端点和8路OUT端点才能实现8组独立串口,我看了所有的CH563的例程都没有同时启用8路端点,看了CH563DS1.pdf手册很多遍让我很迷惑,CH563的USB到底有几个物理端点?有几个逻辑端点?例程和说明书里看到有8个IN和OUT端点,但是只有4个FIFO,并且只有4路FIFO中断(看到了FIFO的短包中断不知道如何用j_0065.gif,或者FIFO可以分成2~3块,怎么用?很迷惑!!!)。

????希望沁恒的工程师能提供个例程参考下,或者告知如何同时启用所有端点并准确识别FIFO对应的中断。


补充下联系方式:个人信息保护,已隐藏个人信息保护,已隐藏


这个应用方案和CH348不谋而合,可以看下是否可以直接满足需求:https://www.wch.cn/products/CH348.html


尴尬了,原来有现成的方案。

不过还是想弄清楚CH563的USB FIFO问题,方便以后使用


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