Hi All:
We are using AM335X in our project and have looked at the starterware examples. We use one of the USB controller of the AM335X as a USB bulk device. The cppi DMA mode is to be used, We are using the Cppi41DmaModeSet function in the file of cppi41dma.c of staterware to set the working mode of the CPPI DMA controller. However, it seems doesn't work , we can't change the DMA working mode to be RNDIS or GRNDIS ,but only theTRANSPARENT mode( default mode ) can be used.
We checked the Cppi41DmaModeSet function in the file of cppi41dma.c of staterware carefully, the Registers and Base address used in this fuction seems diffetent with the the Registers of the USB module listed and descripted in the datasheet of AM335X. The differences bewteen the esample code and the datasheet are as follow:
The usbInstance->otgBaseAddress is initialized to the base address of USBSS In the Cppi41DmaInit function, in the Cppi41DmaModeSet function. usbInstance->otgBaseAddress is used as the base address of the USB0CTRL Register and USB0MODE Register , but we can't find USB0CTRL Register and USB0MODE Register in the Registers list of USBSS , however, we find these registers in the Registers list of USB0_CTRL and USB1_CTRL . In additon, the USB0MODE Register (USB_0_MODE) appeared in the Cppi41DmaModeSet function is not used for DMA working mode setting but for IDDIG, PHY_TEST and LOOPBACK setting accordding to the datasheet of the USB0_CTRL in AM335X. For DMA working mode setting, there seems exist two registers as USB0TXMODE register and USB0 RXMODE register in the registers list of USB0_CTRL.
Now , we are confused by the example code in starerware and the datasheet of AM335x, Although we have do a lot of code debugging work , it still doesn't work.
Can anyone from TI help us to solve this problem?
Best Regards
Y tck