Buscar en este blog

viernes, 20 de enero de 2012

Clon del programador PicKit 2 y su uso como analizador lógico

Hace algunos años intenté hacer algo con un microcontrolador PIC 16F84A. Lo máximo que llegué a hacer fue manejar algún LED y cuatro displays 7 segmentos mediante multiplexado. En ese entonces utilicé el programador de Pablin por puerto paralelo.

Lo que queda del programador Pablin que armé hace algunos años 
Más adelante, para el circuito sensor de temperatura que publiqué hace un tiempo, necesité grabar un PIC 12F675 y no recuerdo si intenté programarlo con el programador de Pablin pero lo cierto es que no resultó tan fácil como con el 16F84A. Finalmente logré grabarlo con el programador RCD pero la grabación no siempre resultaba exitosa.

Recientemente intenté grabar un PIC 16F628A (que al final resultó estar roto) con el programador RCD pero no pude. Armé entonces una versión para zócalo de 18 pines del programador MultiPic 5 ver. 2 y tampoco pude. Estuve varios días intentando buscar la posible falla así como otros posibles programadores que funcionaran.

Finalmente decidí comprar un programador comercial. Más específicamente un clon del PicKit 2 de Microchip. El precio fue de $1350 (unos 68 dolares) a un vendedor que ya le había comprado por mercadolibre Uruguay. También le compré un PIC 16F628A.

Clon del PicKit 2
A su vez armé un zócalo para PICs de hasta 18 pines ya que el programador no dispone de un zócalo.
Programador conectado al zócalo ZIF para PICs de hasta 18 pines
Por si les interesa comprar el clon del PicKit 2 en Uruguay, se pueden contactar con Fernando Borba en los teléfonos o mail de su blog http://diselectro.blogspot.com/.

El clon programó de primera el microcontrolador nuevo pero ni siquiera reconoció al que yo ya tenía. Así que es probable que los programdores RCD y MultiPic que había aramado estuviesen funcionando. Algún otro día tendré que probarlos con el PIC nuevo.

Por ahora lo he utilizado solamente bajo Windows XP.

Entre las muchas ventajas que tiene el clon del PicKit 2 está su conexión por puerto USB que permite utilizarlo en cualquier computadora tanto de escritorio como portatil. Esto al parecer no es así con el caso de programadores caseros que utilizan el puerto serie o paralelo; los cuales ya casi no vienen incorporados en las nuevas computadoras portátiles o, si están, es probable que sus niveles de voltaje no sean suficientes para utilizar los programadores caseros.

Pero a su vez, el programador PicKit 2 (y sus clones) poseen las siguientes funciones útiles para depurar el código de un programa:
  • Analizador lógico de 3 canales
  • Envío y recepción de datos mediante el protocolo serie RS232
  • Depurador que permite ejecutar paso a paso el código ya cargado al PIC
A los dos últimos no los he probado pero al analizador lógico lo utilicé para visualizar las señales de la comunicación serie entre la computadora y el PIC 12F675 del circuito sensor de temperatura que publiqué hace un tiempo.
Vista general de la conexión entre el clon del PicKit 2 (izquierda) y el circuito a analizar (derecha)
Para eso utilicé dos canales:
  • CH2 - Pin GP2 del PIC por donde envía los datos hacia la PC
  • CH3 - Pin GP3 del PIC a donde la PC envía la señal de interrupción que levanta al PIC del modo sleep
A su vez hay que conectar los pines VDD y VSS (o GND) del PicKit 2 a los pines VDD y GND respectivamente del circuito cuyas señales queremos visualizar.
Conexiones entre el circuito y el clon del PicKit 2
Para realizar las conexiones al circuito utilizo cables con pinzas cocodrilo en los extremos:

Conexiones mediante pinzas cocodrilo
Me parece que lo mejor es, siempre que se pueda, conectar las pinzas a patas de resistencias así:

Vista de la conexión al circuito mediante pinzas cocodrilo en las patas de las resistencias
El PicKit 2 lo conecto a una placa protoboard de la siguiente forma:

Vista de las conexiones al PicKit 2
El disparo del analizador lo realizo en el momento en que CH2 pasa del estado alto "1" al estado bajo "0". Las señales obtenidas fueron:

Señales de datos e interrupción del circuito sensor de temperatura leídas por el analizador lógico del PicKit 2
Observar que, debido a que los transistores invierten los niveles de señal, los niveles que se observarían en el lado del puerto serie de la PC (en los pines RTS y RX) son el inverso de los niveles mostrados por el analizador.

El analizador permite a su vez medir distancias temporales entre dos puntos. En particular medí el tiempo de envío de un bit del circuito:
Medida del tiempo de bit en la comunicación serie entre la PC y el circuito sensor de temperatura
El resultado obtenido tiene sentido pues el circuito sensor se comunica con la PC a 2400 bps lo que da un tiempo teórico de bit de apróximadamente $\frac{1}{2400} = 416 us$.

Referencias

No hay comentarios:

Publicar un comentario