domingo, 15 de febrero de 2015

TELECOMUNICACIONES

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

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 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.
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.



1 comentario:

  1. a 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 coaching-mastery.com/recuperar-cuenta-de-facebook-con-dni-si-olvidas-tu-contrasena/

    ResponderEliminar