This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TPS65981: USB Gadget not working through USB C port and unable to connect using USB EP

Part Number: TPS65981
Other Parts Discussed in Thread: AM3358, , HD3SS460, TPS65982, CSD87501L

 

 

Hello,

My application uses an AM3358 running Linux and is set up as follows. The SPI flash was flashed with a binary generated using the TPS65981_2_6_7 Application Customization 3_18 tool. It was based off of the TPS65981_HD3SS460_DRP_Host_Standard_v3_18.tpl template. I have connected the board to various USB PD power sources and have shown that it works and can request all the power levels required by my application. I can power the AM3358 and TPS65981 down independently if needed and view the TPS65981 via I2C on the AM3358. (Note: the SPI Flash is between two boards now and cannot easily be accessed for direct reflashing)(this architecture is pictured below).

Using the micro USB port in the diagram I can access the AM3358 using it as a RNDIS Gadget. When I then move on to attempt to use the USB C port I receive windows errors (shown below). It clearly shows that the driver identifies the incorrect chip as a TPS65982 not the TPS65981 that it should. Additionally, when I attempt to use the application customization tool in the USB EP mode through the USB C port I also receive an error (shown below). I have attempted to use both USB ports without change. Therefore what steps do I need to follow in order to resolve the problem of the chip misidentifying (minor problem just a curiosity)? However, the main problem of the TPS65981 not forwarding the RNDIS Gadget needs to be resolved. The ideal result would be plugging in a USB C port into the computer and the device and the RNDIS Gadget appearing on the device manager like it does through the micro USB port.

 

  • Hi Andrew,

    We looked at your description and it looks like that the TPS65981 is enabling the internal USB end-point and disabling the USB connectivity from the Type-C receptacle to the AM3358 processor.

    Can you please share your schematic and configuration files for us to review?

    Thanks,
    Rahul
  • Here is the schematic and the configuration file. (note: the csd87501l and R59 were not populated, the jumper for buspowerz was set to 1.8V to get power from VBUS to PP_HV, the USBC.XX pins are connected to the corresponding pins on the AM3358, the I2C pins are connected to I2C 0 on the AM3358). Additionally I have been attempting to get the Customization tool to connect using USB EP as this would allow me to debug much quicker or would this also be related to the same problem you described?

    FW1.0.zip

  • Hi Andrew,

    Your schematic looks ok. Please share the configuration file. The file you've shared is the firmware bin file and the configuration file.

    Your EP should work for debug, but then it will disable other USB communocation, and probably thats what is causing the problem in your design.

    Can you try disabling the USB endpoint and try USB? It should work if what I am thinking is correct.

    Thanks,
    Rahul
  • Hello,

    Sorry about sending the wrong file, I have attached what I believe is the correct file. Additionally the USB EP is not working for me as if I attempt to "import configurations from device" using the customization tool it simply gives me the error I attached in my original question. Attempting to use debug mode just crashes the software on my computer.

    1641.FW1.0.zip

  • Hi Andrew,

    I reviewed the configuration shared by you. You need to make a small change. Please enable USB RP as shown in below pic.

  • Hello,
    I have generated the updated binary file. What would be the best way to upload it to the SPI flash? The FLASH chip is currently between two other boards which are soldered together, so directly accessing the SPI bus would be difficult. However I have access to USB with windows on both sides of the TPS65981 and I2C on a Linux system. Is there any method to update the TPS65981 over I2C on a Linux system? I found a document documenting a process for this however it only contains some C snippets. Alternatively is there any way I could get USB EP working to write the new contents to flash? For example looking in the Host Interface Technical Reference Manual I can't seem to find a register that would allow me to enable USB RP over I2C. I also found in the Firmware Users Guide there is a USBEP_ENABLE_EVENT which can be implemented over GPIO is there any way to trigger this over I2C?
  • Hi Andrew,

    The best way to do this is to update the SPI flash with the new bin file. Updating some registers dynamically have other consequences and of not done right with cause the whole PD to fail.

    I would suggest you to put the AM3358 processor to reset while updating the SPI flash. You can use an Aardvard to do the same.

    Thanks,
    Rahul
  • Hi Andrew,

    Do you need any more support on this or can we close this thread?

    If your query is answered then please select This resolved my issue.

    Thanks,

    Rahul

  • Hello,

    I still have issues sorry for the delay. I needed to disassemble a large portion of the device to gain access to the flash and have soldered jumper wires and a header onto the chip and can now update the flash easily. I have generated a new binary for my device using the attached project however am still not seeing the RNDIS Gadget.

    fw4.0.pjt

  • Hi Mike,

    I have made a couple of updates to your configuration. Can you try this and let me know the results?fw4.0_TI.pjt

    Thanks,

    Rahul

  • Hello,

    I generated a binary and flashed the memory and now the TPS65981 no longer appears in windows device manager. I am still unable to access the AM3358 via USB Gadget. I believe the AM3358 and TPS65981 are interacting now because I can no longer use the USB connected to the AM3358 while the TPS65981 is powered up where I previously could.

  • Hi Mike,

    Do you need any further support from us?

    If your problem is resolved then please click "This resolved my issue".

    Thanks,
    Rahul

  • Yes I still need support as in my previous message the device doesn't appear in device manager at all with the provided firmware. I have access to GPIO 4 as well if that aids in debugging. Currently plugging in a USB C cable doesn't appear in windows at all. Using a micro USB cable between the AM3358 and the TPS65981 with the TPS65981 powered down works and gives access to the AM3358. Could it be a problem with offsets when generating the binary file?
  • Hi Mike,

    I hope the prj file shared in the last reply was working for you.

    If your problem is resolved then can you please click at the This resolves my issue?

    Thanks,
    Rahul