Other Parts Discussed in Thread: C2000WARE
Hi.
Is it possible to update firmware using SCIA pins only?
For example, GPIO42 and GPIO43.
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.
Hi.
Is it possible to update firmware using SCIA pins only?
For example, GPIO42 and GPIO43.
Hello Denis,
Yes, this is possible, please refer to https://www.ti.com/lit/an/sprabv4e/sprabv4e.pdf for more details. The FAQ section has the example paths for this device listed as well.
Anu
Hi Anu
I meant not to use BMSP0, 1. And when using OTP, the controller will always go into Boot ROM.
What I need is something like this:
When the controller is turned on, it enters the boot mode. After a few seconds, if nothing arrives via SCI, the controller starts the main application.
Denis
Denis,
In the peripheral bootloaders, if you want to jump to Flash you need to send an incorrect key on the peripheral RX line to the peripheral bootloader. This will make the device go to the Flash entry point.
Anu
Hi Anu
I did like this:
GPIO84 - 1, GPIO72 - 0 (SCI boot)
If I need to update the firmware - just update ('A', hAA, h08, .....)
If I need to run the application - then 'A', h00, h00.
But there is one problem. While the application is running, there is a continuous flow of data over SCIA. And if at this moment the controller is rebooted (as a result of some kind of failure), then instead of autobaud ('A'), characters from the stream come. I think, as a result, the controller is tuned to an incomprehensible frequency. It is no longer possible to work with it (neither reflash, nor launch the application).
The device is autonomous and is located in a place inaccessible to direct contact.
How can this problem be solved?
Denis
Denis,
Can you set some pin high when a reset occurs that the host can read to understand whether to send the autobaud lock 'A'?
Anu
Anu,
I don't want to use an extra line. And if I use it, then it's better to use GPIO72 for switching FLASH / SCI. I decided to focus on smooth operation.
I have another question:
Why after a successful firmware update, when I select "6-run" or "7-reset", the program freezes?
Hangs after output:
f021_SendPacket
Denis
Denis,
What version of C2000Ware is your host programmer from, and what version is the flash kernel from? If there is a mismatch between versions the host programmer may not work as expected.
Anu
Anu,
C2000Ware_4_00_00_00
host programmer and flash kernel of the same version.
Denis
Can you add a open and close bracket - {} - on line 283, the end of the while statement, in SCI_GetFunction.c and recompile and see if this makes a difference?
Anu
Denis,
Glad it works. For the reset question, you can post a separate thread on how to detect that a reset has occurred, or look through the reset causes section in the TRM.
Anu