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

Reply via email to