Abort pipe operation in CyConsole with CY7C68013A(FX2LP)

Question: How do you perform the Abort pipe operation in CyConsole with CY7C68013A(FX2LP) ?

 

Answer:

In the TD_Poll routine in the bulkloop example, data is already looped back to the IN endpoint buffer. If you first do an OUT transfer and then Abort an IN endpoint you have not really aborted anything because no IN request has been made yet by the Host application. An Abort will cause an abort of a pending IO transaction. So you can perform the abort operation by following the steps below :

Do an OUT transfer with say 512 bytes, then do an IN transfer for 1024 bytes. You will see 512 transfer on the IN and you have created a pending IN request transaction for the remaining 512 bytes. Now If you issue an Abort, the driver will not wait for another 512 bytes from the pending IN transaction.

If you do an Abort before actually starting a transfer, then CyConsole will transfer the data to the host when the host asks for the data instead of the aborting the transaction since there is no pending IO transaction.