I found an error in previous post! The endopint description is, actually:
;; Isoc IN Endpoint Descriptor
db DSCR_ENDPNT_LEN ;; Descriptor length
db DSCR_ENDPNT ;; Descriptor type
db 82H ;; Endpoint 2 and direction OUT
db ET_ISO ;; Endpoint type
db 00H ;; Maximun packet size (LSB)
db 14H ;; Max packect size (MSB) 10100b 3x1024 byte packets/uFrame
db 01H ;; Polling interval
Here is another clue!!!
If I set endpoint polling time to 2 instead of 1 (250us instead of 125 us) transaction WORKS, even with 3 pkts/uframe! Unfortunately I need 3pkts/uframe with polling time of 125 us!!
It really has been a long time to reply. I have no idea if you have resolve your problem.
Now I want to realize the same design like yours. I got a problem that I do NOT want to stop the ISO trans while the XferData function must return after the specified data length has been transfered.
The API Xferdata() returns when it receives the number of bytes that it has requested or after time out.To wait for infinite time set the timeout to 0xFFFFFFFF, then xferdata waits for infinte time. But if it receives the number of bytes that it has requested for , then it will return.
Please provide details about your application