TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Eigen en 30 de Junio de 2006, 22:10:48
-
Un saludo a todos.
¿Es posible proteger el código de un PIC16F877 en PB Pro para que no pueda ser leído desde él? ¿Si es así me podrían explicar cómo se hace y si al hacerlo se puede reprogramar el PIC?
-
Hola.
Creo que si, modificando los archivos del include del µicro deseado si no recuerdo mal.
Ahora no puedo revisar pero lee este tema y fíjate en la sección de los "fuses":
http://www.todopic.com.ar/foros/index.php?topic=3830.msg29034#msg29034
De todas maneras revisaré cuando tenga oportunidad y te lo digo.
Haz una búsqueda en el foro con ese tema "proteger código"
-
Por cierto se me olvidó:
Busca en el manual del PIC cómo se protege, te lo dirá en ensamblador pero lo puedes meter en PBP.
Después revisaré, :-/¡¡¡¡¡ahora me voy de fiesta!!!!!! :-/
-
Encontre el siguiente registro en el datasheet, con ésto entiendo que debo modificar el bit 13 (hacerlo 0) para que no deje leer el código, lo que no se es cómo hacerlo en el PB Pro,
REGISTER 14-1: CONFIGURATION WORD (ADDRESS 2007h)
bit 13 CP: Flash Program Memory Code Protection bit
1 = Code protection off
0 = All program memory code-protected
bit 12 Unimplemented: Read as ‘1’
bit 11 DEBUG: In-Circuit Debugger Mode bit
1 = In-Circuit Debugger disabled, RB6 and RB7 are general purpose I/O pins
0 = In-Circuit Debugger enabled, RB6 and RB7 are dedicated to the debugger
bit 10-9 WRT1:WRT0 Flash Program Memory Write Enable bits
For PIC16F876A/877A:
11 = Write protection off; all program memory may be written to by EECON control
10 = 0000h to 00FFh write-protected; 0100h to 1FFFh may be written to by EECON control
01 = 0000h to 07FFh write-protected; 0800h to 1FFFh may be written to by EECON control
00 = 0000h to 0FFFh write-protected; 1000h to 1FFFh may be written to by EECON control
For PIC16F873A/874A:
11 = Write protection off; all program memory may be written to by EECON control
10 = 0000h to 00FFh write-protected; 0100h to 0FFFh may be written to by EECON control
01 = 0000h to 03FFh write-protected; 0400h to 0FFFh may be written to by EECON control
00 = 0000h to 07FFh write-protected; 0800h to 0FFFh may be written to by EECON control
bit 8 CPD: Data EEPROM Memory Code Protection bit
1 = Data EEPROM code protection off
0 = Data EEPROM code-protected
bit 7 LVP: Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit
1 = RB3/PGM pin has PGM function; low-voltage programming enabled
0 = RB3 is digital I/O, HV on MCLR must be used for programming
bit 6 BOREN: Brown-out Reset Enable bit
1 = BOR enabled
0 = BOR disabled
bit 5-4 Unimplemented: Read as ‘1’
bit 3 PWRTEN: Power-up Timer Enable bit
1 = PWRT disabled
0 = PWRT enabled
bit 2 WDTEN: Watchdog Timer Enable bit
1 = WDT enabled
0 = WDT disabled
bit 1-0 FOSC1:FOSC0: Oscillator Selection bits
11 = RC oscillator
10 = HS oscillator
01 = XT oscillator
00 = LP oscillator
Note 1: The erased (unprogrammed) value of the Configuration Word is 3FFFh.
¿Sería algo así?:
REGISTER_14-1 %0011110000000
-
Hola.
Fíjate que parece que no se puede hacer desde el PBP.
Prégunta en los foros de µicrochip a ver si se puede hacer en ensamblador.
Lo antes mencionado es por lo que dice la hoja de datos:
It is important to note that address 2007h is beyond the
user program memory space, which can be accessed
only during programming.
Suerte.
-
Pues puedes protegerlo directamente al momento de la progrmacion del micro es decir en el winpic800 si lo usas o el Icprog, en la seccion de la configuracion de fuses ( esa donde seleccionas si usas HS XT o RC) pues existe un campo que dice CP esto viene de code protector, activalo en el 877 te da la posibilidad de protegerlo por bloques ahi te pongo una imagen para que tengas una mejor idea:
-
Es cierto, no se pudo desde el PB Pro, por lo que escribió Mario, pero es muy fácil protegerlo desde el WinPic800 como dijo Patolinec, muchas gracias por sus respuestas.