Hi,
I am currently working on a USB host controller, high speed 480Mbsp, CDC ACM, 512 bytes Bulk transfer, driver with MIMXR1176. However, I have lower performance than expected (I am testing using USB1 as host and USB2 as device)
It seems often only one bulk transfer of 512 bytes is executed per micro-frame each 125us resulting in 8 * 512Bytes / 125us = 32Mbsp. I monitored the time between enabling async scheduler and entering the ISR and can see ~100us interval but also regularly <1ms interval which confirm one bulk transfer per micro-frame.
I have nothing in the periodic scheduler, only the async scheduler is used.
USBSTS register doesn't return any error when entering the ISR callback. Cerr in qtd is always 3. I can see NAKs were returned as qtd's NaKCnt value decreased (never 0) but I would expect the async scheduler to retry the transaction after AsyncSchedSleepTime instead of stopping until the next micro-frame?