Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MicrocontroladoresPIC
Estemtododeprogramacin(lectura,escriturayverificacin)noes
exclusivo de los microcontroladores Microchip, ya que otras marcas
como Atmel, Parallax y otros usan tambin mtodos similares
conocidosdemaneragenricacomoISP(InSystemProgramming)y
enlaarquitecturadeProcesadoresARMseutilizaunmtodosimilar
conocidocomoJTAG.
ProgramadoresICSP
Todos los modelos recientes de microcontroladores PIC se
programan usando ICSP con voltaje alto de programacin y una
varianteconLVP(LVPes"LowVoltageProgramming"msadelante
hablaremosdeesto).Asmismo,todoslosprogramadoresmodernos
de PIC utilizan este mtodo para programarlos, aunque esto no sea
aparenteenalgunosprogramadoresquecuentanporejemploconun
socketZIF,comoelmostradoenlafigura.
SealesyConexionesenelCabezalICSP
LassealesconectadasentreelPICyeldispositivoprogramadorpara
realizar la escritura, lectura y verificacin del programa son las
siguientes:
VPP(VoltajedeProgramacin):Esunvoltajeentre1214VDC
aplicado al pin MCLR/VPP del PIC, y es usado para poner al PIC en
estadodeprogramacin.
PGC (Program Clock): Seal de reloj provista al PIC para
sincrona.
PGD (Program Data):Lnea serial de datos para escritura,
lectura y verificacin de la memoria de programa (ROM Flash) del
microcontrolador.
VDD (Voltaje de Alimentacin 5/3.3 VDC): Voltaje de
alimentacinprovistoalPIC.EnelcasodelosprogramadoresPickit2
yPickit3,estosprimeramenteconsultanestepinparaverificarsiel
PICyaestsiendoalimentadoexternamente(recomendado)deotro
modo, existe la posibilidad de configurar al programador para que
stemandevoltajedealimentacinalPICatravsdeestalnea.
GND(Ground):Conexinatierra.
Elsiguientediagramadecircuitomuestraunmtodomuyusualpara
laimplementacindeICSP:
ElpinRA5/MCLR/VPP,ademsdeserelpin VPPeselpinRA5
delpuertoAylaentradadereset(MCLR).
El pin RB7/T1OSI/PGD, adems de la conexin serial de datos
paralaprogramacin(PGD)estambinelpinRB7delPuertoByla
entradadeosciladordelTimer1(T1OSI).
ElpinRB6/T1OSO/T1CKI/PGC,eslaentradaderelojparaICSP,
adems de ser el pin RB6 del Puerto B, la salida de oscilador del
Timer1(T1OSO)ylaentradaderelojdelTimer1(T1CKI).
Por tanto, los pines anteriores cumplen bsicamente dos funciones:
1) Funciones relacionadas a la aplicacin principal del circuito, y 2)
Funciones para la conexin con el dispositivo programador que
posibilite la lectura, escritura y verificacin de la memoria de
programa"encircuito".
CircuitodeAislacin
Para que la programacin se lleve a cabo de manera correcta y
segura, es necesario aislar el circuito de aplicacin del circuito de
programacin.Elcircuitoejemplomostradoenlafiguraanteriornos
muestradequmanerasepuedelograresto:
aisladodelaalimentacindevoltajeprovistaporelprogramador;en
todocasoesmsrecomendableysegurousralaalimentacinpropia
del circuito de aplicacin para energizar el PIC que usar la
alimentacindevoltajeprovistaporelprogramador,sobretodopara
losprincipiantes.
Conectar resistencias(tpicamente 10K) entre los pines PGD y
PGCyelcircuitodeaplicacinafindequelareactanciavistadesde
estos pines no afecte la integridad de las seales de datos y reloj
utilizadas en la escritura, lectura y verificacin del programa. Si la
aplicacinlopermite,esrecomendabledejarlibresestospinespara
serusadosexclusivamenteparalaprogramacinICSP.
RespectoalaaislacindelospinesPGDyPGCesimportanterecalcar
quesibienestetpicoejemplodecircuitodeaislacinfuncionapara
la mayora de los casos, no es una receta segura para todos, y en
algunos casos podra requerirse ligeras modificaciones o incluso un
planteamientodiferenteparalogrardichaaislacin.
DepuracinconICSP
Cabe notar tambin que ICSP, aparte de proveer el mtodo para la
escritura, lectura y verificacin del cdigo de programa en el
microcontrolador, provee tambin mtodos para la depuracin y la
emulacin "en circuito"; capacidades que vienen adicionalmente
implementadas en ciertos dispositivos conocidos en ingls como
"programers/debuggers/emulators"
(programadores/depuradores/emuladores). Ambas capacidades
adicionales complementan grandemente la "caja de herramientas"
detododesarrolladordesistemasmicrocontrolados.
ProgramacinConBajoVoltaje(LVP)
LaProgramacinConBajoVoltajeLVP(LowVoltajeProgramming)es
una opcin adicional de programacin presente en los PICs la cual
permite obviar VPP (1214 VDC) y utilizar bajo voltaje. Para ello los
PICs cuentan con otro pin denominado PGM (el pin RB4/PGM en el
caso del PIC16F628A) atravs del cual el dispositivo programador
toma control del PIC para su programacin. Los detalles de este
mtodosalendelalcancedeestetutorial,simplementeaadiremos
que,sisevaausarICSPconVPP(1214VDC),esrecomendabledejar
deshabilitada la Programacin Con Bajo Voltaje (LVP) en el
microcontrolador(mediantelaescrituradelbitcorrespondienteenla
palabra de configuracin (registro CONFIG) del microcontrolador,
esto para evitar desprogramaciones accidentales del PIC. La
desventaja de LVP es que cualquier ruido o pico de voltaje ms o
menos fuerte puede desprogramar accidentalmente el PIC, por lo
cual,esmejordeshabilitarloyusarlaprogramacinICSPconvoltaje
alto.
Conclusin
Implementar ICSP se hace imprescindible en un proyecto que
requiere muchas iteraciones de reprogramacin en la etapa de
desarrollo; por otra parte brinda tambin la posibilidad de
actualizacin y mejora del programa cuando los componentes ya
estn soldados en la placa y el sistema ya est en funcionamiento.
Paraquienesnuncaantesprogramaron"encircuito",implementarlo
puede parecer un poco intimidante al principio, sin embargo es un
pasonecesarioadar,afindemejorarlaeficienciaeneldesarrollode
sistemasmicrocontrolados.
Nada reemplaza la adecuada investigacin y bsqueda de
informacin antes de probar herramientas y tcnicas nuevas para
uno, por lo cual es muy recomendable revisar tambin la
documentacin oficial de fabricante respecto a la Programacin
Serial En Circuito, a fin de contar con la informacin detallada y de
primeramanorespectoaestetpico.