我有一个midi-u*** EZ-USB FX1的应用,它一直没有问题,使用EP1
通信。现在我只想从EP1和EP2出来并使用6。尝试了好几天,没有结果。那是,我得到的所有通信工作正常,并分组进行工作,少量的数据(可能是所有64字节的包大小如下)。任何建议如何我应该使用EP2在“港式”应用(即不使用任何外部FIFO的)?这个问题必须是双缓冲相关的,或者也许是一个错误,我如何实现这个“手动”模式。什么很奇怪:工作很好当我下载我的固件对USB和运行它从RAM。从EEPROM不工作运行相同的代码(从终端读取数据损坏,当数据通信涉及超过64字节)另一件事我不懂:数据表让我相信我需要武装EP2(处理后其内容)写0x80来字节计数寄存器(即跳过位高)。如果我这样做,事情根本就不起作用。我需要写0。任何建议都是不受欢迎的,我有点被卡住了…
以上来自于百度翻译
以下为原文
I have a MIDI-USB applica
tion on the EZ-USB FX1, which has been working without problems, using EP1 for communication.
Now I simply want to move from using EP1 IN and OUT to using EP6 IN and EP2 OUT. Trying for days now, without result. That is, I got all IN communication working correctly, and OUT packets work for small amounts of data only (probably everything below the 64 byte packet size).
Any suggestion on how exactly I should use EP2 in a "PORT mode" application (that is, without any use of external FIFO's)? The problem must be related to the double buffering, or maybe an error in how I implement this "manual" mode.
What is very strange: everything works fine when I download my firmware over USB and run it from RAM. Running the same code from EEPROM doesn't work (data read from the OUT endpoint seems to be corrupted, when the data communication involves more then 64 bytes)
Another thing I don't understand: the datasheet makes me believe that I need to
ARMEP2 (after processing its content) by writing 0x80 to the byte count register (i.e. SKIP bit high). If I do that, things don't work at all. I need to write 0.
Any suggestions are more than welcome, I'm kind-off stuck...
0