PIC16F1509 Microprocessor Program Memory Unlocking and readout firmware from it, remove the protective security fuse bit by focus ion beam and recover MCU code from flash memory and eeprom memory;
PIC16F1509 Sum of Memory addresses 0000h-1FFFh E000h(1) Configuration Word 1 3FFFh(2)
Configuration Word 1 mask 3EFFh(3)
Configuration Word 2 3FFFh(4)
Configuration Word 2 mask 3FF3h(5)
Checksum = E000h + (3FFFh and 3EFFh) + (3FFFh and 3FF3h)(6)
= E000h + 3EFFh + 3FF3h
= 5EF2h
Note 1: This value is obtained by taking the total number of program memory locations (0x000 to 0x1FFFh which is E000h) and multiplying it by the blank memory value of 0x3FFF to get the sum of 1FF F800h. Then, truncate to 16 bits, thus having a final value of F800h.
2: This value is obtained by making all bits of the Configuration Word 1 a ‘1’, then converting it to hex, thus having a value of 3FFFh.
3: This value is obtained by making all used bits of the Configuration Word 1 a ‘1’, then converting it to hex, thus having a value of 3EFFh.
4: This value is obtained by making all bits of the Configuration Word 2 a ‘1’, then converting it to hex, thus having a value of 3FFFh.
5: This value is obtained by making all used bits of the Configuration Word 2 a ‘1’, then converting it to hex, thus having a value of 3FF3h.
6: This value is obtained by ANDing the Configuration Word value with the Configuration Word Mask Value and adding it to the sum of memory addresses: (3FFFh and 3EFFh) + (3FFFh and 3FF3h) + E000h =
1 34FEh. Then, truncate to 16 bits, thus having a final value of 5EF2h.