Anonymous
Not applicable
Dec 07, 2009
07:09 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dec 07, 2009
07:09 PM
I have a MIDI-USB application 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 arm EP2 (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...
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 arm EP2 (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...
1 Reply