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.
Good afternoon,
I'm using the C2000-GANG programmer to program a TMS320F28069 Piccolo processor in circuit. We created a custom interface between the programmer and our target board, so that the hardware has its own 3.3V regulator to power our board from the upstream voltage. Therefore there is no load on the programmer when powering the board. The power output V_EXT from the programmer enables our own regulator. We have everything set up to program our target board, and are able to do so successfully when enabling the V_EXT output using the GUI tool (“Target Supplied by Programmer Voltage 3.3V”). If we do not power on our system in advance and select the “GO” button, the programmer powers up our board (it takes about 5mS from the time the programmer output signal till our board has full power), then begins communication (communications begins 60mS from the time our board has full power), then fails programming with the error “ERROR 66: CSM unlock error”. We tried to set up the programmer to program our board, stand-alone and got the same results. It seems as though the time to power up our system before communications begins would be sufficient for programming to begin. The thing that is curious is the error. We are not securing our device. We’re wondering if the programmer operates differently in software given the sequence of programming with power already applied.
Please let us know if you have any suggestions!
Best regards,
Chris
Good morning TI community,
Any suggestions about my earlier posts? To summarize, we can program our target board when we enable V_EXT in advance of programming, but it fails every time with 'ERROR 66: CSM unlock error' when trying to program without this option (or in standalone mode).
Is there a way to enable V_EXT in advance in standalone mode?
The other strange phenomenon is that by enabling a second target to be programmed (i.e. board connected to slot 1, but both slots 1 and 2 are set to be programmed), then we're able to successfully program our target board on slot 1.
Please let us know if you have any ideas!
Thanks,
Chris
Chris,
Spoke to Elprotronic offline on the status.
Did you make sure to configure the boot mode pins to wait mode (GPIO37 should be high and GPIO34 should be low)? If not, the internal pull ups on these pins will configure the boot mode to GetMode which defaults to boot to flash mode unless the OTP_BMODE field is programmed for a different boot mode.
Thanks and regards,
Vamsi
You are not secured, so the password in location 0x3F7FF8-0x3F7FFF are all 0xFFFF? Can you verify this is actually the case? Maybe post parts of your .cmd file and passwords.asm
Maybe try doing a full FLASH erase on the device (with something other than C2000-GANG, maybe UniFlash) to be 100% sure the entire FLASH is all 0xFFFF.
Even if you have no passwords (all 0xFFFF), CSM is always locked on power up (even if unsecured). In the Boot ROM code, a dummy read of the passwords is performed and if they are all 0xFFFF, then it will unlock.
Also make sure that csm_rsvd section 0x3F7FF0-0x3F7FF5 are all programmed to 0x0000.
It seems the C2000-GANG is calling Unlock_CSM() in the gel file and something is not allowing it to unlock.
James,
Does your application (programmed in to Flash) put the device in to a low power mode?
Can you try replacing the application with a dummy loop and see if that lets you reprogram?
Thanks and regards,
Vamsi
Below is the password information:
If I do a full erase, then the parts program fine. The problem is that I have to set the VCC settle timeout to 100 to be able to erase the target. Once I erase the target, then I can set the VCC settle time back to 0 then it programs fine. I'm suspicious that there is something in the programmer's software state machine that is causing this delay to be required when a device is not erased.
James,
All 0s will permanently secure the device. I don't think GANG programmer will read the "none" field to program. It uses that field to unlock. "None" means that you are not programming any password. So, it should be all 1s in your device - you can connect to debugger and check. In the latest devices, I noticed that GANG will keep the none value as all 1s. Did you modify the none field to all 0s for your F28069 configuration or is it the default value?
Reason, I asked you try the wait mode is to rule out the case where your application might be causing an issue by keeping the device in low power mode or by programming a password (which you might not have noticed).
Thanks and regards,
Vamsi
Hi Vamsi,
This is the default setting for the F28069 configuration.
Thanks,
Chris
James,
The default (empty) CSM password for unlocking MCU is 0xFFFF in software. The value displayed on the screen is wrong. That would be corrected, however in the real firmware the correct empty 0xFFFF value is used.
The unlocking sequence is easy - unlocking CSM at the beginning - after powerup and programmable Vcc Settle Time. It is the first step for getting access to MCU. It would be good if I get your code, download to blank MCU and check why you need additional delay for unlocking the MCU. Is it possible?
Best regards,
Gregory
We tested with the targets and we do not have the problem with the CSM password. Just in case please download the latest software version 1.0.7.0 from TI website www.ti.com/c2000-gang and try it.
I noticed that in your configuration the target is supplied from the C2000-GANG. Programmer can supply target with the max current not higher than 150mA. Make sure that your target is taking less current, or use external power supply, otherwise the Vcc can drop-off and communication can have a problem. Let me know if that helps.
Best regards,
Gregory