Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin.
Enestecaptuloseestablecenlasrazonesquehanllevadoalaelecci nde unmicrocontroladorfrente aunmicroprocesadoryseintentanrecoger todos los conocimientos y herramientas necesarias para programar los microcontroladores PIC de la compaa Microchip. Estos microcontroladoreshansidoelegidospararealizarlastareasdeunidadde controly gestin de lascomunicaciones PC<>RPC por subajo precio, altascapacidades,porlosencilloqueesellenguajeensambladoryporla facilidad para programar el micro sin necesidad de recurrir a programadorescomerciales.
Realmenteconsisteenunsencilloperocompletocomputadorcontenido enelcorazn(chip)deuncircuitointegrado.
Un microcontrolador dispone normalmente de los siguientes componentes: ProcesadoroCPU(UnidadCentraldeProceso). MemoriaRAMparalosdatos. MemoriaparaelprogramatipoROM/EEPROM/FLASH. LneasdeEntrada/Salidaparacomunicarseconelexterior. Diversos mdulos para el control de perifricos (temporizadores, PuertosSerieyParalelo,ConversoresAnalgico/Digital,Conversores Digital/Analgico,generadordePWM...). El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un miniordenador. Debido a su reducido tamaoesposiblemontarelcontroladorenelpropiodispositivoalque gobierna. En este caso el controlador recibe el nombre de controlador empotrado(embeddedcontroller).
entre
microprocesador
Sislosedispusiesedeunmodelodemicrocontrolador, stedeberatener muchosrecursosparapoderseadaptaralasexigenciasdelasdiferentes aplicaciones, lo cual en muchos casos supondra un despilfarro. En la prctica,cadafabricantedemicrocontroladoresofertaunelevadonmero
Memoria: para detectar las necesidades de memoria de nuestra aplicacindebemossepararlaenmemoriavoltil(RAM),memoria novoltil(ROM,EPROM,etc.)ymemorianovoltilmodificable (EEPROM,FLASH).
Anchodepalabra:elcriteriodediseodebeserseleccionarelmicro controlador de menor ancho de palabra que satisfaga los requerimientosdelaaplicacin.Usarunmicrocontroladorde4bits supondrunareduccinenloscostesimportante,mientrasqueuno de8bitspuedeserelmsadecuadosielanchodelosdatosesde unbyte.Losmicrocontroladoresde16y32bits,debidoasuelevado coste, deben reservarse para aplicaciones que requieran sus altas prestaciones(Entrada/Salidapotenteoespaciodedireccionamiento muyelevado).
Diseo de la placa: la seleccin de un microcontrolador concreto condicionar el diseo de la placa de circuitos. Debe tenerse en cuenta que quiz usar un microcontrolador barato encarezca el restodecomponentesdeldiseo.
Losmicrocontroladoresmspopularesseencuentran,sinduda,entrelas mejoreselecciones:
80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares microprocesadores 8086 y 8088. Su principal ventaja es que permitenaprovecharlasherramientasdedesarrolloparaPC.
68HC11y68HC12(MotorolayToshiba).Esunmicrocontroladorde8bits potenteypopularcongrancantidaddevariantes.
PIC(MicroChip). Familiademicrocontroladoresqueganapopularidad da a da. Fueron los primeros microcontroladores RISC. Sern los empleadosenesteproyecto.
Es preciso resaltar en este punto que existen innumerables familias de microcontroladores, cada una de las cuales posee un gran n mero de variantes.
1.4
Recursos
comunes
todos
los
microcontroladores.
Alestartodoslosmicrocontroladoresintegradosenunchip,suestructura fundamentalysuscaractersticasbsicassonmuyparecidas.Todosdeben disponer de los bloques esenciales Procesador, memoria de datos y de instrucciones,lneasdeE/S,osciladorderelojymduloscontroladoresde perifricos.Sinembargo,cadafabricanteintentaenfatizarlosrecursosm s idneosparalasaplicacionesalasquesedestinanpreferentemente. En este apartado se hace un recorrido de todos los recursos que se encuentran en todos los microcontroladores describiendo las diversas alternativas y opciones que pueden encontrarse segn el modelo seleccionado. 1.4.1 Arquitectura bsica Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clsica de von Neumann, en el presente se impone la arquitecturaHarvard.LaarquitecturadevonNeumannsecaracterizapor disponerdeunasolamemoriaprincipaldondesealmacenantantodatos comoinstrucciones.Adichamemoriaseaccedeatrav sdeunsistemade busesnico(direcciones,datosycontrol). LaarquitecturaHarvarddisponededosmemoriasindependientes:una, quecontienesloinstruccionesyotra,slodatos.Ambasdisponendesus respectivossistemasdebusesdeaccesoyesposiblerealizaroperaciones deacceso(lecturaoescritura)simultneamenteenambasmemorias. LosmicrocontroladoresPICusanlaarquitecturaHarvard. 1.4.2 Procesador (CPU). Seencargadedireccionarlamemoriadeinstrucciones,recibirelcdigo OP de la instruccin en curso, su decodificacin y la ejecucin de la
operacin que implica la instruccin, as como la bsqueda de los operandosyelalmacenamientodelresultado. Existentresorientacionesencuantoalaarquitecturayfuncionalidadde losprocesadoresactuales: CISC: Un gran nmero de procesadores usados en los microcontroladores estn basados en la filosofa CISC (ComputadoresdeJuegodeInstruccionesComplejo).Disponende msde80instruccionesmquinaensurepertorio,algunasdelas cualessonmuysofisticadasypotentes,requiriendomuchosciclos para su ejecucin. Una ventaja de los procesadores CISC es que ofrecenalprogramadorinstruccionescomplejasqueactancomo macros.
RISC: Tanto la industria de los ordenadores como la de los microcontroladores estn decantndose hacia la filosofa RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones mquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutanenunciclo(enrealidadencuatro,perosecuencialmente, deformaqueacadacicloderelojseterminalaejecucindeuna instruccin excepto en las instrucciones de salto). La sencillez y rapidezdelasinstruccionespermitenoptimizarelhardwareyel softwaredelprocesador.
SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especfico,osea,lasinstruccionesseadaptanalasnecesidadesde laaplicacinprevista.Estafilosofasehabautizadoconelnombre deSISC(ComputadoresdeJuegodeInstruccionesEspecfico).
1.4.3 Memoria. En los microcontroladores, la memoria de instrucciones y datos est integradaenelpropiochip.Unapartedebesernovol til,tipoROM,yse destina a contener las instrucciones del programa. Otra parte de la memoriaser tipoRAM,voltil,ysedestinaaguardarlasvariablesylos datos. La RAM en estos dispositivos es de poca capacidad pues slo debe contenerlasvariablesyloscambiosdeinformacinqueseproduzcanen eltranscursodelprograma. LosusuariosdeordenadoresestnhabituadosamanejarMegabytesde memoria, pero los diseadores de aplicaciones con microcontroladores trabajan concapacidades deROM comprendidas entre 512bytes y8k bytesydeRAMcomprendidasentre20y512bytes(enlagamamediade microcontroladores,enlaaltasesuperanestascifras). SegneltipodememoriaROMquedisponganlosmicrocontroladores,la aplicacinyutilizacindelosmismosesdiferente.Sedescribenlascinco versiones de memoria no voltil que se pueden encontrar en los microcontroladoresdelmercado. ROMconmscara.Esunamemorianovoltildeslolecturacuyo contenidosegrabadurantelafabricacindelchip.Elelevadocoste del diseo de lamscaraslo hace aconsejable elempleo delos microcontroladoresconestetipodememoriacuandoseprecisan cantidadessuperioresavariosmilesdeunidades. OTP.Elmicrocontroladorcontieneunamemorianovoltildeslo lecturaprogramableunasolavezporelusuario.OTP(OneTime Programmable).Eselusuarioquienpuedeescribirelprogramaen elchipmedianteunsencillograbadorcontroladoporunprograma desde un PC. La versin OTP es recomendable cuando es muy
cortoelciclodediseodelproducto,obien,enlaconstruccinde prototiposyseriesmuypequeas.Tantoenestetipodememoria comoenlaEPROM,sesueleusarlaencriptacinmediantefusibles paraprotegerelcdigodeprograma. EPROM. Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarseygrabarsemuchasveces.Lagrabacinserealiza,comoen elcasodelosOTP,conungrabadorgobernadodesdeunPC.Si, posteriormente, se desea borrar el contenido, disponen de una ventanadecristalensusuperficieporlaquesesometealaEPROM arayosultravioletadurantevariosminutos.Lascpsulassonde materialcermicoysonmscarosquelosmicrocontroladorescon memoriaOTPqueestnhechosconmaterialplstico. EEPROM.Setratade memoriasde slolectura, programablesy borrables elctricamente EEPROM (Electrical Erasable ProgrammableReadOnIyMemory).Tantolaprogramacincomo elborrado serealizanelctricamente desdeelpropiograbadory bajoelcontroldeunPC.Nodisponendeventanadecristalenla superficie.LosmicrocontroladoresdotadosdememoriaEEPROM puedengrabarseyborrarsecuantasvecessequierasinserretirados delcircuitoenelqueseinstalen.Paraelloseusangrabadoresen circuitoqueconfierenunagranflexibilidadyrapidezalahorade realizar modificacionesenelprogramade trabajo.Elnmero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramacin continua.Estetipodememoriaesrelativamentelenta. FLASH.Setratadeunamemorianovoltil,debajoconsumo,que sepuedeescribiryborrar.FuncionacomounaROMyunaRAM peroconsumemenosyesmspequea.AdiferenciadelaROM,la
memoriaFLASHesprogramableenelcircuito.Esmsrpidayde mayor densidad que la EEPROM. La alternativa FLASH est recomendadafrentealaEEPROMcuandoseprecisagrancantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado, adems de poder ser programada a nivelbajodetensin. 1.4.4 Puertos de Entrada/Salida. Los puertos de entrada/salida de un microcontrolador permiten la comunicacinconlosperifricosexternos.Adems,muchasdelaspatas que configuran el puerto suelen tener varias funciones multiplexadas, comoporejemploserpuertodeE/Syentradaanalgicaalconvertidor A/D. 1.4.5 El reloj del microcontrolador. Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que proporciona los impulsosderelojusadosenlasincronizacindetodaslasoperacionesdel sistema. Generalmente,elcircuitoderelojestincorporadoenelmicrocontrolador yslosenecesitanunospocoscomponentesexterioresparaseleccionary estabilizarlafrecuenciadetrabajo.Dichoscomponentessuelenconsistir enuncristaldecuarzojuntoaelementospasivos(doscondensadoresdel orden de los picofaradios), un resonador cermico (no hacen falta condensadores)ounaredRC. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutanlasinstrucciones,peroellovaacompaadodeunincrementodel consumodeenerga.
1.4.6 Recursos especiales de los microcontroladores. Cadafabricanteofertanumerosasversionesdeunaarquitecturabsicade microcontrolador.Enalgunasamplalascapacidadesdelasmemorias,en otras incorpora nuevos recursos, en otras reduce las prestaciones al mnimo para aplicaciones muy simples, etc. La labor del diseador es encontrarelmodelomnimoquesatisfagatodoslosrequerimientosdesu aplicacin.Deestaforma,seminimizarelcoste. Los principales recursos especficos que incorporan los microcontroladoresson: TemporizadoresoTimers. PerroguardinoWatchdog. ProteccinantefallodealimentacinoBrownout. Estadodereposoodebajoconsumo. ConversorA/D. ConversorD/A. Comparadoranalgico. ModuladordeanchuradepulsosoPWM. PuertosdeE/Sdigitales. Puertosdecomunicacinserie/paralelo. 1.4.6.1 Temporizadores o Timers. Seempleanparacontrolarperiodosdetiempo(temporizadores)ypara llevar la cuenta de acontecimientos que suceden en el exterior (contadores).
Cuandosedeseancontaracontecimientosquesematerializanporcambios de nivel o flancos en alguna de las patas del microcontrolador, el mencionadoregistrosevaincrementandoodecrementandoalritmode dichosimpulsos. 1.4.6.2 Perro guardin o Watchdog Cuandoelordenadorsebloqueaporunfallodelsoftwareuotracausa,se pulsaelbotndelresetysereiniciaelsistema.Perounmicrocontrolador funcionasinelcontroldeunsupervisorydeformacontinuada.ElPerro guardinconsisteenuntemporizadorque,cuandosedesbordaypasapor 0,provocaunresetautomticamenteenelsistema. Sedebedisearelprogramadetrabajoquecontrolalatareadeformaque refresqueoinicialicealPerroguardinantesdequeprovoqueelreset.Si fallaelprogramaosebloquea,noserefrescar alPerroguardiny,al completarsutemporizacinprovocarelresetdelmicro. 1.4.6.3 Proteccin Brownout Setratadeuncircuitoquereseteaalmicrocontroladorcuandoelvoltajede alimentacin (VDD) es inferior a un voltaje mnimo (brownout). Mientras el voltaje de alimentacin sea inferior al de brownout el dispositivosemantienereseteado,comenzandoafuncionarnormalmente cuandosesobrepasadichovalor. 1.4.6.4 Estado de reposo de bajo consumo ante fallo de alimentacin o
Son abundantes las situaciones en las que el microcontrolador debe esperar,sinhacernada,aqueseproduzcaalgnacontecimientoexterno que le ponga de nuevo en funcionamiento. Para ahorrar energ a los microcontroladoresdisponendeunainstruccinespecial(SLEEPenlos PIC),quelespasaalestadodereposoodebajoconsumo,enelcuallos requerimientosdepotenciasonmnimos.Endichoestadosedetieneel relojprincipalysecongelansuscircuitosasociados.Alactivarseuna interrupcin provocada por un evento externo, el microcontrolador se despiertayreanudasutrabajo. 1.4.6.5 Conversor A/D Los microcontroladores que incorporan un Conversor A/D (Analgico/Digital)puedenprocesarsealesanalgicascuyovaloroscile entrelatensindealimentacinyel0(paraotrotipodesealesharfalta una etapa previa de adaptacin de la seal). Suelen disponer de un multiplexorquepermiteaplicaralaentradadelconversorvariasseales analgicasendistintaspatasdelcircuitointegrado. 1.4.6.6 Conversor D/A Transforma datos digitales en su correspondiente seal analgica, que saca al exterior por una de las patas del micro. La inclusi n de un conversor D/Aen un micro esmucho msrara (y cara) que la de un conversorA/D.Lasalidaanalgicatieneunalimitacindecorrienteyde amplitud,porlo que enmuchasocasionesser necesaria unaetapade salida(amplificador+potencia). 1.4.6.7 Comparador analgico Algunos modelos de microcontroladores disponen internamente de un AmplificadorOperacionalqueactacomocomparadorentreunasealfija dereferenciayotravariablequeseaplicaporunadelaspatasdelmicro.
Lasalidadelcomparadorproporcionaunnivellgico10segnlaseal deentradaseamayoromenorqueladereferencia.Tambinhaymodelos de microcontroladores con un mdulo de tensin de referencia que proporcionadiversastensionesdereferenciaquesepuedenaplicarenlos comparadores. 1.4.6.8 Modulador de anchura de pulsos o PWM
Soncircuitosqueproporcionanensusalidapulsosdetensindeancho variable (modificable por software), muy usados en la regulacin de velocidaddemotoresyaplicacionesdeelectrnicadepotencia. 1.4.6.9 Puertos de E/S digitales Todos los microcontroladores destinan algunas de sus patas a proporcionar lneas de E/S digitales. Por lo general, estas lneas se agrupandeochoenochoformandoPuertos. LaslneasdigitalesdelosPuertospuedenconfigurarsecomoEntradao comoSalidacargandoun1un0enelbitcorrespondientedeunregistro destinado a su configuracin. Muchos micros tienen la capacidad de generarinterrupcionescuandocambialaentradadealgunadelasl neas. Esoesespecialmentetilcuandoelmicroestenestadodebajoconsumo, queaspuedeserdespertadoporuneventoexternoenunadesuspatas. 1.4.6.10 Puertos de comunicacin Lospuertosdecomunicacindotanalmicrocontroladordelaposibilidad de comunicarse con dispositivos externos, buses de microprocesadores, busesdesistemas,busesderedesyotroselementosbajodistintasnormas y protocolos. Algunos modelos de micros disponen de recursos que permitendirectamenteestatarea,entrelosquedestacan: UART,adaptadordecomunicacinserieasncrona.
Microcontroladores PIC.
Precio:Sucosteesinferioraldesuscompetidores. Poseen una elevada velocidad de funcionamiento. Buen promedio de parmetros: velocidad, consumo, tamao, alimentacin, cdigo compacto,etc. Herramientas de desarrollo fciles y baratas. Muchas herramientas softwaresepuedendescargarrlibrementeatravsdeInternetdesde Microchip(http://www.microchip.com). Existe una gran variedad de herramientas hardware que permiten grabar, depurar, borrar ycomprobarelcomportamiento de losPIC, tantocomercialescomonocomerciales. Diseorpido. La gran variedad de modelos de PIC permite elegir el que mejor respondealosrequerimientosdelaaplicacin. Unadelasrazonesdel xitodelosPICsebasaensuutilizacin.Cuando se aprende a manejar uno de ellos, conociendo su arquitectura y su repertoriodeinstrucciones,esmuyfcilemplearotromodelo. 2.1.2 Arquitectura. La arquitectura del procesador sigue el modelo Harvard. En esta arquitectura, la CPU se conecta de forma independiente y con buses distintosconlamemoriadeinstruccionesyconladedatos. LaarquitecturaHarvardpermitealaCPUaccedersimultneamentealas dosmemorias.Adems,propicianumerosasventajasalfuncionamiento delsistemacomoseirndescribiendo. 2.1.3 Segmentacin. Seaplicalatcnicadesegmentacin(pipeline)enlaejecucindelas instrucciones.
La segmentacin permite al procesador realizar al mismo tiempo la ejecucindeunainstruccinylabsquedadelcdigodelasiguiente.De esta cada ciclo termina de ejecutarse una instruccin (un ciclo de instruccinequivaleacuatrociclosdereloj). Lasinstruccionesdesaltoocupandosciclosalnoconocerladirecci nde lasiguienteinstruccinhastaquenosehayacompletadoladebifurcacin. 2.1.4 Formato de las instrucciones.
Todaslasinstruccionesdelosmicrocontroladoresdelagamabajatienen unalongitudde12bits.Lasdelagamamediatienen14bitsym slasde lagamaalta.Estacaractersticaesmuyventajosaenlaoptimizacindela memoria de instrucciones y facilita enormemente la construcci n de ensambladoresycompiladores. 2.1.5 Juego de instrucciones. ProcesadorRISC(ComputadordeJuegodeInstruccionesReducido). Los modelos de la gama baja disponen de un repertorio de 33 instrucciones,35losdelagamamediaycasi60losdelaalta. 2.1.6 Arquitectura basada en un banco de registros Esto significa que todo el sistema (puertos de E/S, temporizadores, conversoresA/D,etc.)sonaccesiblesmedianteregistros. 2.1.7 Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes LagranvariedaddemodelosdemicrocontroladoresPICpermitequeel usuariopuedaseleccionarelmsconvenienteparasuproyecto. 2.1.8 Herramientas de soporte potentes y econmicas La empresa Microchip y muchas otras, ponen a disposici n de los usuariosnumerosasherramientasparadesarrollarhardwareysoftware.
Son muy abundantes los programadores, los simuladores software, los emuladoresentiemporeal,Ensambladores,CompiladoresC,Intrpretesy CompiladoresBASIC,etc. LaarquitecturaHarvardyel"pipelining"sonlosprincipalesrecursosen losqueseapoyaelelevadorendimientoquecaracterizaestosdispositivos programables,mejorandodoscaractersticasesenciales: 1. Velocidaddeejecucin. 2. Eficienciaenlacompactacindelcdigo.
DiagramadeconexionesdelosPIC12Cxxxdelagamaenana.
MEMORIA DATOS 25x8 41x8 80x8 128x8 128x8 80x816x8 EEPROM 80x816x8 EEPROM
LINEAS E/S 6 6 6 6 6 6 6
ADC 8BITS
2 4 4
CaractersticasdelosmodelosPIC12C(F)XXXdelagamaenana.
DiagramadepatitasdelosPICdelagamabajaquerespondenalanomenclatura PIC16C54/56.
SetratadeunaseriedePICderecursoslimitados,peroconunadelas mejoresrelacionescoste/prestaciones.Hayversionesconencapsuladosde 18y28patasypuedenalimentarseapartirdeunatensi nde2.5V,loque leshaceidealesenlasaplicacionesquefuncionanconpilasteniendoen cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz). Tienen un repertorio de 33 instrucciones de 12 bits. No admiten ning n tipo de interrupcinylaPilaslodisponededosniveles. AligualquetodoslosmiembrosdelafamiliaPIC16/17,loscomponentes delagamabajasecaracterizanporposeerlossiguientesrecursos: SistemaPOR(PowerOnReset).TodoslosPICtienenlafacultad de generar una autoreinicializacin o autoreset al conectarles la alimentacin. Perroguardin(WatchdogoWDT).Temporizadorqueproduceun resetautomticamentesinoesrecargadoantesquepaseuntiempo prefijado. Cdigodeproteccin.Cuandoseprocedearealizarlagrabacin del programa, puede protegerse para evitar su lectura. Tambin
CaractersticasdelosmodelosPIC16C(R)5Xdelagamabaja
Para terminar el comentario introductorio sobre los componentes de la gamabajaconvienedestacardosrestriccionesimportantes: 1. Lapilaostackslodisponededosnivelesloquesupone nopoderencadenarmsdedossubrutinas. 2. Los microcontroladores de la gama baja no admiten interrupciones.
2.2.3 Gama
media.
PIC16CXXX/PIC16FXXX
con
instrucciones de 14 bits
PIC16F873delagamamedia.
Es la gama ms variada y completa de los PIC. Abarca modelos con encapsulado desde 18 patas hasta 68, cubriendo varias opciones que integranabundantesperifricos.Dentrodeestagamasehallaelfabuloso PIC16X84ysusvariantes. En esta gama sus componentes aaden nuevas prestaciones a las que posean los de la gama baja, hacindoles ms adecuados en las aplicacionescomplejas.Admiteninterrupciones,poseencomparadoresde magnitudes analgicas, convertidores A/D, puertos serie y diversos temporizadores. Elrepertoriodeinstruccionesesde35,de14bitscadaunaycompatible coneldelagamabaja.TambindisponedeinterrupcionesyunaPilade8 niveles que permite el anidamiento de subrutinas. En la Tabla se presentanlasprincipalescaractersticasdelosmodelosdeestafamilia.
CaractersticasrelevantesdelosmodelosPIC16X8Xdelagamamedia.
EncuadradoenlagamamediatambinsehallalaversinPIC14C000,que soporta el diseo de controladores inteligentes para cargadores de bateras, pilas pequeas, fuentes de alimentacin ininterrumpibles y cualquiersistemadeadquisicinyprocesamientodesealesquerequiera gestindelaenergadealimentacin.LosPIC14C000admitencualquier tecnologadelasbaterascomoLiIon,NiMH,NiCd,PhyZinc. EltemporizadorTMR1quehayenestagamatieneuncircuitooscilador quepuedetrabajarasncronamenteyquepuedeincrementarseaunqueel microcontroladorsehalleenelmododereposo(sleep),posibilitandola implementacindeunrelojentiemporeal. LaslneasdeE/Stienenresistenciasdepullupactivadasporsoftware. 2.2.4 Gama alta: PIC17CXXX con instrucciones de 16 bits. Sealcanzanlas58instruccionesde16bitsenelrepertorioysusmodelos disponendeunsistemadegestindeinterrupcionesvectorizadasmuy potente.Tambinincluyenvariadoscontroladoresdeperifricos,puertos decomunicacinserieyparaleloconelementosexternos,unmultiplicador hardware de gran velocidad y mayores capacidades de memoria, que alcanzalos8kpalabrasenlamemoriadeinstruccionesy454bytesenla memoriadedatos. Quizlacaractersticamsdestacabledeloscomponentesdeestagamaes suarquitecturaabierta,queconsisteenlaposibilidaddeampliaci ndel microcontroladorconelementosexternos.Paraestefin,laspatassacanal exteriorlaslneasdelosbusesdedatos,direccionesycontrol,alasquese conectanmemoriasocontroladoresdeperifricos.Estafacultadobligaa estoscomponentesatener unelevado numero de patitascomprendido entre 40 y 44. Esta filosofa de construccin del sistema es la que se empleabaenlosmicroprocesadoresynosueleserunaprcticahabitual cuando se emplean microcontroladores. En la tabla se muestran las
CaractersticasrelevantesdelosmodelosPIC17XXdelagamaalta.
de
la
memoria
de
LaampliacinderecursosenlosPICforz enloscatalogadoscomode gama media una nueva estructura y la modificacin de algunas instrucciones (partiendo, claro est, de la gama baja). Una de las diferenciasfundamentaleses,precisamente,laampliacindememoriade registros, a los que se unieron algunos nuevos de sistema, y la accesibilidad a parte de los mismosque antes quedaban ocultos, como OPTIONoTRIS. Deestemodoseopt pordosbancosderegistrosde128posicionescada uno,lamayoradeloscualessondepropsitogeneral.Estosdosbancos son compartidos por toda la gama media, si bien en algunos microcontroladores(comoel16F873)elnmerodebancoses4.
k). Para ms informacin consultar la ayuda del programa MPLAB (incluidoenelCD)enlaseccinMPASM'sUserGuide,apndiceB,obien enelmanualdeayudadeGPASM(incluidoenelCD). Haytrestiposdeinstrucciones: Instruccionesorientadasabytesoaregistros. Instruccionesorientadasabits.
Instruccionesdecontrolyconliterales. Notas: Enlasinstruccionesorientadasaregistros,frepresentaunregistroyd representaeldestino.Sides0elresultadodelaoperacinsealmacenaen elregistrodetrabajo(W),sides1elresultadosealmacenaenf. Enlasinstruccionesorientadasabits brepresentaenbinariolaposicin (07)delbitdeseadodentrodelbyte(0eselLSB). Enlasinstruccionesconliteraleskrepresentaunaconstanteoliteral. xesunvalorindeterminadoquepuedeser0o1. Alejecutarse,algunasinstruccionesafectanadeterminadosflags,locual esmuy til.Porejemplo,paracomparardoscantidades,unaen Wyotra en f,las restamosSUBWF f,0 y comprobamossiel flag Z(cero) se ha puestoa1(cantidadesiguales)osies0(cantidadesdistintas).
Juegodeinstruccionesde14bits.
3.3.1 Directive Language (cdigo de precompilacin). Lasdirectivassoncomandosdeensambladorqueaparecenenelcdigo fuenteperoquenosetraducendirectamenteencdigosdeoperacin.Se usan para controlar el proceso de compilacin: entradas, salidas y colocacindelosdatos.
Sonpartedellenguajededirectivaslasinstrucciones: SEToPROCESSOR.Permiteelegireltipodeprocesador. ORG.Daunadireccinorigendesdelacualseempezarnaalmacenarlas instrucciones.Muy tilparapoderdividirelcdigoenvariosarchivos, dandoacadaunounorigendistinto. CONSTANT.Permitedefinirconstantes. INCLUDE.Sirveparaincluirotrosarchivos.ASMo.C. __CONFIG.Permiteconfigurarciertosbitsdeconfiguracin(habilitaro deshabilitarproteccindecdigo,WatchDog,BrownOutReset...). Para ms informacin consultar la ayuda del MPLAB en la seccin MPASM'sUserGuide,Captulo5. 3.3.2 Macros. Las Macros son conjutos de instrucciones y directivas definidas por el usuario que son evaluadas slo cuando sean llamadas por el cdigo ensamblador. LasMacrosaceptan argumentos,haciendo que seanmuy flexiblesysepuedaaproximarsuusoaldelasfuncionesenC. Sintaxis: <label>macro[<arg1>,<arg2>...,<argn>] ;elcdigovaaqu endm <label>eselnombreconelqueser llamadoelmacrodesdeelcdigo fuente(<label>[<arg1>,<arg2>...,<argn>]). Cadavezqueaparezcaelargumento<arg>enelmacro,ser sustituido conelvalorqueselehadadoalllamaralmacro.
Sisedeseanponeretiquetasdentrodeunmacro(parahacersaltosdentro delmismo)esmuyimportantequeseandefinidascomovariableslocales dentrodelmacro. Para ms informacin consultar la ayuda del MPLAB en la seccin MPASM'sUserGuide,Captulo7. 3.3.3 Uso de plantillas. Archivos *.inc . Alincluirlassiguienteslneas: listp=16f873;listdirectivetodefineprocessor #include<p16f873.inc>;processorspecificvariabledefinitions obien: listp=16f84;listdirectivetodefineprocessor #include<p16f84.inc>;processorspecificvariabledefinitions loquehacemosesprimero,definirelmicroquevamosausar,segundo, incluir el correspondiente archivo .inc , donde vienen definidos un montn de constantes. As, cuando queramos acceder al puerto A escribiremossimplementePORTA,yaqueenelfichero.incvienedefinido como:PORTA EQUH'0005'
Programacin de microcontroladores.
ElensambladorqueutilizapordefectoelMPLABesel MPASM conel queesposibleabrirunficheroenensamblador(*.asm)yensamblarlopara poderobtenerelficherodeentradadeungrabador(*.hex),perotambin esposibleelusodeproyectosqueutilicenvarios*.asm,permitiendoas reutilizarcdigoconmayorfacilidad. Unavezcorregidostodosloserrores,elprogramayaest listoparaser grabadoenelPICyprobadosobreelterreno,peroresultamsprctico (normalmente),ymsfiable,siantessellevaacabounasimulacinpor software. MPLAB tiene una herramienta de simulacin software, el MPLABSIM.Estaherramienta,sinembargo,tienelagrandesventajade nopodersimularalgunosperifricos,especialmentelaUSART(elpuerto serie). 4.1.2 El GPASM y GPSIM. Otra opcin interesante para usuarios Linux/Unix es el ensamblador GPASMyelsimuladorGPSIM,ambasherramientasGNUenconstante evolucin.GPASMeslaversinGNUdelensambladorMPASMdesde lneadecomandos.Soportatodaslasinstruccionesymodosquesoporteel MPASM. Se incluye en el CD en el directorio Capitulo3. Una vez descomprimidoconsultarelmanualgpasm.pdf. LaherramientadesimulacinbajoLinuxesGPSIM,yapesardenotener unafuncionalidad completa todava,se sigue desarrollando. Seincluye tambinenelCD.
alimentacin, otra para tensin de grabacin y otra de masa. Los microcontroladores16F87xpuedenprogramarsetambinanivelbajode tensin activando los flags correspondientes. Todos los programadores comercialesylosesquemasgratuitosdelaredsebasanenlasiguiente especificacintcnica(incluidaenelCD):InCircuitSerialProgramming (ICSP)Guide,(DS30277B). 4.2.2 Programador de puerto serie. JDM programmer. Dentro de los programadores gratuitos que estn en la red llama la atencin el JDM Programmer por ser muy fcil de construir, por no necesitar alimentacin externa, por permitir grabar tanto 16F84 como 16F873(ademsdeotrosmuchos)ypequeasmemoriasserie,yporser compatibleconelsoftwareICProg. Esquema:
Programadordemicrocontroladoresporpuertoserie.
Ladodelaspistas:Consultarseccindeplanos. Componentes:
R1Resistencia10K R2Resistencia1,5K R3Resistencia100K R4Resistencia1K R5Resistencia1K R6Resistencia1K Dz1Diodozener8,2V Dz2Diodozener5,1V
DL1Diodoled3mmverde DL2Diodoled3mmrojo D1,D2,D3,D4Diodo1N4148 C1Electroltico22uF/16V C2Electroltico100uF/16V Q1,Q2BC237(usarexactamenteestemodelo,yaquetieneVCEsatmuybaja) Q3BC307(usarexactamenteestemodelo,yaquetieneVCEsatmuybaja) ConectorDB9Hembraacodado Zcalo28pinodosde14pin Zcalo18pin Zcalo8pin(necesarioslosisequierenprogramarmemorias)
Realizacin:Estecircuitopuedemontarsedeformamuysencillaenuna placa de prueba, aunque se recomienda su montaje con soldadura. Partiendodeunaplacadeprototiposobiendeunaplacafabricadaseg n sedescribeenelcaptulo5,procederdelasiguientemanera: Soldarlospuentes,loszcalosyelconectoracodadoloprimero.Despus soldarlasresistencias y condensadores. Por ltimo soldar losdiodosy transistores. El JDM es muy ingenioso ya que toma la tensin de programacin directamente de un pin del puerto serie en estado bajo (>+12 V), y se quedaconlastensindealimentacinqueleproporcionaundiodozener de5.2V.Elpuertoserienotieneningnproblemaenalimentarelcircuito ya que puede proporcionar hasta 100mA. Es posible que en algunos porttiles
Cable:SerecomiendacompraruncableserieestndarmachohembraNO nullmodem.Sisequierefabricar,entoncesesnecesario haceruncable queconectelospines7,8,3,4y5entreelpuertoseriedelordenadoryel programador. Uso: Insertarelmicrocontroladoraprogramar(noesnecesarioapretarlo mucho,yesconvenientetocarlacarcasadelordenadorprimerooalgo que est puesto atierra). Enchufarelcablealordenador.Programar el micro.Desenchufarelcable.Extraerelmicroconunaspinzasoconmucho cuidado. ParaprogramarusandoelpuertoparaleloserecominedausarelPIC800o elprogramador_paralelo(compatibleconProPic2yconsupropiafuente dealimentacin)incluidosenelCD. 4.2.3 El ICPROG. El IcProg es un software para Windows muy verstil y sencillo que permite programar todo tipo de circuitos integrados que sean programables con protocolo serie: 12C508, 16C84, 16F84, PIC 16F87x, 24C16,24C32,93C46,90S1200,59C11,89C2051,89S53,250x0,AVR,80C51 etc... Esmuysencillodeusar.Primerohayqueconfigurarelprogramador: Settings>Hardware yconfigurarcomoseindicaenlasiguienteimagen:
ICProg.ConfiguracindelJDMProgrammer.
Luegoseeligeelprocesadorausar: Settings>Device>MicrochipPIC Seseleccionaelarchivoaprogramar: File>Open(tipoIHX8*.hex) Sepuedenquitaroponerlosfusibles,eligireltipodeoscilador...enelcaso denohaberloselegidoenelcdigofuenteconladirectiva__CONFIG. SepulsaF5paraempezaraprogramar.Sitodohaidocorrectamentedar unmensaje de Verify Successful. Sino,dar unmensajeVerify Failed; comprobar que el cable est correctamente enchufado y el micro correctamente colocado ( si se coloca el micro al revs en el programadorpuederesultardaado!!). Para ms informacin y para descargar la ltima versin (en el Cd se incluyeelICProgversin0.9eyelficherodeayuda): http://www.icprog.com/
4.2.4 Programacin en Linux. Para usar un programador de puerto paralelo o serie en Linux se recomiendalapgina:http://www.gnupic.org/seccinProgrammers. Enellaencontraremossoftware paraprogramadoresserie (elPTK4Les compatible con el JDM Programmer al menos para programar el PIC16F84)yparaprogramadoresdepuertoparaleloindependientesdel hardware(hayqueconfigurarquescadapatadelpuerto)comoelMIPI. SeincluyenenelCDtresdiseosdeprogramadoresdepuertoparalelo:el PIC800(http://www.miguelo.com.ar),elprogramador_paraleloyelNo PartsPICProgrammer.