How to customize an I2C bootloader

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi,

I need to create a bootloader that allows a host interfaced through an I2C bus to make any swr updates.

I saw that the PSoC systems already provide for this eventuality, but going to read in detail the operation I seemed to understand that the downloading protocol is set in the libraries.

Unfortunately I need to implement a custom I2C protocol.

Reading the datasheets of Cypress I seemed to understand that the implementation of a custom communication is possible, but I could not find APP notes or examples to use.

The only thing I could find is an application made by a user, shared on the web in a forum, where a bootloaded application is implemented through an I2C serial eeprom.

That proposal, however, does not seem to me a good example of customization since Cypress's design philosophy is not followed as the APIs produced by the APP generator are modified directly, modules that Cypress expressly invites not to modify.

What I ask is to get directions on how to proceed, and maybe some examples from which to take inspiration.

Thanks

0 Likes
1 Solution
MarkA_91
Employee
Employee
25 replies posted 10 replies posted 5 replies posted

Hi Alessandro, I believe that you are trying to create a custom interface, based on I2C. Our documentation (e.g. AN86526, AN73854, Bootloader Component datasheet) briefly alludes to custom interfaces but does not provide detailed examples. It is straightforward to create a custom interface; the main thing that you need to know is that the custom module must provide five functions to support bootloading: Start(), Stop(), Reset(), Read(), and Write(). The best way to build the custom module is to study how these functions are implemented in our standard Components such as I2C and UART, and port that into your custom module.

Regards,

Mark

View solution in original post

3 Replies
SayaniS_66
Moderator
Moderator
Moderator
10 likes received First like received

Hi,

Cypress has an application note on PSoC 4 I2C Bootloader : AN86526.

The link is : http://www.cypress.com/documentation/application-notes/an86526-psoc-4-i2c-bootloader

-Sayani.

0 Likes
MarkA_91
Employee
Employee
25 replies posted 10 replies posted 5 replies posted

Hi Alessandro, I believe that you are trying to create a custom interface, based on I2C. Our documentation (e.g. AN86526, AN73854, Bootloader Component datasheet) briefly alludes to custom interfaces but does not provide detailed examples. It is straightforward to create a custom interface; the main thing that you need to know is that the custom module must provide five functions to support bootloading: Start(), Stop(), Reset(), Read(), and Write(). The best way to build the custom module is to study how these functions are implemented in our standard Components such as I2C and UART, and port that into your custom module.

Regards,

Mark

Anonymous
Not applicable

Thank you Mark.

Your suggestion was very useful.

A curiosity.

Going to see the bootloader component, I note that among the options there is the possibility to set "Custom component".

I do not understand the use of such options. The component datasheet did not help me

Regards,

Alessandro

0 Likes