You are on page 1of 23

PCTRONICS

Tcnicas de Hardware con microcontroladores MICROCHIP


Tcnicas para ahorrar hardware
Ral Barreto Quinteros 10/26/2011

Basado en la nota de aplicacin AN234 Hardware Techniques for PIC microcontrollers de microchip, y el Resumen tcnico TB40040B Tips and tricks for 8 bits pic micro y otras experiencias propias del autor

Contents
Rompiendo mitos .......................................................................................................................................... 2 TIP 1. Los voltajes superiores a 5V no daan tu PIC ..................................................................................... 3 TIP 2. Comunicacin sin acondicionador de niveles TTL/RS232 ................................................................... 5 TIP3. Leyendo varios pulsantes con un solo I/O pin (mtodo I) .................................................................. 7 TIP4. Leyendo varios pulsantes con un solo I/O pin (mtodo II) ................................................................. 7 TIP5. Manejando mltiples LEDS .................................................................................................................. 9 TIP 6. Manejo de Displays de 7 Segmentos ................................................................................................ 11 Kit de entrenamiento para PIC de 8 pines .................................................................................................. 13 Recursos del kit de entrenamiento ............................................................................................................. 14 Referencias.................................................................................................................................................. 15 Agradecimientos ......................................................................................................................................... 16

Tecnicas de Hardware con PICMicros Microchip


Muchos de los conceptos que vamos adquiriendo a travs del tiempo, tal vez fueron vlidos para ese momento; Pero, lo que antes era cierto; ahora en la actualidad que vivimos ya no lo es; o simplemente, lo que te ensenaron tus amigos, colegas y profesores estuvo mal o habr que reconsiderarlo; es bueno romper paradigmas, abrir la mente y el espritu para dejar que nuevas y revolucionarias ideas fluyan por tu mente y te hagan crecer, como tcnico y como persona; con este articulo te pretendo mostrar un conjunto de sugerencias para mejorar el desempeo y aminorar el costo de tus proyectos basados en microcontrolador, para ello debers dejar de pensar en la forma tradicional y dar paso a las nuevas tendencias

Rompiendo mitos
Sabas que? Puedes ingresar directamente a tu microcontrolador una seal de varios cientos de voltios sin provocar dao alguno en el mismo Puedes comunicar directamente al microcontrolador con tu PC sin necesidad de MAX232 u otro circuito transistorizado Puedes conectar un teclado matricial 4x4, utilizando un solo pin del microcontrolador Puedes encender 12 LEDS individuales con solo 4 pines Puedes leer seales analgicas sin necesidad de un conversor AD

Me dirs que estoy loco, o que soy un mentiroso, ms todas las afirmaciones anteriores, son ciertas, te invito a que leas el siguiente artculo y compruebes por ti mismo

TIP 1. Los voltajes superiores a 5V no daan tu PIC


Cada pin del microcontrolador, excepto MCLR y TOCK, posee un circuito interno de proteccin contra sobre voltajes, as que puedes tu recibir seales de varios de cientos de voltios sin provocar dao alguno a tu CHIP

Figura 1. Circuito interno de proteccin contra sobre voltajes Te explico; internamente cada pin tiene dos diodos recortadores de tensin; as que cualquier tensin que ingresa ser limitada entre VSS y VDD. Por lo dicho anteriormente; si ingresas una tensin 120Vac al pin de tu microcontrolador; el circuito la limitara entre 0 y +5V. Ahora; la corriente si es un asunto para preocuparse; debes de limitarla con un resistor; cuyo valor se calcula de la ley de OHM. ( )

Ejemplo: Segn la hoja de datos cada pin puede soportar 25mA y deseas recibir una seal de 115V alterna Cul es el valor de la resistencia que te servir para limitar la corriente?

Entonces se recomienda colocar una resistencia limitadora mayor a 3K2. Entre 3K2 y 6M se recomienda (ver Figura 2) Ya no ms transformadores u optoacopladores, que incrementan el tamao y el costo de tu PCB!

Figura 2. Resistor de 5M limita la corriente que ingresa al microcontrolador Los pines MCLR y TOCK solo tienen un diodo limitador de tensin a VSS voltios; as que si deseas recibir seales de potencia en estos pines; debers colocar un diodo externo que limite la tensin a VDD. Ver figura siguiente:

Figura 3. Acondicionamiento del pin MCLR y TOCK para recibir superiores a VDD A continuacin te muestro una simulacin en ISI que muestra cmo una de 120Vac, 60Hz es recortada a un rango entre 0 y +5V I/O

D1
Vin(ac)

R1
10k

DIODE

V(micro)

D2
DIODE

Figura 4. Seal de 120VAC es recortada a un rango entre 0 y +5VDC


4

TIP 2. Comunicacin sin acondicionador de niveles TTL/RS232


Por lo dicho anteriormente, los pines del microcontrolador estn protegidos contra sobre voltaje; y si varios cientos de voltios no matan a tu PIC; peor an lo van a matar los +15 y -15 voltios que genera el computador durante la comunicacin RS232. Durante la comunicacin serie el transmisor del PC genera una onda cuadrada que vara entre -15 a +15; Por lo tanto lo nico que necesitaras es limitar la corriente con una resistencia que calculamos de la formula (1.1)

Una resistencia cuyo valor es mayor a 600 ohmios y menor 22K se recomienda Ahora; el PIC enviara al PC una seal comprendida entre 0 y +5 Voltios; no hay necesidad de amplificarla; el PC la reconocer sin ningn problema. De seguro te estars peguntando Qu papel desempean entonces los adaptadores de nivel TTL-RS232? Respuesta: La norma USART indica que los niveles RS232 deben estar entre el rango de -15V y +15V. Para garantizar la comunicacin a distancia mxima de 30 metros. Pero si nuestro microcontrolador va a estar como mximo a 2m de distancia del computador, Qu necesidad tenemos de esos voltajes?

Figura 5. El MAX232 es un inversor


5

El adaptador de niveles RS232 lo que hace es amplificar la seal que genera el PIC y atenuar la seal que genera el PC. Pero tambin invierte a esa seal. Si queremos ahorrarnos el de adaptador de niveles; tenemos que configurar en el software terminal de comunicaciones, como comunicacin invertida. (RX/TX Polarity)

Figura 6. Configuracin del hiperterminal cuando no utilizas un adaptador de nivel (Virtual terminal de ISIS te da esa opcin en su ventana de propiedades) A continuacin te presento un fragmento de la informacin que ofrece el manual de PIC Basic Pro:

Figura 7. Fragmento del manual PICBASIC PRO Compiler de microingeneering Labs Yo he comunicado al PIC y la PC sin adaptador nivel incluso a 3 metros de distancia el uno del otro y no he tenido ningn problema; Simplemente asegrate de invertir la polaridad de transmisin RX/TX polarity. Al MAX232, a los transistores y capacitores; ya le podemos decir adis!
6

TIP3. Leyendo varios pulsantes con un solo I/O pin (mtodo I)


Mtodo I. Requiere de medir el tiempo de carga de un capacitor. Partiendo del conocimiento y la experiencia; podemos decir que en un circuito RC el tiempo que demora en cargarse un capacitor es directamente proporcional al producto de la resistencia por su capacitancia

Figura 8. Mtodo de carga del capacitor, necesitara de un PIN con modulo comparador En la figura 8, cada vez que pulsemos un botn el capacitor comenzara a cargarse, cada botn genera un tiempo de carga distinto; si logramos medir cual ese tiempo de carga; sabremos que botn fue presionado. La secuencia de software para el circuito de la figura 8 sera la siguiente: 1. Configure el pin como salida y a un nivel lgico BAJO para descargar el capacitor a travs de la resistencia de R5 2. Configure el pin como entrada a un comparador y CVref como la otra entrada a comparar. 3. Utilice un TIMER para medir el tiempo en el que el comparador es disparado. Si el tiempo es mayor al mximo permitido; entonces regrese al paso 1; caso contrario determine que botn fue presionado

TIP4. Leyendo varios pulsantes con un solo I/O pin (mtodo II)
Mtodo II. Utilizando el conversor AD En la figura 9 se muestra un circuito tpico para conectar varios pulsantes a un solo pin analgico; partiendo que R1 es diferente a R2 y que R2 es diferente a R3, dependiendo del botn que sea presionado, un voltaje distinto aparecer en el pin ADC. Encuestando el estado del conversor AD; podremos identificar que botn fue presionado. En caso de que uno o ms interruptores se cierren a la vez, las combinaciones de dos o ms botones cerrados generaran voltajes distintos y tambin podrn ser identificadas 7

Figura 9. Como identificar a varios interruptores con un solo pin analgico Haciendo una extensin a lo anteriormente dicho; en la figura 10 muestro como podra conectarse un teclado matricial de 4x4 a un solo pin analgico del microcontrolador. Note que este circuito tiene un valor prctico solo cuando se desea detectar una tecla a la vez. Detectar combinaciones de 2 o ms teclas pulsadas, ya resulta demasiado complicado.

Figura10. Leyendo un teclado matricial con un solo pin analgico Con un PIC de 8 pines podremos manejar teclado y display a la vez eso s que es ahorro! 8

TIP5. Manejando mltiples LEDS


El diodo emisor de luz es uno de los dispositivos ms populares para ser conectado a un PICmicro, los microcontroladores de microchip son ideales para manejar LEDS, ya que proporcionan la corriente suficiente, desafortunadamente el nmero de salidas disponibles es un limitante; debido al costo, para resolver este problema; dar unas pocas sugerencias Manejando dos LEDS con un solo pin Manejando seis LEDS con tres pines Manejando doce LEDS con cuatro pines

Los diodos te permiten conducir corriente en una sola direccin; teniendo en cuenta aquello; la siguiente figura te muestra cmo manejar dos diodos LED con un solo pin

Figura 11. Manejando dos LEDS con un solo PIN Funcionamiento Si a la salida escribimos un nivel lgico BAJO, D1 se encender, D2 se apagara; Si escribimos nivel lgico ALTO D2 se encender, D1 se apagara Si intercambiamos entre nivel lgico bajo y nivel lgico alto proporcionando as una onda cuadrada de frecuencia suficientemente veloz; parecer que los dos LEDS estn encendidos a la vez Si a la salida le hacemos entrada, D1 y D2 permanecern apagados El mismo concepto puede extenderse a seis y a doce LEDS manejados por tres y cuatro pines respectivamente (figura 12 y 13)

Figura 12. Manejo de 6 LEDS con tres pines

Figura 13. Manejando 12 LEDS con 4 pines En las configuraciones mostradas en figuras 12 y 13 solo un LED podr encenderse a la vez y requiere de dos pines (el que se pondr en nivel lgico ALTO y el que se pondr en nivel lgico BAJO). Por ejemplo; Para encender D1 tendremos que configurar Digital I/O R2 como ALTO y Digital I/O R1 como BAJO; los dems pines se configuraran como entradas para que la corriente no fluya por ellos Si deseamos hacer parecer que dos o ms LEDs estn encendidos a la vez, tendremos que programar una secuencia que se repita lo suficientemente rpido para que el ojo humano no pueda captar el parpadeo de los LEDS Este mtodo de multiplexaje es efectivo hasta doce LEDS; ya que manejar ms de doce se complicara enormemente el firmware y el parpadeo se hara cada vez ms visible.

10

TIP 6. Manejo de Displays de 7 Segmentos


El mtodo de multiplexaje descrito anteriormente puede extenderse al manejo de displays de 7 segmentos; la figura 14 muestra cmo manejar un display de dos dgitos con nicamente 8 pines

Figura 14. Manejo de un display de dos dgitos Note en la figura que; el display de las decenas es nodo comn (CA) y el de las unidades es catodo comn (CC). Entonces solo un digito permanecer encendido a la vez; deberemos nuevamente intercambiar entre niveles ALTO y BAJO a una frecuencia lo suficientemente veloz como para hacer creer que los dos displays estn encendidos a la vez Ahora te mostrare algo sorprendente; haciendo una extensin a lo aprendido; En la figura 15 se muestra cmo manejar un display de 16 dgitos con nicamente 16 pines; es decir un digito por cada pin. Algo que no podras lograr ni con dos microcontroladores de 40 pines juntos utilizando el mtodo tradicional

11

Figura 15. Manejando 16 digitos con un consumo de 16 pines

12

Kit de entrenamiento para PIC de 8 pines


Todos los TIPS que he mencionado aqu son vlidos para ser implementados en un PIC de 8 o ms pines (excepto el control de display de 16 digitos). Te propongo el diseo de un PCB que te permitir experimentar con microcontroladores PIC de la familia 12XXXX. Fue desarrollado en ARES y a continuacin te muestro algunas imgenes 3D del prototipo en proceso de construccin.

Figura 16. Vistas 3D del Kit de Entrenamiento para PIC de 8 pines No te dejo las fotos reales del PCB porque no tengo ninguno a la mano; sin embargo ya est en proceso de construccin y uno de estos das le tomo unas fotos para que lo conozcas. El diseo ha sido revisado minuciosamente y espero no haber cometido ningn error; todo esto lo sabr cuando ya lo ponga en funcionamiento. Probabilidad de un 99.99% que funciona! 13

Recursos del kit de entrenamiento


El kit de entrenamiento posee los siguientes recursos: Regulador de Voltaje +5V Conector ICSP para grabar el PIC sin necesidad de desmotarlo del circuito Conector DB9 para comunicacin RS232 Jumpers para poner en modo grabacin o modo RUN Borneras de acceso a cada pin del microcontrolador

La imagen explica mejor que mil palabras:

Figura 17. Recursos del kit de entrenamiento para PICmicros de la familia 12xxxx D2 y D3 son diodos rectificadores 1N4004 o 1N4007 JP1 y JP2 son jumpers para seleccionar en modo PROG o modo RUN (el esquemtico se muestra en el apndice A) 14

Referencias
Para escribir esta nota de aplicacin me he basado varios documentos tcnicos que presento a continuacin: TIP 1. Los voltajes superiores a 5V no daan tu PIC. AN521 de microchip AC power lines intefacing TIP2.Comunicacion RS232 sin adaptador de niveles TTL/RS232 PIC Basic Pro Compiller manual de microengineering labs TIP3. Leyendo varios pulsantes con un solo pin (mtodo I) AN234 Hardware techniques for PICmicro microcontrollers TIP4. Leyendo varios pulsantes con un solo pin (mtodo II) AN234 Hardware techniques for PICmicro microcontrollers TIP5. Manejando multiples LEDS TB029 Complementary LED Drive technical brief TIP6. Manejando displays de 7 segmentos TB029 Complementary LED Drive technical brief

Todas las notas de aplicacin, excepto el manual de PIC Basic Pro, puedes descargarte en la pgina www.microchip.com ah encontraras ms TIPS interesantes, que te permitirn ahorrar hardware y en consecuencia todo esto se ver traducido en economa. Es verdad que el software se complica un poquito; pero si te diseas un conjunto de rutinas en el lenguaje que utilizas ese problema quedara resuelto para futuros proyectos

15

Agradecimientos
Considero firmemente que la mejor manera de aprender es compartiendo el conocimiento; por ello dedico un tiempo de mi da a escribir estas notas de aplicacin que semanalmente brindo a cada uno de ustedes. Agradezco mucho su atencin, sus comentarios, sugerencias y crticas constructivas vayan en favor de este proyecto. Atentamente

Ral Barreto Quinteros. Ecuador, 28 octubre 2011 dino_barreto@hotmail.com. Telf.:087017318

No supe comprender nada entonces! Deb juzgarla por sus actos y no por sus palabras. La flor perfumaba e iluminaba mi vida y jams deb huir de all! No supe adivinar la ternura que ocultaban sus pobres astucias! Son tan contradictorias las flores! Pero yo era demasiado joven para saber amarla". Antoine Saint Exupery El Principito-

16

J1
1 2 3 4 CONN-SIL4

U1
2 3 4 GP5/OSC1 GP4/OSC2 GP3/MCLR PIC12C509A K GP0 GP1 GP2/T0CKI 7 6 5 RX TX 1 2 3 4

J3

U2
7805

D2

R2
10k

D3
VI GND 1 BAT42 1 2

J5

CONN-SIL4

VO

DIODE

J2
1 2 3 4 5 CONN-SIL5 VPP VDD VSS DAT CLK 2

C2
100nF

R1
1.5k

SIL-156-02

C1
100u

RESET

D1
1 K LED

JP2
JUMPER2

J4
5 9 4 8 3 7 2 6 1 CONN-D9F

R3
22k

JP1
JUMPER2

PCTronics
Email: dino_barreto@hotmail.com Telefono: 087017318

Prj #No: 3

Titulo: Kit de entrenamiento Descripcion: Valido para microcontroladores PIC de 8 pines Autor: Raul Barreto Quinteros

Vistas 3D

PCB Vista frontal y posterior

PCB Vistas laterales

You might also like