Dear All,
I took the keil sample for AT91SAM7S-EK for mass storage and modufied it for my AT91SAMSE-EK. After the modification the program runs fine and I can use the board as a USB mass storage.
The big problem is the the reading speed on Windows side. Wrtite speed is acceptable. If the PC wants to read something, I read the sector from the flash (wich is pretty fast) and send 64 Byte to the host. After that I wait for the AT91C_UDP_TXCOMP Interupt that should come after the Buffer is empty to transfer the next 64 Byte. But this interupt occurs only every 1ms which slows down the reading speed. Does anybody know why the TXCOMP interupt is comming only every 1ms?
Thanks a lot for the help,
Christian
you problem is the access frequency dedicated to your device: you are indeed using bulk transfers, but in one of your descriptors (don't remember where...) you can setup the amount of time you get the bus. check the your project's descriptors - it is there, I had this problem once! good luck
Tamir,
do you mean on my PC or on the AT91. I searched on both but could not find anything.
Thanks for the help,
check your USB_ConfigDescriptor: I think bInterval determines the access time of the device.
I am not sure what bInterval==0 means...
bInterval == 0x00 seems to be OK for a FULL Speed Device. But I checked other Values, too and nothing changed.
After some days off, I'm still fighting with the TXCOMP Interrupt. But everything I tried did not succeed. I also tried to run the AT91lib with Keil RealView and had problems, too.
Does anybody knows a working mass storage application for the AT91SAM7SE-EK or a port of the AT91lib for Keil RealView?
from what I have experienced with USB, many problems are due to poor windows-size drivers (sometimes, they don't even implement the entire USB protocol - see CDC driver for windows XP and 2000...). what happens if you switch to, say, another version of windows?
View all questions in Keil forum