Ir al contenido



Foto

El ICSP - Programación serie en circuito


  • Por favor identifícate para responder
7 respuestas en este tema

#1 WillyP

WillyP

    Member

  • Miembro Platino
  • PipPip
  • 22 mensajes

Escrito 21 febrero 2009 - 04:55

Para los que se inician con los microcontroladores Pic de Microchip, es oportuno conocer la conexión entre el programador y el dispositivo a programar a la hora de volcar el software que compilamos en la memoria del microcontrolador.

La programación de los microcontroladores Pic se realiza mediante un protocolo serial sincrónico llamado “In Circuit Serial Programing” comúnmente llamado ICSP o programación serie en circuito. Por este método puede grabarse la memoria de programa, memoria de datos Eeprom y registro/s de configuración, directamente en la placa y de esta forma programar o bien actualizar el software del microcontrolador sin tener que retirar a este de la tarjeta de circuito.

No es necesario conocer o estudiar los fundamentos teóricos del protocolo ICSP (comandos, flujo de datos, temporizaciones, etc),  solamente tenemos que estar familiarizados con las señales que lo conforman para evitar tener problemas a la hora de implementar un conexionado, fabricar un conector o diseñar una placa que soporte el ICSP.

La comunicación ICSP requiere de las siguientes señales:

1- ICSPDAT o PGD: Datos de Programación; es una lí­nea de datos bidireccional sincrónica serial.

2- ICSPCLK o PGC: Reloj de Programación; es una lí­nea unidireccional sincrónica serial de reloj que va desde el programador hasta el microcontrolador.

3- VPP: Voltaje de Programación; cuando es aplicado, el microcontrolador entra en el modo Programación.

4- VDD: Suministro de voltaje positivo.

5- VSS: Negativo

La mayorí­a de los programadores de microcontroladores tienen un conector con las anteriores señales pero puede variar la disposición del conexionado.

En caso de programar un microcontrolador individualmente sobre un zócalo para después trasladarlo a la aplicación, el diagrama de conexionado es como el de la figura 1.

Imagen Enviada


Figura 1


Para la programación “In-Circuit”, el circuito de la 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 por los diversos componentes del circuito. La Figura 2 muestra un circuito tí­pico como punto de partida para diseñar un circuito de aplicación para ICSP.


Imagen Enviada


Figura 2


Nota: 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 se indica en las  figuras 1 y 2.

Como podemos ver, para la programación es necesario suministrar dos tensiones: una de alimentación al microcontrolador (VDD) con un valor nominal de 5 volts y otra de programación (VPP) con un valor nominal de 12 – 13 volts. Toda la familia de microcontroladores 12Fxxx 16Fxxx 18Fxxxx trabaja con estos valores. Existen además otros microcontroladores Pic cuyo margen máximo de tensión es de 3.3 volts tanto para VDD como para VPP, estos Pic son referenciados en su nomenclatura con la letra “J”. Un ejemplo es la lí­nea de microcontroladores 18FxxJxx.
Cabe aclarar que la tensión VPP sólo es necesaria para la programación del dispositivo.

Bueno gente, después lo continuamos.  (y)





  • 0

#2 WillyP

WillyP

    Member

  • Miembro Platino
  • PipPip
  • 22 mensajes

Escrito 22 febrero 2009 - 06:11

De nuevo por aquí­ para continuar con lo que comenzamos.

En todos los data sheet suministrados por el fabricante Microchip y accesibles desde su página de Internet, http://www.microchip.com están detallados los pines adecuados para la conexión ICSP de cada tipo de dispositivo PIC.

En general la disposición de los pines en los microcontroladores más utilizados es la siguiente:

Microcontroladores de 8 pines lí­nea 12F

Pin 1 = Vdd  (voltaje positivo)
Pin 4 =  Vpp  (voltaje de programación)
Pin 6 = Ck    (ICSPCLK – PGC)
Pin 7 = Data  (ICSPDAT - PGD)
Pin 8 = Gnd  (negativo Vss)

Microcontroladores de 18 pines lí­nea 16F

Pin 14 = Vdd  (voltaje positivo)
Pin 4 =  Vpp  (voltaje de programación)
Pin 12 = Ck    (ICSPCLK – PGC)
Pin 13 = Data  (ICSPDAT - PGD)
Pin 5 = Gnd  (negativo Vss)

Microcontroladores de 28 pines lí­nea 16F / 18F

Pin 20 = Vdd  (voltaje positivo)
Pin 1 =  Vpp  (voltaje de programación)
Pin 27 = Ck    (ICSPCLK – PGC)
Pin 28 = Data  (ICSPDAT - PGD)
Pin 8 - 19 = Gnd  (negativo Vss)

Microcontroladores de 40 pines lí­nea 16F / 18F

Pin 11 - 32 = Vdd  (voltaje positivo)
Pin 1 =  Vpp  (voltaje de programación)
Pin 39 = Ck    (ICSPCLK – PGC)
Pin 40 = Data  (ICSPDAT - PGD)
Pin 12 - 31 = Gnd  (negativo Vss)

Uno de los programadores de microcontroladores Pic más fácil y económico de construir es el conocido JDM, la comunicación es por el puerto serie de la PC y no necesita fuente externa de alimentación ya que es suministrada por el propio puerto. En este tipo de programadores no se utiliza el protocolo RS232 de comunicación, sino una emulación del protocolo ICSP utilizando las señales de control del puerto serial: RTS, CTS, DTR y TXD.

El esquema electrónico completo lo vemos en esta figura y podemos observar la salida del conector ICSP que detallamos anteriormente:

Imagen Enviada


Lista de componentes

      R1 = 1.5 K
      R2 = 10 K
      D1 a D4 = Diodos 1N4148
      Z1 = Diodo Zener 5.1 volt 1/2 watts
      Z2 = Diodo Zener 6.2 volt 1/2 watts
      Q1 - Q2 = BC547
      Led = Led rojo
      EL1 = Electrolí­tico 47 uf x 16 volt
      EL2 = Electrolí­tico 100 uf x 16 volt

      Conector serie DB9
      Conector para salida de programación ICSP

El software que podemos utilizar para este programador es el ICProg de distribución libre y gratuita, se puede descargar directamente desde la página del autor:
http://www.ic-prog.com/index1.htm


  • 0

#3 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 22 febrero 2009 - 06:20

Hola WillyP, buen aporte. (y)


Un Saludo.

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.962 mensajes
  • LocationMéxico

Escrito 01 marzo 2009 - 09:07

Muy interesante artí­culo, muchas gracias amigo WillyP.

Me pregunto porque no hacer un programa nosotros mismos, será mucho problema?

Salud OS
  • 0

#5 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 01 marzo 2009 - 09:12

Muy interesante artí­culo, muchas gracias amigo WillyP.

Me pregunto porque no hacer un programa nosotros mismos, será mucho problema?

Salud OS


Hola carnal, el programador por usb que esta en este mismo foro es de WillyP. ;) Lo que estaria bueno es hacer un entorno que se pueda editar programas en Pascal y incorporarlo a ese programador.

Un Saludo.

#6 WillyP

WillyP

    Member

  • Miembro Platino
  • PipPip
  • 22 mensajes

Escrito 01 marzo 2009 - 09:31

Me gustan esas ideas, como serí­an?
  • 0

#7 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 01 marzo 2009 - 09:58

Me gustan esas ideas, como serí­an?


Hola WillyP,  yo hace algun tiempo que intente hacer algo de esto.La idea no salio de mi, me la sugirio un amigo y esto se remonta a la epoca cuando estabamos cautivos en Egipto. :p Entonces pues cree un hilo y intente hacer el entorno de desarrollo en Pascal para los micros 8051.La idea era un editor Pascal, un interprete, un copilador y despues integrarle un programador.Pero la idea solo quedo en eso, no llego muy lejos a pesar que cuando cruzamos el Nilo, me la traje bajo el brazo.Muy poco aporte al proyecto y dentro de ese aporte " Una regañada de uno de los Maestros" Entonces pues la idea se quedo solo en eso.El Delphi mio no da para tanto, no pasa de hacer alguna que otra cosita y pues se quedo el proyecto dormido. 8-)


Un Saludo.

#8 WillyP

WillyP

    Member

  • Miembro Platino
  • PipPip
  • 22 mensajes

Escrito 01 marzo 2009 - 10:42

Hola Jose Fco, entiendo, no es más ni menos que un IDE. Hay unas herramientas GNU llamadas  “GPUTILS”  para microcontroladores Pic que ya realizan la compilación, simulación. Son llamadas con parametros de lí­nea de comandos desde una aplicación. Están siendo utilizadas en Linux pero con soporte también para plataformas Windows y otras.

http://gputils.sourceforge.net/

El tema es el Editor y el interprete.

Saludos.- 

  • 0