Está en la página 1de 5

6/5/2018 ICSP

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES ICSP

Índice / Introducción Programar PIC Programación de PIC con Ic-prog

In-circuit Serial Programming (ICSP)


Por terminar

Introducción
Este tema trata sobre como realizar el diseño de los circuitos de aplicación con PIC programados mediante ICSP
(in-circuit serial programming) por el modo de programación estándar (no de baja tensión LVP). La mayor parte
de la información que se muestra aquí es generica y aplicable independientemente del tipo de programador
utilizado. Cuando sean relevantes se mencionarán aspectos específicos de programadores ICSP.

Recordemos (programar PIC) que un programador ICSP conecta el PIC mientras está conectado en el circuito de
aplicación. Pero debido a la variedad de conexiones que puede presentar el PIC con el resto de componentes en
el circuito de aplicación es necesario tener en cuenta algunos aspectos para que el programador ICSP pueda
trabajar correctamente. Algunos montajes no permiten la programación ICSP.

El propósito pues de este tema es ayudar en el diseño de esquemas con PIC que cumplan con las condiciones
impuestas en el circuito para permitir su programación ICSP.

La comunicación ICSP requiere cinco señales (ver Programar PIC para mas información):

1- VPP: Tensión de programación.


2- VDD: Alimentación positiva.
3- VSS: Alimentación negativa
4- ICSPDAT / PGD / DATA: Datos.
5- ICSPCLK / PGC / CK: Reloj.

Consideraciones de diseño para los circuitos con capacidad ICSP


A continuación se detallan algunas consideraciones a tener en cuenta en el diseño de un circuito para ICSP.

Pines de programación dedicados

http://perso.wanadoo.es/pictob/icsp.htm 1/5
6/5/2018 ICSP

Es necesario aislar del circuito a los pines CK y DATA para prevenir que las señales de programación sean
afectadas por el propio circuito de aplicación. CK es una línea de reloj unidireccional síncronica serie desde el
programador al microcontrolador. DATA es una línea bidireccional síncronica serie de datos de programación.

Si es posible, conviene dedicar el reloj de programación y la patilla de datos solamente para ICSP.

No obstante si también debemos utilizar estos pines para fines distintos en el circuito, debemos pensar bien que
tipo de hardware conectar. El mejor de los casos es utilizar las patillas de programación para pulsadores
normalmente abiertos. Siempre y cuando no se opriman los botones durante la programación, nada afectará a la
programación.

Si se conectan cargas a CK y DATA, estas no deben interactuar con el reloj y las señales de datos. Las cargas
capacitivas causarán problemas. Las cargas de alta impedancia, por lo general, irán bien. La conexión de LEDs
con resistencias limitadoras de corriente son menos deseables, pero normalmente no causan problemas.

En definitiva diseñaremos el circuito de tal manera que no se altere el nivel de señal en CK y DATA. Por ejemplo
utilizando resistencias en serie para aislar las señales ICSP del circuito de aplicación.

Pin Vpp/MCLR
El pin MCLR en el PIC se pone a unos 13V durante la programación. Esto plantea dos problemas. El primero es
que nuestro circuito debe permitir en este pin la aplicación de los 13V. Por tanto no se puede conectar este pin
directamente a la línea de Vdd. El segundo problema es que el resto del circuito debe estar protegido de esta
tensión. Los 13V en el pin MCLR podrían poner en peligro otros componentes en la placa.

Veamos distintas soluciones:

Si el pin Vpp es utilizado como reset (MCLR):

El circuito de aplicación es conectado típicamente a una resistencia y un condensador pull up, tal como se
recomienda en las especificaciones (data sheet) del microcontrolador. Hay que tener la precaución de que el
circuito asociado no baje la velocidad y exceda el tiempo de elevación de Vpp. Si se coloca un botón para el pin
MCLR, se recomienda que los mismos sean aislados del voltaje Vpp mediante el empleo de un diodo o una
resistencia limitante.

Si el pin Vpp es utilizado como un pin de puerto I/O:

El circuito de aplicación que conecta al pin I/O quizás no esté habilitado para manejar el voltaje de +12V. Se
recomienda utilizar un diodo o una resistencia limitante, para aislar el circuito.

Deshabilitar la programación a baja tensión

En los microcontroladores PIC con capacidad de programación a bajo voltaje LVP, configurar esta función como
LVP = off en los registros de configuración. En su defecto es necesario conectar el pin PGM hacia Vss para
evitar errores en la programación.

Como antes se ha dicho, en este tema se trata la programación estándar (a 13V) y no la programación de baja
tensión. Por ello debe ser siempre deshabilitada en los ajustes de configuración. Usaremos una resistencia de 1 a
100K para tirar a masa la patilla PGM en el diseño de un circuito para ICSP. (Ver programar PIC)

Alimentación durante la programación


Durante la programación ICSP es necesario que el microcontrolador sea conectado de acuerdo a la especificación
del mismo. Típicamente, la alimentación del microcontrolador se conecta al suministro de alimentación del
http://perso.wanadoo.es/pictob/icsp.htm 2/5
6/5/2018 ICSP

circuito de aplicación. La aplicación también puede ser alimentada por el programador siempre y cuando se
tenga en cuenta lo siguiente.

La corriente de alimentación que suministran algunos programadores es limitada. No se recomienda utilizar esta
alimentación si el consumo de la aplicación supera unos pocos miliamperios. Así por ejemplo en los
programadores basados en JDM la corriente viene dada por el puerto serie del PC cuya capacidad es limitada.

Cuando el programador suministra el voltaje Vdd al circuito y solo lo aplica durante el proceso de programación
debemos asegurarnos de que el condensador o los condensadores conectados entre Vdd y Vss de la aplicación no
retarden el tiempo de subida de Vdd. En estos casos es recomendable utilizar el suministro de tensión de la
aplicación o un suministro constante desde el programador.

Siempre debemos conectar todas las patillas de alimentación disponibles en el PIC a positivo o a negativo, según
corresponda. Muchos dispositivos PIC tienen patillas etiquetadas como Vdd, Vss, AVdd y AVSS. Si alguna de
estas patillas se deja desconectada pueden darse errores de programación. Esto se aplica a las patillas analógicas,
incluso aunque no tengamos pensado utilizar las funciones analógicas.

Los programadores basados en JDM utilizan una tierra flotante que provocará problemas si el circuito donde esta
el PIC está también conectado a tierra.

Para no provocar daños debemos tenerlo en cuenta y desconectar la tierra o la alimentación de la aplicación
mientras se programa.

Ante posibles descuidos, una solución es utilizar el mismo conector para la alimentación normal de la aplicación
y para la programación. Esto obliga a desconectar la alimentación para programar el PIC. Esta solución sólo es
válida si el consumo de la aplicación durante la programación es bajo.

De todas maneras, normalmente la aplicación se alimentará mediante un F.A. aislada de tierra y no aparecerán
problemas.

Suministro normal de energía

Para la conexión de +5V a los pines Vdd del PIC podemos utilizar el suministro normal de energía del circuito.
El conector ICSP de los programadores suele incorporar un pin de 5V que puede ser utilizado, pero sólo si el
circuito no consume demasiada corriente, de lo contrario probablemente se producirán errores durante la
programación, y es posible que se dañe el programador.

Si se alimenta el PIC con la alimentacion de la placa y no con la del programador debería dejarse desconectada
del PIC la alimentacion Vdd del programador.

Desacoplo

Debemos utilizar condensadores de desacoplo entre Vdd y Vss. Esta es una buena práctica en cualquier caso,
pero es especialmente importante para ICSP. Un único condensador de 0.1uF es el mínimo recomendado, aunque
suelen colocarse mas.

Longitud de los cables

Debemos minimizar la longitud del cable entre el programador y del circuito de aplicación.

Debemos también minimizar la distancia que deben recorrer las señales ICSP en el circuito de aplicación
colocando el conector de ICSP tan cerca como sea posible del PIC.

http://perso.wanadoo.es/pictob/icsp.htm 3/5
6/5/2018 ICSP

El objetivo es mantener las señales ICSP dentro del nivel y las especificaciones adecuados para que la
programación sea exitosa.

Esquemas
Para la programación “in-circuit”, el circuito de aplicación debe estar diseñado para permitir que todas las
señales de programación se conecten al microcontrolador sin que las mismas se distorsionen. A continuación se
muestran algunos esquemas punto de partida para diseñar circuitos de aplicación para ICSP.

Finalmente indicar que siempre debemos montar un prototipo y probar la programación ICSP para garantizar el
funcionamiento del circuito de aplicación.

http://perso.wanadoo.es/pictob/icsp.htm 4/5
6/5/2018 ICSP

Índice / Introducción Programar PIC Programación de PIC con Ic-prog

http://perso.wanadoo.es/pictob/icsp.htm 5/5

También podría gustarte