内容说明:
使用的示例程序为:
链接: USB通用知识点集合
解压后包含两个代码工程,导入MRS:
运行代码:
分别编译工程,将两个HEX分别烧录到CH569评估板中。我这里是吧HSPI_HOST.hex烧录到了下面的板子,CH569_BULK_HSPI_Lib.hex烧录到了上面的板子,然后测试的时候USB线接上面的板子就可以了,实测交换烧录进去也行。
要注意板子要用两根杜邦线,把上下两个CH569板子的LED1和LED2的阴极连起来,这个引脚在代码中是用作了软件流控。
用USB线连接电脑,在设备管理器中识别出设备:
这里我使用了bus hound来测试收发功能,在device界面下双击CH372设备,打开它
下传
芯片例程代码默认用来收发数据的都是endpoint1,收发长度4K。配置好数据收发长度为4096,中间的窗口选中endpoint 1 OUT,然后就可以点击RUN了,此时电脑会启动下发4K数据。
如果数据发送成功,界面左下角会显示绿色complete,可以一直一直点RUN
上传
在软件界面中选中endpoint 1 IN,长度依旧4096,点击RUN
比较奇怪的是这个时候左下角一直显示running,似乎无法完成IN传输。文章来源:https://www.toymoban.com/news/detail-446432.html
问了下wch那边,说是不满足应单片机里面应用层的代码逻辑可能会导致这个。需要确保OUT满16K,IN才能成功,同样的IN也要传输满16K。这里是因为两个CH569之间的HSPI传输为了加快速度,使用了HSPI突发,突发长度是16K,需要单个方向上USB传输满16K,等HSPI也发送完之后,才能切换传输方向。
这个是由代码里面的这两个值决定的,同时也要确保两个代码工程里面这个值相匹配,否则HSPI接口的传输就会出错。
把评估板重新拔插下,再打开bus hound来测试收发,这次OUT 4096,连续点了4次,4096x4,发送满16K之后,这个时候,选中IN,点击RUN,果然显示complete,然后再点3次,完成1个方向上的16K传输。文章来源地址https://www.toymoban.com/news/detail-446432.html
到了这里,关于CH569 USB批量传输应用示例(fpga<->PC)学习笔记(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!