Hi, I'm emulating a serial port on a Philips LPC214x microcontroller using lpcusb (http://wiki.sikken.nl/index.php?title=LPCUSB). The code is functional, but I'm having performance issues due to the way Bulk In transfers are implemented.
On the LPC214x there is an interrupt on NAK feature that will generate an internal interrupt when the device sends a NAK in response to a host bulk in request. With this feature enabled, the serial port emulation works, but the microcontroller is constantly running its ISR. This happens as soon as I open the port using kermit, as well as when I run a simple pyserial application that just tries to read a single character. Presumably this is due to the host usb controller immediately sending another bulk in request in response to the NAK. To reduce the load due to the ISR, I changed the code such that a when NAK interrupt occurs a zero length packet gets sent to the host. I was expecting that this would eliminate the bulk in requests for the remainder of the frame, but during the next frame the host would send another bulk in request. However, I never see another bulk in request. Obviously I don't really understand how this is supposed to work. How does the cdc-acm driver interpret a ZLP that is received in response to a bulk in request? What is the correct way to implement this? thanks, Galen Seitz ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel