There are two ways to upgrade a firmware into your TD12xx EVB:
- Jlink probe via SWD (DB2-DB3)
- Internal bootloader via LEUART or Over-the-air
JLink
JLink is the dedicated tool for development. It provides a quick and risk-free way to upgrade some code. Any Jlink probe should allow you to upgrade your TD12xx board.
SWDIO is DB2
SWCLK is DB3
Telecom Design's SDK development kit includes a starter kit board from Silabs (EFM32TG-STK3300). This board embedds a JLink chip as well as providing a LCD and nice features such as consumption monitoring. In order to flash your firmware into the TD12xx EVB you need to connect it to the EFM32 board via the 20 pins top-right header. Then using the energy aware commander tools in the SDK\energy micro folder you need to :
- connect
- select the TD12xx by setting Debug Mode : out (FYI selecting MCU means you will try to flash the EFM32 processor)
- go to the "Flash" tab, select your .bin file and click on flash EFM32. You might need to click again on flash EFM32 if an error occur on the first time.
Notes:
- Flashing a project from eclipse is being performed by calling energy aware commander in command line. A complete description of how to flash your firmware from Eclipse is available in the SDK Readme file at the Flashing / Debugging section.
- If you encounter the "Invalid Flash Address" issue you're probably using the Debug Mode = MCU which means you're trying to load a >32Ko firmware into a 32Ko chip. Unfortunately old revision of the EFM32 kit tends to "forget" your debug mode. In order to solve this issue you can upgrade your kit using the S1010_efm32_common_stk_firmware_package_1v6p0b87.emz file attached. Juste go into the "Kit" tab, select this file in installation Package and click on Install Package. Then click on connect, select Debug mode out, disconnect, close and open energy aware commander and on connect the debug mode out should be selected.
Internal Bootloader
By default any software generated via the SDK includes a bootloader. This is not a stand-alone bootloader in a separate section. Thus a partially flashed module being powered off will not recover without an Jlink/SWD access.
Therefore the internal bootloader is dedicated for on the field product upgrade when the physical access to the board is limited to removing/inserting the batteries. The bootloader allow both serial and Over the Air upgrade.
Serial Upgrade
Upgrade through serial has proved difficult for some users because of a frequency shift on the uart at 115200. It sounds like this is computer/OS dependant (they probably handle the frequency shift in a different way). Since it also require a physical access to the upgraded device we now advise to only use Over the Air upgrade.
Over the Air Upgrade
Over the Air upgrade is 100% reliable and allow to upgrade many devices at once. To use it you NEED to have a led on TIM2 just like all the EVBs.
For this you would need an additional TD1208/04 EVB that you should flash (you would need JTAG there...) with the corresponding attached LoaderTransmitter.bin firmware. Then:
- start TDLoader (https://developers.insgroup.fr/download ... rV1.06.exe), select the product type of the board you want to upgrade and the COM port of TD1208/04 with the LoaderTransmitter.bin firmware.
- click on acquire
- power-on all the board you want to upgrade, TIM2 should stay on
- start the upgrade process
- all the product leds should turn off at the end of the process, otherwise restart broadcasting (acquire + flash) WITHOUT powering off the products.
Please note that if the process does not complete (ie you power off the device before the led turns off) then the bootloader will be broken and you will need JTAG access to upgrade it.