之前用CY68013,这个做数据采集之类的可以,但是做项目我需要提取端点数据其51内核是不满足需求的。我想问M3或者M4的问题是: 我能用它们来虚拟一个U盘吗?还有是不是其控制传输和块传输的枚举过程都需要用官方的库来编写,然后我看了下原子M3关于USB的程序,对于其端点的操作不是很明白,M3,M4提供的OTG有端点缓存吗?能直接操作吗?比如说2.0块传输阶段,我每次发512字节,这512字节是经过OUT ENDPOINT的,如果有ENDPOINT BUFFER,那我自然就可以直接从BUFFER里面把数据提取出来,像68013比如说你要提取其中一个字节,就设置一个变量等于 ENDPOINTBUF[X] 就可以了,我看了下数据手册,M3,M4对这方面说得不是很清楚,所以像问下大家做过这方面的人。
主要是那个缓存里面的数据可以在传输过程中提取出来吗?
我看了下MDK的例程,貌似是开辟RAM来做端点吧,然后用户可以自己建一个USERBUF? 有个函数好像是PMA TO USERBUF和 USERBUF TO PMA的,PMA是为什么我还是不是很理解,貌似用户可以直接利用那个端点的,那我虚拟U盘(类似圈圈用PDI做的那个),回复SCSI指令还有BOT协议之类的,应该可以直接操作端点回复我想回复的数据吧?
还有,STM32的USB库是开源的吧? |