Hi,
I am working on usb device controller for i.mx rt1064. I have successful implemented the same controller for i.mx 6ull which has the same operational model as i.mx rt1064 (based on the Reference Manual). However I am struggling with sending data from the device to the host on i.mx RT1064 platform.
If I use a DTCM memory to allocate endpoint queue head (dQH) and endpoint transfer descriptor(dTD), the controller is able to receive and save setup buffer to the allocated memory (ex. GET_DEVICE_DESCRIPTOR). The problem occurs when the response is transmitted to the host. The controller does not change the ENDCOMPLETE register and data is not transferred to the host. I have tracked packets using wireshark.
The same software works correctly on i.mx 6ull platform.
Moreover I have tried to allocate dQH and dTD in OCRAM2 memory instead of DTCM. The USB controller has not even received setup buffer then. Therefore I suppose that problem is related to the memory.
Can you give me an advise where is the best place to allocate dQH and dTD on i.mx rt1064 ?
Is the cache memory default switch on for OCRAM2?
Best Regards
Hi,
MCUXpresso SDK software for RT1064 USB device application place dTD, dQH buffer at DTCM.
Please check here to download related SDK software package.
Wish it helps.
best regards,
Mike