带USB的低端STM32基本都是Full Speed USB,也就是USB 1.1。最简单的(推荐)驱动方式是搞USB CDC串口,STM32上所需要的代码基本和使用一个普通串口没有区别,避免了管理USB Endpoint,处理缓存,还有电脑端驱动的问题。电脑端程序只需要像对待一个高速串口一样写就行,基本是全平台兼容。这个串口跑到500KB/s没问题,稍加优化1MB/s也可以,但是需要准备足够的FIFO并且用好DMA,单通道100ksps 16bit这样的数据使用STM32完全可行。
想上High Speed USB也就是USB 2.0的话,好多MCU都只是带了USB 2.0的控制器和USB 1.1的PHY,需要真的跑2.0速度需要用ULPI外接USB 2.0 PHY,增加了成本,有时候甚至干脆搞片CY7C68013更方便。这里不得不提一下,Arduino DUE用的ATMEL SAM3X系列ARM片子,是内置USB 2.0控制器和PHY的,使用起来其实非常方便,速度到2MB/s没啥问题。
再高建议一步到位FPGA+CYUSB3014。特别提醒一下,这可能是我看到过定价最良心的板子了,FX3 SuperSpeed Explorer Kit,有FPGA板子的同学建议直接买个这个,轻松300MB/s以上传输速度。
当然万兆以太网+ZYNQ更爽。。。手动狗头。。。
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |