“Flash_Program_Temperature_deg_C” Parameter of the (non-CY8C20XX6A) BootLdrI2C User Module Versions 2.00-2.20 is Broken - KBA82148

Version: *C

 

Question:

“Flash_Program_Temperature_deg_C” user module parameter value is ignored in the (non-CY8C20XX6A) BootLdrI2C UM versions 2.00-2.20, and is never used if the application does not call the BL_SetTemp API function. The actual temperature value that is used in the programming algorithms is always zero degrees, Celsius. What is the problem and how do I make this working?

 

Answer:

This problem can have a negative impact on the flash's endurance and/or data retention after a bootload is executed.

There is no negative impact on:

  • the flash's performance (endurance and/or retention),
  • the flash used by the bootloader code. Only flash that the bootloader erases and writes to is affected by this problem.
  • the flash if the checksum verification fails during boot-up and the bootloader then enters bootloader mode. In this case, the proper value from the "Flash_Program_Temperature_Deg_C" user module parameter is used during the bootload,

Workaround:

  • Call the "BL_SetTemp()" API function in application code to set the proper temperature value to be used before making any call to the "ENTER_BOOTLOADER()" API function in the application code.
  • Or, call the "BL_SetTemp()" API function in application code to set the proper temperature value to be used,, while communicating with the device using the bootloader I2C address.

 

The problem has been fixed in the BootLdrI2C user module version 2.30 (in PSoC Designer 5.2).