HSUSB ISO TXPKIF strange behavior
Posted: 26 May 2019, 14:08
I'm implementing a UVC protocol on M484. I use manual-validation because UVC payload can only be sent in packet. The packet format is 2 bytes header + pixel payload. As my test, I use 258 as ep size for iso channel, which is 2-byte header and 128 16-bit RGB565 data.
According to the log from NuConsole, the behavior of TXPKIF is strange, below is the log:
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
......
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
......
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
According to the log from NuConsole, the behavior of TXPKIF is strange, below is the log:
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
......
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
*txpkif0: EPTXCNT=258,EPDATCNT=0
......
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=0
write ep0 buffer 258 bytes.
set ep0 DATSIZE to 258.
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258
txpkif0: EPTXCNT=258,EPDATCNT=258