You are on page 1of 9

Lectura3.

OsciladoresylosFuseBits

Quesunoscilador?
Tienes el LED parpadeando en tu ATMega168, felicitaciones! Es un gran paso. Ahora hay que hacerloparpadearmsrpido! Cargaste el cdigo en el chip y el ATMega168 est corriendo ese cdigo, pero cmo esta corriendo?yqutanrpido?Cualquiermicronecesitaunafuentedereloj.Penselocomountipode ritmomusicalqueelmicrousaparaejecutarelcdigoenciertamanera.Sinunreloj,elmicronosabe como correr el cdigo, y con un reloj irregular (uno que vare mucho) el cdigo correr con un paso indeterminado.Tienesquetenerunrelojdealgntipoyalgunasvecesnecesitarsunopreciso. Hayvariasmanerasdegenerarunritmoparaelmicro.ElAtmega168davariasopciones.Achay unalistadevariostiposdegeneradoresderitmos: RC Externo generalmente usado para aplicaciones de bajo costo. Usando un resistor y un capacitor,la razndecarga/descargapuedeserusadacomounrelojdeentrada.Nuncalohe usado. RC Interno Un muy buen oscilador. Encontrable en los nuevos micros, Puedes pedirle al ATmega168 que genere su propio reloj. El chip tiene incorporado un oscilador. Desafortunadamentenoesmuypreciso. Oscilador Externo este es el modo por defecto y es usado de forma estndar. Conecta un cristaldecuarzo(abreviadocomocristaloXTAL)alosdospinesOSCyelcdigoseejecutarala frecuenciaentregada. ResonadorExternoUnresonadoresunpocomsbaratoqueunosciladorperotienepeores tolerancias. RelojExternoEnvezdeunoscilador,puedesocuparungeneradordepulsosdereloj,elcual es ocupado cuando se necesita que mltiples componentes corran con la misma frecuencia. Tampocoheocupadoestaopcin. Sloheusado3deestas5opcionesasqueesasdescribirmsprofundamente: RCInterno Atmel es muy inteligente. Ellos preconfiguran el ATMega168 para usar un oscilador interno de 1MHZ.ElATMega168(ylosAVRsengeneral)puedenoperarconunainstruccinporciclodereloj.Esto significa que cada vez que el oscilador entra a un ciclo, una instruccin es completada (esto es casi verdadyaquehayalgunasinstruccionesquenecesitanmsdeunciclodereloj).Comoestamosusando
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 3 el tpico ATMega168, corremos el cdigo que parpadea a 1MHz o 1MIPS (milln de instrucciones por segundo).Si,lestebien,unmillndeinstruccionesporsegundo!.Bastanteimpresionante.Culesel problemaconelosciladorinterno?Latoleranciade+5%yunavelocidadmximade8MHz.+/5%de tolerancia significa que tu ATMega168 puede correr a 1000000 * 1,05 = 1050000 IPS cuando el de tu vecinoestcorriendoa1000000*0,95=950000IPS.Estopuedesonaraquenoesmuchadiferencia, pero en el mundo digital es inmensa. Adems Atmega168 tiene una velocidad mxima de 20MHz (el oscilador interno corre como mximo a 8MHz), entonces si realmente quieres llevar al IC al mximo, necesitarsunosciladorexterno. OsciladorExterno. Esteeseltipomscomndegeneradorparasealdereloj.

Los osciladores de cristal de cuarzo vienen para diferentes gustos y frecuencias. Algunas de las frecuencias ms tpicas son de 20MHz, 16MHz, 10MHz y 4MHz. Tambin hay frecuencias como 14,7456MHz,9,216MHzy32,768MHzqueestndisponiblesporqueestasfrecuenciassonmltiplosde velocidadesusadasparacomunicacinserialycoordinacindetiempos.Porejemplo,sinecesitaslograr 9600bpsprecisosencomunicacinserial,9.126MHzdivididopor960=9600.Nohayenteroquedivida 16MHzparaobtener9600exactamente.Entonceslacomunicacinseriala9,216MHzserbienprecisa mientraslaseriala16MHzsiempretendrunapequeacantidaddeerror. Dentrodelacarcasademetalhayunpequeopedazodecristaldecuarzoqueestcortadocon precisin para que la pieza de cristal vibre a una frecuencia especfica. El oscilador interno del ATMega168tieneunatoleranciade+/5%.Porotrolado,uncristalesnormalmente+/20ppm.Esto quieredecirquelafrecuenciatieneunaprecisinde+/20partespormilln.Luego,puedestenerun cristalde16,000020MHz mientrastuvecinotengaunode15,999980MHz,loqueesequivalentea+/ 0.00000125%.Elcristales4millonesdevecesmsprecisoqueelosciladorinterno. Nota tcnica: Perdn por inundar tu cerebro con detalles esenciales, pero es algo razonablemente importante. El dispositivo metlico cromado mostrado arriba es un cristal. No es tcnicamente un oscilador. Los cristales son baratos. Realmente los osciladores son caros. Cul es la diferencia? Un
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 3 oscilador usa energa y crea verdaderos pulsos de reloj. Estos pulsos pueden ser usados para hacer funcionar cualquier tipo de dispositivo. Un cristal es un elemento absolutamente pasivo que requiere algn mecanismo externo para volverse un oscilador. Afortunadamente para nosotros y para los propsitos de este tutorial, 99% de todos los microcontroladores traen la circuitera interna necesaria como para conectar estos cristales a un par de pines, un mecanismo interno har funcionar el cristal creando un oscilador como para que el micro tenga un buen generador de reloj. As que por favor perdnennos y tambin a otros documentos tcnicos que usen incorrectamente el trmino oscilador cuandosetratedeuncristal. Algunoscontrasdeloscristales. Nopuedenfabricarsetanpequeoscomolosresonadores(loscristalesocupanmsreaPCB). Loscristalesrequierencondensadoresdecarga.Loscondensadoresdecargainicianlaoscilacin delcristal.Sinestoscondensadorestucristalpuedefuncionarahora,peroenalgnmomentoya noloharms.LoscondensadoresdecargasonbaratosperoocupanmsespacioenlaPCB.

ResonadorExterno. LosresonadoresexternossoneltrminomedioentrelosRCinternosyloscristales.

Un resonador es una pieza de cermica que es fabricada de tal forma que oscile a cierta frecuencia. Desafortunadamente este proceso es difcil de hacer bien. Los resonadores tiene una tolerancia estndar de +/ 0.5%. Por lo tanto las resonancias son 10 veces ms precisas que los osciladoresinternosperotodavaunpocolejosdeloscristales.
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 3 Los resonadores tienden a ser ms baratos que los cristales. Y los resonadores tienden a tener menorfrecuenciaqueloscristales.Perolosresonadoressonmuybuenos,yaquetienenincorporados los capacitores de carga en el dispositivo de 3 pines! Los resonadores pueden ser construidos bien pequeosypuedenminimizartureadePCB. Ahora elige. Para muchas aplicaciones el oscilador interno estar bien. Pero si tratas de hacer comunicacinserial,5%esbastantepobre(latoleranciaserialvaentre1a2%).Heusadocristalespara la mayora de mis proyectos. Pero para los dispositivos que son realmente pequeos, ocupo resonadores.Cualquier cosaquetrabajeconsealesRF,requierecristalesdebajatolerancia.Adems cualquier oscilador cambiar su frecuencia al crecer su tiempo de operacin (llamado comnmente aging,envejecimientoeningles)ycualquierrelojvariarconlatemperatura. Comomencionantes,elATMega168vieneconfiguradoconunosciladorinternode1MHz.Pero lopodemospresionarasermsrpidoymejor!.ConfiguremoselATMega168paraquecorraa16MHz conuncristalexterno. Cules son los efectos colaterales de correr el ATMega168 con una frecuencia ms alta? No podrs hacer correr el IC a esta frecuencia con voltajes bajos (como 3,3V o 2,8V). Como estamos trabajandoconvoltajesde5Vnoesproblema.A20MHzelmicroconsumirmspoderquecon1MHz. Estascosaslasdebersconsiderarcuandodesarrollestupropiosistema. Cuanrpidolopuedeshacertrabajar? LavelocidadmximaparaelATMega168esde20MHzo20MIPS!Deslumbrantementerpido! Tomatucristalde16MHzybuscalospinesPB6/7.

Conectalaspatasdelcristalenestosdospinesyconectaestospinesatierraatravsdedos condensadoresde22pf. 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 3

Esto completa el hardware necesario, ahora hay que decirle al ATMega168 que use el cristal externo. Bitdeconfiguracin(Fusebits) Esta es una de las cosas ms difciles de usar con las AVRs. Los Fuse bit son un sistema de configuracin de muy bajo nivel. Activando o borrando estos bits puedes cambiar completamente las funcionesdelaAVR.LosbitsdeconfiguracindelosPicssonmsfcilesdeusar.Slohacesclicenuna ventana de windows o los programas directamente en tu cdigo C, sin problemas. Las AVRs son muy diferentesyliteralmentepuedesestropeartuAVRsiprogramasmaltusbitsdeconfiguracin. HaydosBytes(8bits=1Byte)enlaATMega168quemaquillanlosbitsdeconfiguracin.Sinolo hashecho,descargaeldatasheetdelATMega168(son309pginas)ygurdaloentuescritorio.Sinunca lees los datasheet, no te preocupes, no necesitas leer las 309 pginas, slo necesitas saber como absorberinformacintildeesta...ynoestrivial!. Busquemos rpidamente bits de configuracin (fuse bits). Esto nos llevar directamente a la seccin de Fuentes de reloj. Que coincidencia! (asegrate que tengas los bookmarks o la barra de secciones abierta para que puedas ver las diferentes secciones del datasheet). Hay muchas opciones para las fuentes de reloj en el ATmega168. Comencemos con cambiar el oscilador interno de 1MHz a 8MHz.

Traducidodelapgina34(seccin8.6):Pordefecto,elosciladorRCinternoproveeunrelojde aproximadamente 8MHz. Aunque es dependiente del voltaje y la temperatura, este reloj puede ser calibrado con precisin por el usuario. Este dispositivo viene con el Fuse bit CKDIV8 programado por defecto.VerSystemClockPrescalerenlapgina37paramsdetalles." EntoncesparalograrqueelosciladoroperemsrpidodebemoscambiarelFusebitCKDIV8.

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 3

AcvemoscomoelATMega168trabajarecinsacadodelacaja.Atmelenvaestosmicrospara usarlos con el oscilador RC interno calibrado (8MHz) con el divisor de reloj en 8 configurado inicialmente(1MHz).Muybien,ahoraslonecesitamoscambiarelbitCKDIV8. LowFuseBytepordefecto:0b.0110.0010 (Byteinferiordeconfiguracinpordefecto) NuevoLowFuseByte:0b.1110.0010 Usando estos nuevos bits de configuracin, el ATMega168 debera comenzar a correr con el oscilador interno en 8MHz y deberamos ver el LED parpadear 8 veces mas rpido!. Hay un par de formasdehaceresto,perolaformamsdirectadehacerloqueheencontradoesusarintensamentela lneadecomandos.Abrelaventanadelneadecomandosyescribeavrdude.Debersobteneruntexto deayuda.SiestasusandounprogramadorPG1(serial)oPG2(paralelo),debersescogerlacadenade caracterescorrecta: ParaleerlaconfiguracindelATMega168: PG1(serial):
avrdude p m168 P COM1 c ponyser U lfuse:r::h U hfuse:r::h

PG2(paralelo):
avrdude p m168 P lpt1 c stk200 U lfuse:r::h U hfuse:r::h

Denuevo,asumirqueestsocupandounPG2,peropuedesmodificarloscomandosparausarun programadorserial.Estoscomandosbsicamentedeberanhacerqueavrdudereportelaconfiguracin paralaATMega168Fusessuperiores=0xDF,Fusesinferiores=0x62 Cmosecreaunanuevaconfiguracin?.Buscanuevamenteporlosbitsdeconfiguracin(fuse bits)hastalapgina223.Aqusemuestranlasdosconfiguracionesconsusvalorespordefecto.Todolo


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 3 quenecesitashacerescambiarlaconfiguracininferiorde0x62(0b.0110.0010)a0xE2(0b.1110.0010). Ahoraponemosestoenelcomandoanteriorycambiamosdelecturaaescritura. 8MHzInternos:


avrdude p atmega168 P lpt1 c stk200 U lfuse:w:0xE2:m

Ejecutaestecomandoenlaventanaylisto,tuAVRdeberaestarcorriendoa8MHz.Algunasveces avrdudemehamostradoalgunoserroresalleerlaconfiguracinyluegopreguntasisequiererecuperar la configuracin o algn error por el estilo. No estoy seguro cual es el error. Puedes decir si o no (no importa), y luego enviar el mismo comando. Despus del segundo intento debera quedar satisfactoriamente configurado. Bien, el LED debera parpadear intensamente, ahora llevmoslo al siguientepaso,los16MHz.

Notascomonotengoloscapacitoresde22pfenmicristalde16MHz?Mal,Malingeniero!

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 3 Necesitarstenerelcristalde16MHzadjuntadoalopinesdeloscilador,comosemuestraenel esquema.Buscalacategoradefuentesderelojeneldatasheetyinvestigaunpocosobrelaopcin delosciladordecristalexterno.Tedoyunapista,severaalgoas:


CKDIV8 CKOUT SUT1 SUT0 CKSEL3 CKSEL2 CKSEL1 CKSEL0 =1 =1 =1 =0 =0 =1 =1 =0

Osciladorexternode16MHz:
avrdude p atmega168 P lpt1 c stk200 U lfuse:w:0xE6:m

Una ves que tengas esto programado, el atmega168 debera utilizar el oscilador externo de 16MHz y hacer parpadear el LED muy rpido. Si no es as, revisa tus capacitores de carga y las conexiones externas. El ATmega168 tiene un mximo de velocidad de 20MHz (20 MIPS!). Trata de sobrecargarelrelojdetumicroalgndacon30MHzo40MHz.Probablementefuncionebien,perono querrsdisearunsistemarealconunavelocidadderelojfueradelasespecificaciones. Tarea para la casa. Necesitars aprender a usar tu multmetro para medir el consumo de corriente.Comolacorrienteesmedidaenserie(elvoltajesemideenparalelo)necesitarsencontrarun espacioentuprotoboardenquelacorrientepuedaserinterrumpidaymedida.Midelosiguiente. CuandolaATMega168estenreset. Cuandoestacorriendoconosciladorinternode1MHz 8MHz 16MHz

Durantecadaunodeestosexperimentos,hazunarpidamedicindetemperaturaaturegulador devoltaje.Engeneralelreguladordeberaestarlosuficientementefroparatocarlo.Siestaalrojovivo (tencuidado)deberasdesconectarlaprotoboardybuscarcortos. Porqusecalientanlosreguladores?Estamosusandounreguladorlinealmuybsico.Estetipo de regulador tiene un voltaje alto de entrada (9V en mi caso) y entrega un voltaje bajo (5V). La diferenciadevoltajeesliberadacomocaloratravsdelapestaademetal.Elcaloresmedidocomo potenciaperdidaoWatts.Silaentradaesde9Vylasalida5V,ytusistemaocupa50mA:
(9 5) * 0,050 = 0,2W or 200mW

200mWharqueelreguladorsecalienteunpoco.Quocurrirconunampere?
(9 5) * 1,000 = 4W!

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

9|L e c t u r a 3 Debers haber notado, que si bajas el voltaje de entrada puedes reducir la cantidad de calor emanado. Porque no entregar 5V y estamos listos? Estos reguladores de voltaje lineales baratos requierenalgollamadovoltajedecada.Esteesunnombrepocotcnicoparaunvoltajeextraqueel regulado necesita para entregar el voltaje requerido. Cualquier cosa bajo este voltaje y el regulador entregarunvoltajemenoralrequerido.ParaelLM7805esunmandamientoquedebastener1,5Vo ms,oseaquenecesitasalmenos6,5Vparaentregar5V.Sialimentasconmenosde6,5V(4pilasAA), no tendrs garantizado los 5V de salida. Cada regulador de voltaje es diferente as que revisa el datasheetdelelementoquetengasentusmanos.Algunosreguladoresdevoltajeestnespecficamente diseados para tener pequeas cadas de voltaje. Algunos pequeos llegan hasta 50mV!. Algunos reguladoresestndarde3,3Vrequierenunmnimode3,35Vparaentregarbuenos3,3V. Muchosreguladorestienenunafuncindeapagadoqueprevienequeelreguladorsedestruyasi hayuncortoenlasalida.SicambiaselinterruptordepoderentuprotoboardaONyelLEDnoprende, curiosamentetureguladordevoltajeesttratandodeentregartantacorriente(porqueconectastealgo mal) que se apagar y el LED no tendr poder para iluminar. Si ese es el caso, apaga tu protoboard rpidamente. Engeneral,losreguladoresdevoltajecorrenencaliente.Estbien.Perosialgunavezhuelesalgo raro o puedes sentir una onda de calor desde tu protoboard, apaga las cosas y dales una segunda mirada. Paraarmarelcircuitodeestalecturanecesitarslosmismoselementosdelaslecturasanteriores eincluiruncristalde20MHzmasunpardecondensadoresde22pFquepuedesadquirirlosennuestra tiendawww.olimex.cl.
Estas lecturas son una traduccin al espaol del tutorial Beginning Embedded Electronics Tutorials desarrolladoporSparkFunElectronics.TraducidoparaIngenieraMCIporJulinAguayo.Revisadoycorregidopor 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

You might also like