Buscar este blog

martes, 25 de julio de 2017

Programar PIC Microchip con Pickit2 con "All Protect"

Afro, gooey, es muy temprano... ¿qué fucking haces despierto?

Pasa que hace poco desempolvé mi Pickit2 para venderlo, pero es de esas cosas que guardo para recordar que en alguna ocasión llegué a ir a la escuela, pero no entraba n_n

Anyway, estaba aburrido y decidí hacer eso que no hacía en la escuela: construir un circuito sencillo, programar unas cuantas líneas y tratar de conquistar al mundo. Y así fue que quise programar un Pic 16F84A de Microchip con un Pickit 2 y me tiró error. — Pero joder, que mira que el compilador no me ha tirado error y la simulación ha corrido bien, tío... —

¿Qué crees que pueda ser?

Después del calambre cerebral de estar viendo que el Pickit leía, borraba, verificaba y checaba bien que la memoria estuviera limpia pero no escribía mi fucking HEX, vi el por qué. Te diré cómo solucionar la cosa molesta del "All protect" sin lastimar a nadie más que a tu vista por leerme, ja.

La cosa es por la configuración de bits en el micro. Quizá me lo vendieron mal o algo, pero no está muerto, ¡yeii! En cuanto conecto el micro con el Pickit, éste me lo detecta sin ningún problema, sin embargo, me arroja una línea que dice "All Protect" en rojo; en la barra de Tools, puede apreciarse el "Enable Code Protect" y el "Enable Data Protect" sin dar posibilidad a ser modificados.



Borro el micro y no tira error, pero cuando le doy clic a "Blank Check", arroja: "Program Memory is not blank starting at address 0x000000". ¡Rayos! y... ¿ahora qué fucking le pasa? Se supone que ya no muestra la leyenda "All Protect". Incluso, en cuanto importo el HEX, automaticamente se pone dicha leyenda. ¿Podría ser configuración en el compilador? Sí, puede ser ahí y puede configurarse el file, sin embargo, solucioné mi problema desde el software del Pickit.


Ya tengo todo preparado, ¿qué hago?


1.- No corras en circulos.
2.- Conecta una fuente externa a tu Pickit/microcontrolador
3.- En el menú Tools, desactiva el "Fast Programming"
4.- Importa tu HEX. (El "All Protect" te saldrá al importar o al leer el mciro)
5.- Borra de nuevo el microntrolador
6.- Activa el /MCLR
7.- Escribe tu micro. En ésta primera ocasión, te tirará el error: "Verification of configuration failed".
    También puede que te tire el error por no haber conectado la fuente externa.
8.- En la pantalla principal de Pickit, da clic en "Configuration" (justo arriba del "All Protect")
     8.1 Verás que hay 15 bits configurables. Pon todos en "1" y da a "Save"
     8.2 El valor debe cambiar a 000F
     8.3 En la barra Tools, desactiva el "Enable Code Protect" y el "Enable Data Protect" 
9.- Escribe de nuevo tu micro. ésta vez no debería darte problemas; ni siquiera teniendo el "All Protect"
10.- Una vez escrito, vuelve a leerlo y la leyenda ya no debería salirte. 

Te dejo los screens del procedimiento por si tienes duda en algún paso.
 






Órale, y eso... ¿te lo sacaste de la manga, Afro?

No, como decía, hay dos maneras. La que mostré aquí, la hice siguiendo el documento de microchip para la configuración de bits para "Code Protection". Al dar clic en "Configuration" (arriba del mensaje "All Protect", el mismo software de Pickit nos dice que busquemos la "Configuration Word Bits". Vamos precisamente a ese apartado y vemos que dice que para que el Code Protection esté en OFF, habría que poner todo en 1.



Te dejo el documento por si eres de esos nerds que no duermen hasta que saben el por qué las saladitas son saladas.

Bites de chocolate.