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.

DEVRAM Programming details on PGA900 with XDS Probe

Other Parts Discussed in Thread: PGA900

Hello,

This question is related on another one I posted on the Sensors forum. I want to program my PGA900 on its EVM board with an XDS probe, like it is explained on the controller's docs. However, I want to only program on DEVRAM, and leave the OTP blank while I'm testing my code. I made a mistake and accidentally programmed the OTP memory on my previous PGA, but I can't tell if I made this mistake while using the Windows GUI app, or then with CCS and the XDS probe (see my post on the sensors forum for the details of what I did). So, because I don't want to accidentally program again on the OTP memory, I want to be sure of a few things on CCS.

Firstly : What do I have to do on CCS to write my code only on the DEVRAM memory ? I edited the .cmd file for the linker so that all the sections originally allocated to OTP are now allocated on DEVRAM. Is that the right thing to do, and is there something else I have to do ?

Secondly : After successfully linking to the PGA900 with CCS and the probe (I know it works because I could read the memory content and the registers), I tried to load my compiled program. However, I got a memory check error : "Cortex_M0_0: File Loader: Verification failed: Values at address 0x21000003 do not match Please verify target memory and memory map.". I suspect it might happen because the OTP memory was already written at that time : am I right ? If I try to load again my program on this failed PGA, I get the same error.

I'd really appreciate any additional information I can have on this subject.

Best regards,

Benjamin GAY.

  • Hi Benjamin,

    It is me again. In general, it sounds like you did write to the OTP if you go that error.

    I think you would know if you programmed to dev RAM or OTP when using the GUI.

    I take it the CCS folks didn't help you with the linker to make sure you're doing it correctly?

    I found this thread though: https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/544222/pga900-otp-programming-through-xds200-fails-file-verification 

    It seems to imply when you use the XDS probe by default, it won't go to DEVRAM and you need to do extra to program to OTP. Take a look and let me know what you find. 

    Best,

    -Cole

  • Hi Mr Macias,

    I apologise, I intended to post this question on the CCS forum and not on this one again. So no, I did not contact them yet, by mistake. I'll open a question there today with the content of this question.

    I think you would know if you programmed to dev RAM or OTP when using the GUI.

    Yes, I definitely used only the devram buttons. That's why I don't understand what happened with the OTP. I find it simpler to use CCS so that's why I am now asking questions on how to properly program the DEVRAM with CCS.

    It seems to imply when you use the XDS probe by default, it won't go to DEVRAM and you need to do extra to program to OTP.

    Wait, I don't get what you are saying here. Where do you think the code goes by default : in DEVRAM, or OTP ? If it's supposed to go to devram by default, I really don't understand how in the world I managed to touch the OTP with either the GUI app or CCS.

    Anyway, sorry again for opening this question on the wrong forum. I'll answer on the first question when I finally get the answers I am looking for.

    Thank you again. Best regards,

    Benjamin Gay.

  • Hi Benjamin,

    Wait, I don't get what you are saying here. Where do you think the code goes by default : in DEVRAM, or OTP ? If it's supposed to go to devram by default, I really don't understand how in the world I managed to touch the OTP with either the GUI app or CCS.

    Yes, I'm implying that DEVRAM looks to be default according to that thread, but I have never gone through the process described in the other thread myself. However, I agree with you, I'm not sure how you would have written the OTP as well. We'll have to see if the CCS team have any insight into the issue and if changing the linker was the right idea.

    Do you happen to have other units to test or is this the only one? 

    Best,

    -Cole

  • Hello Mr Macias,

    I got an answer for the CCS software part here : https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1205351/memory-programming-of-microcontroller-with-ccs-and-debug-probe

    I think I have everything right to test the programming again, but I still don't know how I programmed the OTP the last time. I guess I'll have to try again with a new one to be sure I can program on the DEVRAM.

    Do you happen to have other units to test or is this the only one?

    Unfortunately I don't have a spare PGA for now, as the VQFN format compatible with the EVM board is out of stock. I'm designing my own board compatible with the BGA format, so I won't be able to test the programming until I finish it. I'll come back here to tell if it's working when I'm able to try again.

    Have a nice day,

    Benjamin Gay.

  • Hi Benjamin,

    I think I have everything right to test the programming again, but I still don't know how I programmed the OTP the last time. I guess I'll have to try again with a new one to be sure I can program on the DEVRAM.

    Yes, I think that's the path forward too.

    Sorry about the stocking issues. Internally, I'm trying to a reserve stock of those devices and having trouble too. Definitely click the "notify me when available" link on the samples page and if I notice them coming back in stock I'll try and respond here.  

    Best,

    -Cole

  • Hi, I come back here after a while, because I finally found what was causing my issues.

    Long story short : I managed to get a few PGA900 in VQFN format, and after a bit more of testing I got why I was always programming on the OTP.

    When I started programming with an XDS probe, I modified the .cmd file in the project, because by default, when building, all the program was linked to the OTP memory address and not the Devram's. But, I missed something in the .gel file in the target configuration : with this file, the REMAP register is activated when connecting to the device, which means the Devram's address was changed to have the OTP's.

    So basically, I changed the content of the .cmd file "to make sure I upload on the right memory (according to my understanding at that time)", but in reality this change made sure I was programming on the wrong space every time because the memory swapping was already happening thanks to the .gel file. If I had left alone the .cmd file, everything would have been fine from the beginning.

    Now, I can program correctly my PGA900 to test my code. Thanks for your support M. Macias !

    Best regards,

    Benjamin.

  • Hi, I come back here after a while, because I finally found what was causing my issues.

    Long story short : I managed to get a few PGA900 in VQFN format, and after a bit more of testing I got why I was always programming on the OTP.

    When I started programming with an XDS probe, I modified the .cmd file in the project, because by default, when building, all the program was linked to the OTP memory address and not the Devram's. But, I missed something in the .gel file in the target configuration : with this file, the REMAP register is activated when connecting to the device, which means the Devram's address was changed to have the OTP's.

    So basically, I changed the content of the .cmd file "to make sure I upload on the right memory (according to my understanding at that time)", but in reality this change made sure I was programming on the wrong space every time because the memory swapping was already happening thanks to the .gel file. If I had left alone the .cmd file, everything would have been fine from the beginning.

    Now, I can program correctly my PGA900 to test my code. Thanks for your support M. Macias !

    Best regards,

    Benjamin.