我用ch375a芯片做u盘的数据读写设计有这么几个问题想请教各位前辈 1.当我向ch375a发送64个数据后再发送一个DISK_WR_GO命令后,如果单片机发现ch375a有中断信号那么请问对这个中断信号的应答是不是一定的时间限制比如说在多少时间内应完成对该中断信号的应答(发送GET_STATUS命令)?,再就是当我将该中断信号取出发现前一步写操作成功那么请问对单片机什么时候进行下一次的64个数据的写操作有没有时间上的限制,有的话是多少?2.我在阅读公司提供的资料时发现有一个命令操作码为0x50资料上介绍说为对USB存储器执行BulkOnly传输协议的命令,请问在使用ch375a芯片的内嵌BulkOnly传输协议时是不是要先调用这一个命令,如不是那吗这条命令的作用时什么。3.ch375a可以完成对u盘的自动配置,请问它是不是可以对任一种u盘进行配置,如果可以对u盘进行配置那么时是不是在配置成功后即可以对u盘进行数据存储操作?最近一直在调试电路板,遇到这么几个问题,恳请各位前辈给我指导一下。[Emot]10[/Emot]
各位前辈给指导一下啊 小弟第一次做usb 谢谢各位了
对u盘进行配置的问题,建议你可以找一些介绍 USB 协议的资料看一下! 传输数据的问题,你可以参考一下 MC51 单片机的相关示例程序!
谢谢,那对于一个问题,当中断信号产生后我可不可以等一段较长时间(比如4ms以上)以后再去响应这个中断信号,也就是说等一段较长时间再去发送下一组64个数据。
实际在发送数据的时候,在每一个64字节之间打断的时间不能超过2MS,否则的话U盘会挂起。
我程序是用c语言写的 对dpyr赋值 然后对指定的了dptr进行读写操作, 读写后数的据放在一个缓冲数组里。执行的时候发现每一个hc[] = *dpyr要用掉40us多的时间(搞不清楚怎么这么慢,我看果编译后的汇编源码,很复杂),在发完一组64字节数据后,要从外部ram中取出下一组要发送的64字节数据,如果等到64个字节全部从外部ram中取出的话要得掉4000多us,单片机用的是at89s52 晶振是11.0592mhz,这样就不符合2ms的要求。有什么方法可以解决吗 嵌入汇编 或是 用高频的晶振 ?如果直接用汇编写是不是速度更块一些
实际程序你在写数据的时候,是首先将数据从外部RAM取出来,取出来之后在将数据写到CH375去的,整个的时间大概在10US左右(写一个字节),所以不存在你说的先取64字节在将64字节写下去这个一说。