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.

PGA970: How to flash the PGA970EVM?

Part Number: PGA970
Other Parts Discussed in Thread: UNIFLASH, USB2ANY,

Tool/software:

I tried using UniFlash, but get a connection error: 

I tried CCS, but it gets stuck at launching 100%:  RE: PGA970: Debugger stuck at launching 100% 

I tried using the EVM GUI, but the readback returns all 0s. I connected a scope to the SPI TPs and it appears the USB2ANY is sending data (although I haven't verified it's the right data) when I click load FRAM or read FRAM. I have a microcontroller dev board with SPI I could try to set up to program FRAM directly, but based on the EVM GUI working in every other aspect I have doubts it would be different.

  • Hi Nathan, 

    Can you please share the target configuration settings you are using with Uniflash?

    Are you able to read and write CSR registers with the USB2ANY (under Low Level Configuration)?

    Thanks,

    Maggie

  • Hm I'm not sure where to find the target configuration settings. I just chose the XDS2xx debug probe automatically detected, the pga970 from the dropdown menu, and click start.

    The GUI displays changes in the CSR when I change values. Although I can't be certain if they are true changes rather than cached, but unwritten, values.

  • Hi Nathan, 

    The target configuration settings can be found here: 

    Please use the settings shown. 

    Can you probe the SPI lines when you are reading/writing the CSR? If you're able to successfully read the values back, then the changes are successfully being written to the device. 

    Thanks,

    Maggie

  • Hi it looks like the write worked.   

    Is this the right way to write a .hex file? It looks like the .hex file is text, so I'm not sure. 

    Is there a way to save this configuration to text so I can track it in git?

  • Hi Nathan, 

    From CCS, there are two output files that we recommend to generate, a .out file (which is a binary file) and the .hex file you are using. The reason why we recommend you generate both is because the GUI requires the .hex file, but CCS uses the .out file. They are the same file, just in different formats. Normally I use that .out file when I use Uniflash. 

    You can check if the flashing worked with the GUI:

    You can put the file path of the .hex file you just loaded, and then verify the FRAM (or DEVRAM if that's where you loaded the firmware). If it matches, then the GUI will indicate the match. 

    You can save the configuration using the "Save Session" button:

    It will save as a .uniflash file. If you open it, then it will pull up a Uniflash session with the saved settings and configurations. 

    Thanks,

    Maggie

  • Hm I'm not sure the flash is working. I tried flashing and verifying the hex file and it says everything worked:

    However I added a GPIO1_TOGGLE() and GPIO2_TOGGLE() to the while(1) loop and I don't see them on the scope. I'm looking at TP37 and TP38 on the EVM. I'm confident my probe is connected correctly because it can see the SPI signals on TP56 TP59 and TP62. I rebuilt the software in ccs, flashed it using uniflash, and did a full restart by power cycling the power supply. The power supply displays 10V and 0.026 amps.

  • Hi Nathan, 

    Can you please try flashing the device with the .out file?

    Thanks,

    Maggie

  • I tried and it claimed the programming was a success but the verify failed. However, I still do not see the GPIO toggling.

  • Hi Nathan, 

    What is the M0 status when you load the .out file? Mine is disconnected - your screen shot says suspended.

    Just to confirm, your device is running, not in reset?

    Can you please post your .gel file?

    Can you please share a screenshot of the settings you are using in Uniflash?

    To confirm, you have a coworker who is able to load firmware to PGA970 with the exact same code and EVM setup?

    What does your hardware setup look like? I have my PGA970EVM connected to a 10V power supply, and it is connected to a debugger via the SWD header. The debugger is connected to my laptop. There are no other connections. 

    Thanks,

    Maggie

  • What is the M0 status when you load the .out file? Mine is disconnected - your screen shot says suspended

    Just after the flash it says this:

    Just to confirm, your device is running, not in reset?

    I'm not sure how to check. I think it should be running but I can't be certain.

    Can you please post your .gel file?

    I'm not sure how to get it out of uniflash, but here's the file I was using in theia:

    2210.pga970.gel

    Can you please share a screenshot of the settings you are using in Uniflash?

    These? 

    To confirm, you have a coworker who is able to load firmware to PGA970 with the exact same code and EVM setup?

    Yes he brought his computer into my office and used the same power supply, pga970, and debug probe setup.

    What does your hardware setup look like? I have my PGA970EVM connected to a 10V power supply, and it is connected to a debugger via the SWD header. The debugger is connected to my laptop. There are no other connections. 

    The pga970evm is connected to a 10V supply (J20 J21) and draws 26 mA. The XDS200 probe is connected to J22. The USB2ANY is connected to J23. The XDS200 and USB2ANY are connected to a usb hub which goes to my front usb ports, but it didn't work without the hub either. I also have a oscope probe on various test points and a lvdt sensor connected to J5, J3, and J8.

  • Hi Nathan, 

    Can you please try changing your Uniflash settings so that you do not isolate the JTAG signals on disconnect?

    Thanks,

    Maggie

  • Hi Nathan, 

    Please try using this .gel file: 

    pga970-fram.gel

    You can rename it to pga970.gel and place it in the following location: C:\ti\uniflash_9.0.0\deskdb\content\TICloudAgent\win\ccs_base\emulation\gel

    If you're using the default Uniflash settings (that is, you're not creating a session from an existing target configuration file) then that is where Uniflash will look for the gel file. 

    If you are creating a session from an existing target configuration file, then you will need to link to this gel file in your target configuration file. 

    Thanks,

    Maggie