TMS320F280045: Regarding the issue of using C2000-GANG for batch programming of the 280045 DSP

Part Number: TMS320F280045
Other Parts Discussed in Thread: C2000-GANG, UNIFLASH

Tool/software:

"During the process of programming the 280045 DSP, we found that the HEX file without DCSM could be successfully programmed and run normally. However, when DCSM is included, it shows programming success after generating the HEX file, but in reality, the program in the DSP seems to be malfunctioning.

What could be the reasons for this phenomenon?"

  • Hi Xiaochao,

    Can you provide some additional images on the steps taken from your C2000-GANG loading?

    Thanks and regards,

    Charles

  • thanks.

    Memory configuration is as follows:

    The burning process and steps are as follows:

    The final result is: burning successful, verification unsuccessful. Connected to the DSP to read the memory, discovered that the memory is encrypted but cannot be decrypted successfully.

  • By the way, memory extraction starting address of the hex file is: 0x78000, length: 0x28000

  • Hi,

    Thanks for the images. Could it be that a device reset is occurring between the programming and the verification stages?

    Regards,

    Charles

  • Thanks.

    Could you please provide the correct instructions for programming the 280045 with DCSM? I think there might be an issue with the production of my hex file.

  • Hello,

    Have you programmed custom CSM passwords? If so, you need to specify the CSM passwords in the GANG programmer GUI for unlocking / verification to be successful.

    Thank you,

    Luke

  • thanks.

    I don't think the issue is with the verification step, because when I use Program to write, the C2000-GANG shows a successful programming, but the program does not run correctly. Moreover, I cannot unlock it successfully using CCS12.3 for decryption. The 280045 places the CSM segment in the OTP area. The current problem seems to be with the creation of the HEX file, as the OTP area and Flash area are not being correctly distinguished.

  • Okay, can you share the generated .hex file, or atleast the OTP portion? I can check if the format of the .hex file looks correct.

    did you use CCS to build the .hex file?

  • thanks.

    I used the command line with the picture hex converter to convert the out file generated by CCS12.3 into a hex file.

    The extracted addresses are as follows:

    Is there any issue please?

  • Hi Xiaochao,

    It would be easier if I had the .hex file so I could investigate if there is any issue with it. You could send it over private message on E2E if you send me a friend request.

    Thank you,

    Luke

  • thanks.

    Due to encryption issues with my computer, I cannot send the HEX file. May I ask if there is any mistake in the steps I took to create the HEX file?

  • Hi Xiaochao,

    Can you provide detailed steps on how to generate a .hex file similar to yours?

    Thank you,

    Luke

  • thanks.

    The specific steps are as follows:

    1)Generate the .out file using CCS12.3. This .out file has been verified. It can be programmed into 280045 using the programmer, and the DCSM is effective, allowing for normal encryption and decryption. The APP code runs without issues.

    2) Used the command line with the picture hex converter to convert the out file generated by CCS12.3 into a hex file.

    Version of the hex2000.exe  as follows:

     Command line as follows:

    The above steps generate the HEX file.

    Please help analyze.

  • Hi Xiaochao,

    I will test these steps on my side and let you know if I see anything that would cause an issue with the .hex file.

    Thank you,

    Luke

  • Thank you very much. Please notify me as soon as possible if there are any issues to prevent delays in production.

  • Hi Xiaochao,

    I have an alternative method for building the hex file you can try if you have the source project that was used to build the .out file.

    1. In the project properties, enable the C2000 Hex Utility and specify the memwidth and romwidth as 16:

    2. build the project

    3. Grab the generated .hex file from the CPU1_FLASH folder.

    Let me know if you encounter the same issue using this method.

    Thank you,

    Luke

  • thanks.

    The hex file generated using your method cannot be recognized by C2000-GANG, and the byte length is 0. C2000-GANG returns an error.

  • Hi Xiaochao,

    Are you able to program this hex file using CCS?

    Can you share the error message from the GANG programmer?

    Thank you,

    Luke

  • thanks.

    Using Uniflash to program this hex file is successful, the decryption works, and the code runs normally. 

    The error message from C2000-GANG is as follows:

  • Hi Xiaochao,

    Is the generated output hex file in some format other than Intel hex? Can you check if every line is preceded by a character that the GANG programmer would interpret as a comment? This could cause the file to look empty.

    Thanks and regards,

    Charles

  • thanks.

    I selected the hex output format as Intel, as shown in the image below.

    This time, the C2000-GANG can read the file,as shown in the image below.

    This is a partial screenshot of the generated hex file.

    Unfortunately, when this file is programmed into the 280045 DSP, it causes the chip's program to malfunction, making it unable to be decrypted, and the chip becomes unusable.

    But this file can be programmed using Uniflash, and the DSP operates normally with the program executing correctly.

    Please provide an effective solution as soon as possible, as this is seriously affecting the production efficiency of the factory.

  • Hi Xiaochao,

    I doubt the chip would function differently depending on which programmer was used. One reason for this is the DCSM might be unlocked after programming with Uniflash vs. after programming with the GANG programmer. Could you make sure the DCSM is locked after programming with Uniflash and see if the code still functions normally? You can lock the DCSM zone using the uniflash GUI near where the CSMPSWD GUI options are located.

    Thank you,

    Luke

  • thanks.

    First, I prepared two unprogrammed chips. One of them was programmed with a hex file containing DCSM using C2000-GANG. After programming, it cannot be unlocked, and the code does not run correctly,and it cannot be reprogrammed.

    The other chip was programmed using Uniflash. After a successful programming, it can be unlocked normally, and the code runs correctly. Moreover, it can be reprogrammed, but it must be unlocked first before programming.

  • Can you confirm that the same hex file and same unlocking procedure was used on both chips?

  • thanks.

    I confirm your question.

    Can you provide a more detailed step-by-step guide for using C2000-GANG to program the F280045 with DCSM?

  • Hi Xiaochao,

    I will obtain a GANG-programmer and try to walk through the steps on my side. I will get back to you by tomorrow.

    Thank you,

    Luke

  • Hey Xiaochao,

    Apologies for the delay on this, I have been caught up with some other urgent customer issues, I'll provide an update as soon as I'm able to test.

    Thank you,

    Luke

  • thanks.

    Have you found the issue? When will the new version be ready for the update?

  • Hi Xiaochao,

    Apologies for the additional delay, my time has been occupied working on a solution for another customer. I will be available again next week and look into this as soon as I can.

    Thank you,

    Luke

  • Hello,have you found the issue? When will the new version be ready for the update?

  • Hi Xiaochao,

    I'm meeting with other folks on our team this week to help recreate the issue. Will get back to you by end of week.

    Thank you,

    Luke

  • Hi Xiaochao,

    Can you try the hex file again with this version of the GANG programmer:

    https://content.elprotronic.ca/downloads/C2000-Gang/C2000-GANG-1v011100-Setup.zip

    Thank you,

    Luke

  • Hello,Jones

    Thank you very much for your help.

    I used the software you provided, and now I can erase and program normally, but the verification fails. However, the programmed chip can be decrypted successfully, and I can see that the decrypted chip memory matches the burned bin file. The current issue is why the verification fails and how it can be resolved.

  • Do you know what address the verification failure occurs?

  • thanks.

    I compared the bin files read after programming via C2000-GANG and those programmed with CCS12.3, and found 2 differences.

    The address range of my application code is 0x80000-0x93FFF. The first difference is located at 0x93000-0x931E0, and the second difference is at 0x930B8-0x930D6.

  • Did you use the same .hex file when programming with CCS 12.3 vs. C2000-GANG?

    Did you use a different tool for programming than you did for verifying?

    Thank you,

    Luke

  • thanks.

    I directly program the out file using CCS12.3 and use the hex file generated from this out file for C2000-GANG programming.

    After testing, the program functions correctly when flashed via CCS12.3 using the out file, and the test fixture communication succeeds. However, when flashing the hex file with C2000-GANG, the program runs abnormally, and the test fixture fails to connect.

  • Hi Xiaochao,

    I'm not sure the hex file and .out file will be exactly the same. If you performing all programming and verification steps using ONLY the hex file, do you encounter the same issue?

    Thank you,

    Luke