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.

TM4C123GH6PM: DFU mode and flashing

Part Number: TM4C123GH6PM
Other Parts Discussed in Thread: TPS25751EVM, TPS25751

Tool/software:

I am trying to flash the TM4C123GH6PM on my custom PCB. In development I successfully used the TPS25751EVM (EVM), which uses the TM4C123GH6PM. When I connect USB to the TM4C123GH6PM on the TPS25751EVM, my Windows 11 PC establishes a serial connection and assigns a COM. When I try to connect to the TM4C123GH6PM on my custom board the TM4C123GH6PM is recognized in the Device Manager as "TivaWare Device Firmware Upgrade". The web based application "USBCPD Application Customization Tool" doesn't recognize my TM4C123GH6PM as a serial device that I can flash.

The HW schematic for the TIVA TM4C123GH6PM was pulled directly from the TPS25751EVM reference file. I have attached the schematic and images from my Device manager of how the custom board and EVM are recognized by my PC. 

  TIVA Schematic Prints.pdf

  • Hi Everett, 

    Can you provide additional details on what you're looking to achieve with the TM4C123GH6PM on your custom PCB?

    The TIVA on the TPS25751EVM is programmed to allow for the USBCPD Application Customization Tool to be able to flash a PD config from the GUI directly to the EVM. It currently does not support any additional features besides flashing the config from the PD GUI. 

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond, thank you for the response. I am using the TIVA to flash the TPS25751 on my custom board exactly as used in the TPS25751EVM. 

    It appears that I have been able to flash the TIVA on my custom board using LM Flash (using verify LMFlash programmer). However, the TIVA is not appear to be writing to the TPS25751. 

    As a test I connected the 6 data lines (SDA, SCL, IRQ) and ground from the TSP25751EVM to the TSP25751 on my custom board and removed the TIVA from my custom board. Using the TIVA from the EVM allowed me to communicate with the TPS25751 on my custom board. 

  • when I used the TIVA on the EVM everything works perfectly. Is there a difference from the TIVA on the EVM and the factory?

  • Hi Everett, 

    The TIVA on the TPS25751EVM contains proprietary firmware that we cannot share. The TIVA from the factory comes blank and requires you to write your own custom firmware. 

    The TIVA firmware on TPS25751EVM is not intended to be copied and used for external applications, it's sole purpose is to communicate with the TPS25751 GUI and be the interface between the TI GUI and the EVM. 

    Thanks and Regards,

    Raymond Lin

  • From the customization tool overview " The GUI is compatible with the corresponding hardware evaluation modules (EVMs) as well as custom hardware designs using the generated application configuration output files." 

    Ultimately we need to be able to flash the TPS25751 with our custom application settings. Currently we have followed the path of flashing the BIN generated from the GUI to the TIVA. Despite it saying the flash was successful, the TIVA is not communicating with the TPS25751. 

    Is there a way for us to purchase the TIVA with the custom firmware flashed so we can connect to it with the GUI? 

  • Hi Raymond. I want to make sure we are being perfectly clear... We used the EVM board and the GUI tool to develop a solution for a customer. TI supplied the Altium files to me so that I could incorporate the EVM solution into our product. Now we can't use any of that because there was firmware already programmed onto the TIVA that we weren't aware of? We don't do TIVA firmware in house, so as of right now our entire solution is useless? We rightfully expected that the GUI flashed the TIVA as if it were blank from the factory.

    We want to execute, in production, the solution the EVM allowed us to create. Is there a way to that?

  • Hi Michael and Everett, 

    You can still use the TIVA to load a PD configuration by generating a binary image from the GUI. The GUI can output a full flash binary (to be loaded into an EEPROM) or a low region binary (for a MCU like TIVA) to load via I2C (MCU is I2C controller, PD is I2C target). 

    The TIVA on the TPS25751EVM was designed to communicate with the GUI directly for ease of use and using the "Flash to device from current configuration" option. When you connect a TPS25751EVM to the GUI, this option instructs the GUI to talk with the TIVA on the EVM to write a full flash binary into the EEPROM, similar to other I2C programmer like the Aardvark adapter. The TIVA code on the TPS25751EVM was not optimized for actual production and was not intended to be copied directly. Users are expected to design their own MCU software, whether they choose to use a TIVA or another EC/MCU. 

    You can still use the TIVA as long as you write the firmware to load the PD binary configuration, either load the full flash binary into the EEPROM or load the low region binary into TPS25751 upon boot-up via I2C (Patch Burst Mode sequence is documented in the TPS25751 Technical Reference Manual). This is how other vendors design their system for production. 

    Thanks and Regards,

    Raymond Lin