In-Bulk-NAK (IBN) Interrupt in FX2LP

Question: What is the usage of In-Bulk-NAK (IBN) Interrupt in FX2LP?




When the host requests an IN packet from an EZ-USB BULK endpoint, the endpoint NAKs (returns the NAK PID) until the endpoint buffer is filled with data and armed for transfer, at which point the EZ-USB answers the IN request with data. Until the endpoint is armed, a flood of IN-NAKs can tie up bus bandwidth. Therefore, if the IN endpoints are not always kept full and armed, it may be useful to know when the host is ‘knocking at the door’, requesting IN data. The IN-BULK-NAK (IBN) interrupt provides this notification. The IBN interrupt fires whenever a Bulk endpoint NAKs an IN request. Instead of putting the data in the IN Endpoint and keeping it armed all the time, FX2LP can identify the IN endpoint on which data was requested by the host on getting an IBN interrupt, place data on it and then arm the endpoint. The IBNIE/IBNIRQ registers contain individual enable and request bits per endpoint, and the NAKIE/NAKIRQ registers each contain a single bit, IBN, that is the OR’d combination of the individual bits in IBNIE/IBNIRQ registers. For further information on using this interrupt refer IN-BULK-NAK interrupt in FX1/FX2LP example project