ROM bootloader and p-flash swap capabilities

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ROM bootloader and p-flash swap capabilities

1,843 Views
almarto
Contributor IV

Dear all,

I am looking for a suitable kinetis microcontroller for a new project specification which should fulfill the following requirements:

1. ROM bootloader, like KL17Z or KL27Z.

2. p-flash swap capabilities, to implement OTA firmware update.

Could you please give me any recommendation?

Best regards,

alvaro

5 Replies

1,372 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Alvaro Martinez,

According to your requirements, the K8x MCUs are the only choice.

And I'd highly recommend you to have second thoughts about the vital features of MCU in your design.

Hope it helps.
Have a great day,
Ping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

1,372 Views
almarto
Contributor IV

Thank you for your feedback Ping! The cost of K8x MCUs is a very important drawback to consider them for prototyping (it has much more features than I need). I am testing KL17Z/KL27Z families and I really like the ROM bootloader feature (among all the other MCUs characteristics). However, I don't know how to face the over-the-air firmware update requirement (I have a GSM wireless communication module in my prototype) and this is why I wanted to rely on the swap mechanism. I am thinking of several possibilities for the KL17Z like external Flash via SPI, what would you recommend?

I have followed some discussions in this community but I need to clear my mind and make a decision!

Thanks in advance

BR

alvaro

0 Kudos

1,372 Views
mjbcswitzerland
Specialist V

Hi Alvaro

As discussed in your other thread: Over-the-air firmware upgrade in Kinetis 

the most reliable and simplest method is to use an SPI Flash device (if the code size is less that half the internal Flash size also an internal swap block can be used), whereby all code to do this is available for your devices and you need very little development effort.

The internal ROM Loader is of no use for custom over-the-air upgrades (it is mainly useful in production to avoid needing to connect a SWD debugger, but also has some errata that may need to be worked around). Swap Flash also has no advantage in such cases (it restricts the code size to half of the available Flash size, is no more reliable than the other method discussed in the link and is only really of interest if one needs to be able to revert back to the original version later - see https://community.nxp.com/message/587699#587699 , plus it is limited to a few select Kinetis devices which makes it restrictive, possibly expensive, and loses general portability).

Regards

Mark

1,372 Views
almarto
Contributor IV

Hi Mark,

Thank you for your comments! After reading a lot and analyzing all the possibilities, I have come to the conclusion that I will have to add an external SPI Flash device to my prototype, like microchip SST26VF032B. I just wanted to exchange opinions with NXP experts and the community.

Actually, all the software is almost ready based on a FreeRTOS implementation and just need to add this part. I would like to maintain the main software structure and add this OTA firmware upgrade capability. The GPRS communication works, the access to new firmware is implemented and I can download it easily.

I have been investigating uTaster and found it difficult to extract only these parts that could fit into my project template. I think I will have to spend some more time with it.

Best regards,

alvaro

0 Kudos

1,372 Views
mjbcswitzerland
Specialist V

Hi Alvaro

I would expect you to be able to directly use the uTasker "BM" loader (possibly the SST25 Flash driver needs to be modified to match the SST26 part (?)) and so it would not be necessary to extract any parts from it.

Of course your application also needs to be able to write to the SST26, which is in the application environment and has nothing to do with the boot loader environment. In any case, it makes sense to share the SST26 Flash driver (it is just a sub-routine which accepts commands to read, write, delete etc.) so either you can take the spi_flash_kinetis_sst25.h interface as API to your application code or write your own driver and use than in the boot loader (respecting the same API).

Regards

Mark

0 Kudos