3

My device is the dsPIC33EP64MC202. I have a bootloader which loads a program in flash to run or erases and rewrites that program as directed by serial commands. If possible, I would like to account for the possibility of changing the shared configuration bytes in the future, but it seems that might be impossible without a physical programmer.

From DS70618C (dsPIC33E/PIC24E Family Reference Manual), Section 30 (Device Configuration), 30.2.1.1:

Erasing the last page of program memory will automatically enable code protection, which prevents further reads or writes to program memory. As a result, it is not recommended to perform a page erase on the last page of memory where the Configuration bits are stored.

Given that erasing the page with the configuration words triggers code protection, how do I change the configuration bytes in my bootloader? I have tested erasing that page and writing new values to 0xAFF0 - 0xAFFA. Sure enough, only the original, unmodified values are there (before and after reset).

2 Answers2

0

I did a bit more digging on the site, and this answer for PIC16 makes me think I can't write configuration bytes for dsPIC33E in a bootloader at runtime.

0

If you change the config bits you must do a RESET of the device. The config bits' values are copied to internal registers (not visible to the user) every time the device is reset.

Null
  • 7,603
  • 17
  • 36
  • 48