CH554使用端点0进行DFU下载突然出现传输异常问题

目前,使用CH554实现了DFU框架功能

测试发现

1、当下载文件几十K的情况下,整个DFU下载流程都ok

2、当文件到达300k以上的情况下,偶尔能够下载成功,但很大概率出现xact error或者stall pid错误的问题


关于端点0的传输,我是使用移植的是sdk中的HID示例,硬件使用的是CH554的开发板。


因为软件上的升级过程都是一个重复性的代码逻辑,出错时代码中不至于其他寄存器导致失败的问题。

所以给我的直观感觉是跟下载文件大小有关,文件大小决定了下载的时间长度

所以是否存在这种情况,CH554在长时间端口0通信下,会有硬件上面的问题?

能否提供一种方式,来定位此问题


谢谢



icon_rar.gifBus Hound日志.zip


USB通讯功能本身是没有问题的。

但是要注意如果使用端点0通讯,要尤其注意代码效率问题,因为setup事务是会自动接收的。

如果ep0在某个控制传输时应答了STALL,那要注意后续进入USB中断时要及时清除STALL状态,不然可能造成意外的STALL应答。即可以在USB中断服务刚进入的地方,将ep0的应答改成NAK,在后续判断处理中再配置成想要的应答状态。


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