Está en la página 1de 8

Lectura4.

UartyComunicacinSerial

ElATMega168tienetoneladasdehardwareconvariosperifricosincorporados.Vamosaexplorar la comunicacin serial. A esta altura han programado el hello world. Tienes tu micro en una protoboard y corriendo a 16mhz. Tienes funcionando el WinAVR. Ya hemos logrado control de un LED. Ahoraestiempodeenviardatosserialesdedesdeyhaciaelmicro. No soy un gran programador. Slo quiero que mi funcin printf haga lo que deba hacer. No uso ningnemuladordehardware,hagodebugconcomandosprintf.Seguro,puedenhaberlimitacionescon esto,peroparael90%delasaplicacionesesposibledepurarconcomandosprintf. Primero, una rpida resea histrica del RS232. Qu es RS232? Slo es un nombre para un estndar que se ha propagado de generacin en generacin de computadores. Los primeros computadores tenan puertos seriales que ocupaban RS232, e incluso los computadores actuales tienen puertos seriales (o al menos puertos USB que actan como puertos RS232). Una mirada al pasado, la informacin serial necesitaba ser pasada de aparatos como impresoras, joysticks, scanners, etc hacia el computador. La manera ms simple de hacer esto era pasar series de 1s y 0s al computador. El computadoryeldispositivoacuerdanunavelocidaddeinformacinbitsporsegundo.Un computador pasar los datos de una imagen a una impresora a 9600 bits por segundo y la impresora escuchar este flujode1sy0s,esperandounnuevobitcada1/9600=104us(104microsegundos,0.000104segundos). Mientraselcomputadorentreguelosbitsalavelocidadpredeterminada,laimpresorapodrrecibirlos. Un zoom a la actualidad. La electrnica ha cambiado un poco. Antes se utilizaban aparatos de relativamente alto poder y alto voltaje, 12V a 12V. Los aparatos modernos no operan a voltajes tan altos. De hecho, ATMega168 corre entre 0V y 5V. Entonces como hacemos hablar el RS232 a nuestro microde5Vconvoltajesde+/12V?Esteproblemafuesolucionadoporlosfabricantesdeintegradosdel mundo.FabricaronunICqueesgenricamenteconocidocomoelMAX232(casiRS232ono?). ElMAX232esunICoriginalmentediseadoporunacompaallamadaMaximICqueconviertelas seales de +/12V del RS232 a seales de 0/5V para que nuestra ATMega168 pueda entenderlas. Tambin aumenta el voltaje de nuestra ATMega168 al voltaje de +/12V que necesita el protocolo de RS232paraqueelcomputadorpuedaentendernuestraATMega168yviceversa.Parahacerquenuestro ATMega168 enve caracteres seriales a un computador necesitamos enviar estas seales a travs de un circuito MAX232, para que el computador reciba seales de RS232 a +/12V. No te preocupes si ests ocupandounchipquedigaICL232oST232,estossongenricosdeMAX232.Lasfuncionessontodas lasmismasyprcticamentetienenlosmismospinesdesalida.

Ingeniera MCI Ltda. Luis Thayer Ojeda 0115 of 402, Providencia, Santiago, Chile Fono: + 56 2 3339579 Fax: +56 2 3350589

2|L e c t u r a 4 ElcircuitoMAX232queserinstaladoenlabreadboardseveas:

CircuitoMAX232enEagle,esquemtico/PDF

Este integrado MAX232 usa tres condensadores de 0,1 uF (C5, C6, C7) para funcionar (lee sobre Multiplicador de tensin). Tienes que instalarlos. El cuarto (C8) es lo que se conoce por condensador dedesacoplo.ComoelintegradoMAX232conmutavariasseales(desde+/12Va0/5V)usapulsosde corriente. Debido a que necesita estos pulsos de corriente en rfagas, l puede perturbar tu alimentacin de 5V. El condensador C8 de 0,1 uF ayuda a desacoplar o remover el efecto negativo de este integrado (intercambiando cargas hacia y desde) de tu alimentacin. Este condensador de desacoplodebesersituadocercadelospinesdeVCCyGNDdelIC.Estaconfiguracinayudaadisminuir el ruido en tu fuente de poder. Vas a hacer funcionar tu protoboard sin esos condensadores de desacoplo?Seguroques!Nolosuses!Perollegareldaenquealgodejardefuncionarynotendrs ideaelporque.Podrasermicdigo?Tengouncortocircuitoenalgnpunto?Unadesconexin?Oa lomejornotengosuficientescondensadoresdedesacoplo? Un condensador de desacoplo est destinado a proveer de una veloz rfaga de energa si la alimentacin no es suficiente, es como una especie de sistema UPS para tu integrado. Mientras mas lejano este el condensador de desacoplo del IC, menor es su habilidad para proveer esta rfaga de energa (los cables largos tienen cierta capacitancia inherente). Es una buena prctica de la ingeniera siempre tener al menos un condensador de 0,1 uF cerca de cualquier IC. Colocarlos a un centmetro de
Ingeniera MCI Ltda. Luis Thayer Ojeda 0115 of 402, Providencia, Santiago, Chile Fono: + 56 2 3339579 Fax: +56 2 3350589

3|L e c t u r a 4 lospinesdeVCCyGNDeslocorrecto.Colocarlosentodosladosdetuprotoboardnoesperjudicial,pero noserndemuchautilidad. JP2 es un conector DB9. Es llamado conector DB9 porque contiene 9 pines y es usado universalmente para conexiones seriales. Necesitars tener un cable serial macho a hembra para conectar el DB9 de tu protoboard a tu computador. El extremo macho del cable tiene los pines metlicos, el extremo hembra tiene el plstico de color negro o azul que recibe los pines. Si miras de cercaaunconectorDB9real,versunospequeosnmeroscercadelosorificios. Entonces que hace todo esto? El ATMega168 enviar seales de 5V al MAX232. El MAX232 pasa a convertir esas seales de 5V a seales RS232 de +/ 12V que el computador pueda entender a travs del puerto DB9 que posee atrs de la carcasa. Reconocemos que esto puede ser un poco difcil de configurarenun principio.Creersqueunavezlo hasconfiguradosteser tusalvacin? Laconexin serialloestodo!Lanecesitarsencasitodaslasaplicacionesquedesarrolles.

ProtoboardconunMAX232yunagranconexinderetornoinstalada.

Una vez que todo este conectado, necesitars abrir un programa de terminal. Si ests ocupando Windows,puedesabrirelHyperterminalincluido,normalmentelocalizadoenprogramasaccesorios comunicaciones. Para la gente de linux y apple, probablemente sepan como llegar a un programa de terminal.
Ingeniera MCI Ltda. Luis Thayer Ojeda 0115 of 402, Providencia, Santiago, Chile Fono: + 56 2 3339579 Fax: +56 2 3350589

4|L e c t u r a 4 Todoslosprogramasdeterminalestienenbsicamentelasmismasfunciones:hacercomunicacin serial. Todo lo que necesitas especificar son algunas reglas simples para que tu micro corra de forma satisfactoriacontucomputador.VeamoslasImgenesdelHyperterminal:

Llamalasesincomoquieras

LomscomnesquetupuertoserialseaCOM1

Ingeniera MCI Ltda. Luis Thayer Ojeda 0115 of 402, Providencia, Santiago, Chile Fono: + 56 2 3339579 Fax: +56 2 3350589

5|L e c t u r a 4

Quieres9600bpscon8n1sincontroldeflujo

Laconfiguracinprincipalson9600bpsy8N1.EstosignificaqueelmicroyelPCacuerdanhablar a9600bitsporsegundo(bps)yquecadabytetendr8bitsdedata,sinbitde paridad,yconunsolobit deparada.Este8N1esbastantecomnybsico.Sitegustaeldolor,infrmatesobrelaparidad,bitde paradade1.5y5bitsdedata.Nadieocupaesorealmenteenelmundodelasprotoboards. Ok, ya tienes el Hyperterminal abierto y corriendo. Ya tienes tu MAX232 (o circuito equivalente) conctalo y dale poder. Antes de conectar el cable a tu micro, prueba que los circuitos del MAX232 funcionen. La forma mas fcil de probar si funciona es conectar el TX con el RX. Esto se llama bucle de retorno (el cable grande amarillo en la ltima foto) cuya funcin es hacer que lo que se enve por TX se devuelvahaciaRX.Bastanteautoexplicativo,slosigueadelante: Cuando presionas la letra A en tu PC por la ventana del Hyperterminal, una serie de 1s y 0s se generan y salen a travs del Puerto serial en la parte trasera de tu PC (8 bits: 01000001 para ser especifico =65d = 41h, ve www.asciitable.com para mas informacin) estos 0s y 1s llegan a la MAX232 en tu protoboard quien se encarga de cambiar estasseales RS232 a TLL. Los 0s y los 1s luego salen por elpinR1OUT.DebidoaquejuntastelospinesTXyRX(R1OUTdebesercortocircuitadoaT1IN)estos0sy 1s son enviados de vuelta al MAX232 y llevados al cable serial DB9. Despus de llegar al computador, l ve estos 1s y 0s y dice OH! , hay un dispositivo pasndome el carcter ASCII A. El computador luego muestra el carcter A en la pantalla del Hyperterminal. Esta es la esencia de una prueba de bucle de retorno. Si todo esta correcto, deberas poder presionar cualquier tecla de tu teclado y ver esas letras
Ingeniera MCI Ltda. Luis Thayer Ojeda 0115 of 402, Providencia, Santiago, Chile Fono: + 56 2 3339579 Fax: +56 2 3350589

6|L e c t u r a 4 replicadas en la ventana del terminal. Tira el jumper hacia fuera y las letras deberan para de replicarse. Lo tienes? salo! En el futuro, cuando necesites probar una interface serial,cortocircuita TX y RX para asegurarsedequelascosasestnfuncionandodemaneracorrecta. Bien, Ya tienes el MAX232 funcionando correctamente. Ahora conecta los pines TX y RX del ATMega168alcircuitoMAX232.

CircuitodeunATMega8confuentedepoderyMAX232enEagle,esquemtico/PDF

Debes haber notado que C9 aparece mgicamente al lado del ATMega168 en el esquema de arriba. Este es un condensador de desacoplo de 0,1 uF para el ATMega168. Un condensador de 0,1 uF instalado cerca de los pines VCC y GND del ATMega168 ayudar a reducir el ruido desde la fuente de poder que pueda ser inyectada en la ATMega168. De nuevo, tu protoboard correr perfectamente sin los condensadores de desacoplo pero quiero que te acostumbres al hbito de usar los 0.1uF en todo momento.

Ingeniera MCI Ltda. Luis Thayer Ojeda 0115 of 402, Providencia, Santiago, Chile Fono: + 56 2 3339579 Fax: +56 2 3350589

7|L e c t u r a 4

ConexionesTXyRXentreelMAX232yelATMega8

Algunos astutos notarn que en la imagen (invertida) el IC MAX232 es actualmente un SP3232(EBCP).QuesunSP3232?,eselSipex genricoparael MAX232.Notasel3frenteal232? Los integrados MAX232 originales eran diseados para interconectar 5V lgicos a RS232. Como los circuitos comenzaron a operar con voltajes menores (3.3 volts por ejemplo), los fabricante de estos IC tuvieron que redisear los MAX232 para hacerlos ms eficientes, poder tomar voltajes menores y aumentarlosa12VparaelRS232.DeahnaceladesignacinSP3232.EsteICpuederecibirsealesTLL de 3V y satisfactoriamente convertirlas a RS232. Estamos operando nuestra protoboard a 5V pero podemoscorrerelMAX232desde3Va5Vsinproblemas. Trivia: En la imagen anterior, Qu integrado es de una familia ms antigua? Estos ICs tienen unos cdigos de fecha de produccin simples: 0641 y 0625 que significan que ambos fueron fabricados en el 2006,enlassemanas41y25deeseao. Ya tienes un hardware que puede generar instrucciones printf. Vamos a enredarnos con cdigos ahora!
Ingeniera MCI Ltda. Luis Thayer Ojeda 0115 of 402, Providencia, Santiago, Chile Fono: + 56 2 3339579 Fax: +56 2 3350589

8|L e c t u r a 4 Comentariodeunlector: "Los amigos no dejan que sus amigos usen Hyperterminal. Es un programa apestoso. TeraTerm funcionamuchomejor." Estamos de acuerdo. Hyperterminal tiene hartos bugs y se pega seguido. TeraTerm es mucho mejor. Sin embargo, prcticamente todas las instalaciones de Microsoft en el planeta tienen Hyperteminal incluido, estamos obligados a usarlo para introducir fcilmente a los lectores a las comunicacionesseriales.Engeneral,unavezqueyadomineslavallaserial,dejadeusarHyperterminaly comienzaconTeraTerm. Para armar el circuito de esta lectura necesitars los mismos elementos de las lecturas anteriores e incluir un integrado MAX232, 5 condensadores cermicos de 0,1 uF ms un conector DB9 y un cable serialquepuedesadquirirlosennuestratiendaowww.olimex.cl.
Estas lecturas son una traduccin al espaol del tutorial Beginning Embedded Electronics Tutorials desarrollado por SparkFun Electronics. Traducido para Ingeniera MCI por Julin Aguayo. Revisado y corregido por IvnSarmientoyPaulAguayo. Estamosabiertosacomentarios!Reportatustips,comentariosorecomendacionesainfo@olimex.cl.

Ingeniera MCI Ltda. Luis Thayer Ojeda 0115 of 402, Providencia, Santiago, Chile Fono: + 56 2 3339579 Fax: +56 2 3350589

También podría gustarte