Anda di halaman 1dari 6

Entendiendo los Bits de Configuracin en el PIC16 de Microchip Escrito por Ral Alvarez PIC16!

6"# $os %its de configuracin& lla'ados ta'%ien colectiva'ente (pala%ra de configuracion( per'iten reconfigurar ciertos aspectos generales del funciona'iento del 'icrocontrolador& estos %its de configuracin se guardan en una localizacin espec)fica de la 'e'oria de progra'a del PIC * se gra%an al 'is'o 'o'ento +ue el cdigo de progra'acin En este art)culo se e,plica %reve'ente. /u0 son los %its 1pala%ras2 de configuracin . 3u funcin * uso . 3u inclusin en cdigo ensa'%lador * el lengua4e C En la e4ecucin nor'al del progra'a estos %its no son accesi%les * no pueden ca'%iarse 1solo al 'o'ento de la gra%acin de la 'e'oria de progra'a2 El estado por defecto de los %its de configuracin cuando no han sido progra'ados es de (1( lgico5 por consiguiente progra'ar los %its de configuracin del PIC e+uivale a asignarles un valor de (6( lgico Bits en la Pala%ra de Configuracin 7o todos los PICs tiene e,acta'ente los 'is'os %its de configuracin& ta'poco la 'is'a cantidad& sin e'%argo ciertos %its son co'unes a la 'a*or)a de ellos * son esos los +ue se detallan en este art)culo Bits de Proteccin de Cdigo 1Code Protection %its2- CP1 CP6 11 8 Proteccin de cdigo desha%ilitada 16 8 9epende de cada dispositivo& ver ho4a de datos 61 8 9epende de cada dispositivo& ver ho4a de datos 66 8 :oda la 'e'oria de progra's protegida Algunos dispositivos usan sola'ente un %it 1CP62 para deter'inar la proteccin de cdigo segn la siguiente descripcin1 8 Proteccin de cdigo desha%ilitada 6 8 Proteccin de cdigo ha%ilitada Reco'endaciones Cuando se ha activado la proteccin de cdigo en un dispositivo& la 'e'oria de 0ste *a no puede ser re.le)da para verificacin5 de ah) +ue al verificar el cdigo progra'ado se o%tenga un 'ensa4e de error +ue har)a suponer +ue el cdigo de progra'a no se ha gra%ado correcta'ente& sin e'%argo 0ste no es el caso Bit de Proteccin de Me'oria EEPR;M de 9atos 19ata EEPR;M Me'or* Code Protection %it29P Este %it est< presente sola'ente cuando el dispositivo posee 'e'oria EEPR;M de datos& adicional'ente a su 'e'oria R;M 1flash2 de progra'a 1 8 Proteccin de cdigo desha%ilitada 6 8 Proteccin de 'e'oria EEPR;;M de datos ha%ilitada = Bit de >a%ilitacin de Reinicio por Apagn 1Bro?n.out Reset Ena%le %it2- B;RE7 1 8 B;R ha%ilitado 6 8 B;R desha%ilitado Al ha%ilitar el Reinicio por Apagn 1Bro?n.out Reset2 0ste ha%ilita auto'<tica'ente el :e'porizador de Encendido 1Po?er.up :i'er @PAR:E2& es as) +ue se reco'ienda directa'ente ha%ilitar este %it 1@PAR:E2 sie'pre +ue se ha%ilite el Reinicio por Apagn B/u0 es el Reinicio Por ApagnC Es una caracter)stica de autoproteccin en la +ue un circuito interno en el PIC 'onitorea el

volta4e de ali'entacin +ue reci%e5 cuando por alguna falla de la fuente de volta4e el valor de 0ste %a4a por de%a4o de un cierto u'%ral 1esta%lecido en la ho4a de datos de cada dispositivo2& se produce un reinicio en hard?are auto'<tico del 'icrocontrolador& en este proceso se activa ta'%i0n el :e'porizador de Encendido +ue de4a pasar cierto tie'po antes de +ue el 'icrocontrolador se ha%ilite nueva'ente& prove*endo un tie'po de resguardo hasta +ue el valor del volta4e de ali'entacin su%a nueva'ente a un valor seguro por enci'a del u'%ral esta%lecido& si esto no sucede& el 'icrocontrolador per'ace en estado de reinicio hasta +ue se cu'pla esa condicin El Reinicio por Apagn es entonces una 'edida de seguridad para prevenir un funciona'iento errneo o err<tico en el 'icrocontrolador de%ido a %a4ones %reves en el valor del volta4e de ali'entacin Reco'endaciones . En aplicaciones si'ples +ue no re+uieren alta confia%ilidad general'ente es '<s pr<ctico de4arlo desha%ilitado 1especial'ente para los principiantes2 . 3e ha visto e'p)rica'ente +ue algunos 'icrocontroladores diseDados para tra%a4ar con volta4es %a4os 1E EF por e4e'plo2& podr)an no fucionar del todo si se ha%ilita el Reinicio por Apagn Por e4e'plo& en el caso del PIC16$!6"#A 1al 'enos las pri'eras versiones2& por diseDo 0ste puede funcionar con volta4es desde " hasta G GF& sin e'%argo con Reinicio por Apagn ha%ilitado slo funcionara con volta4es arri%a de HF de%ido a +ue 0ste es t)pica'ente el volta4e de u'%ral definido en su ho4a de datos Bit de >a%ilitacin de :e'porizador de Encendido 1Po?er.up :i'er Ena%le %it2- @PAR:E 1 8 PAR: desa%ilitado 6 8 PAR: ha%ilitado Al ha%ilitar el Reinicio por Apagn 1Bro?n.out Reset2 se reco'ienda ha%ilitar ta'%i0n el :e'porizador de Encendido 1Po?er.up :i'er @PAR:E2de%ido a +ue este lti'o es re+uerido ta'%i0n para el funciona'iento del Reinicio por Apagn 7ota- Algunos 'icrocontroladores PIC originales tienen invertida la polaridad de este %it B/u0 es el :e'porizador de EncendidoC Es un te'porizador +ue per'ite retardar por cierto tie'po 1co'o e4e'plo& son I" 's de duracin en el PIC16!6"#A2 el encendido del 'icrocontrolador co'o 'edida de proteccin hasta +ue al fuente de ali'entacin se esta%ilice 1Algunas fuentes de ali'entacin especial'ente caseras pueden llegar a tener una ra'pa de acenso del valor de su volta4e de'asiado lenta2 Reco'endaciones Es 'u* reco'enda%le de4ar sie'pre ha%ilitado el :e'porizador de Encendido Bit de 3eleccin de !uncin del Pin @MC$R 1MC$R Pin !unction 3elect %it2- MC$RE 1 8 $a funcin del pin es @MC$R 6 8 $a funcin del pin es de E@3 digital @MC$R est< interna'ente conectado a F99 Reco'endacionesEn 'icrocontroladores +ue 'ultiple,an 1co'parten2 en un 'is'o pin la funcin @MC$R con un %it de E@3 u otra funcin& se de%e tener cuidado al desha%ilitar @MC$R de%ido a +ue algunos progra'adores 1especial'ente los lla'ados (clonados(2 encuentran pro%le'as en volver a progra'ar un 'icrocontrolador cu*o @MC$R ha sido desha%ilitado Por precaucin de4ar en lo posi%le ha%ilitado el @MC$R Bit de >a%ilitacin de (Perro Juardi<n( 1Aatchdog :i'er Ena%le %it2- A9:E 1 8 A9: ha%ilitado 6 8 A9: desa%ilitado

B/u0 es el (Perro Juardi<n(C El (Perro Juardi<n( 1algunos prefieren lla'arle si'ple'ente (Juardi<n(2 es otra caracter)stica de seguridad en los 'icrocontroladores cu*o o%4eto es prevenir +ue el 'icrocontrolador se +uede indefinida'ente %lo+ueado o (colgado( de%ido a fallas en la lgica del soft?are * en algunos casos de%ido a fallas de hard?are causadas& entre otras cosas& por ruido electro'agn0tico 1i'pulsos2 en a'%ientes de alto riesgo Fa'os a ilustrar %reve'ente co'o e4e'plo el pri'er casoBlo+ueo en Cdigo- Considere'os la siguiente porcin de cdigo1 ?hile 13erialK9isponi%le122 "5 E H caracter 8 $eerK3erial125 $a pieza de cdigo anterior evala la funcin 3erialK9isponi%le12 para sa%er si ha* un nuevo %*te de recepcin serial listo para ser le)do5 si no ha* ningn %*te disponi%le& la instruccin condicional (?hile( se repite indefinida'ente hasta encontrar un nuevo %*te disponi%le Cuando se encuentra el nuevo& el progra'a avanza reci0n a la siguiente instruccin en la cual se lee el 'is'o * se lo al'acena en la varia%le (caracter( $a lgica del algorit'o asu'e +ue tarde o te'prano llegar< el nuevo %*te +ue uno espera& pero B+u0 pasa si por alguna falla e,terna el nuevo %*te nunca llegaC El 'icrocontrolador se +ueda per'anente'ente %lo+ueado produciendo una falla catastrfica irrecupera%le en la aplicacin 7o por nada a este tipo de cdigo se le lla'a (cdigo de %lo+ueo(& pues %lo+uea al procesador te'poral'ente hasta +ue una deter'inada condicin se cu'pl& pero puede %lo+ueralo ta'%i0n per'anente'ente si la condicin nunca se cu'ple5 en este caso& sola'ente un reinicio puede sacar al 'icrocontrolador de su condicin de %lo+ueo Es a+u) donde el (Perro Juardi<n( 4uega su papel El (Perro Juardi<n( es si'ple'ente un te'porizador +ue en su operacin nor'al genera un reinicio general del 'icrocontrolador una vez +ue su conteo ha so%repasado el li'ite '<,i'o 1por e4e'plo& alrededor de 1# 's co'o ')ni'o en el PIC16!6"#A2 Para evitar este reinicio auto'<tico uno de%e reiniciar el contador cont)nua'ente antes de +ue 0ste alcance su conteo '<,i'o& para lo cual se hace uso de la instruccin especial en los PICs lla'ada C$RA9: 1Clear Aatchdog :i'er& en ensa'%lador2 A esta operacin de reinicio de este te'porizador se le dice colo+uial'ente (patear al perro( 1$a 'et<fora a+u) es +ue el perro guardi<n sale de su casa a ladrar cada vez +ue un deter'inado tie'po se cu'ple5 para +ue eso no pase& uno (patea( .con cariDo& para los a'antes de los ani'ales. al perro para +ue entre nueva'ente a su casa2 A fin de +ue el te'porizador del (Juard)an( sea reiniciado apropiada'ente& la instruccin C$RA9: de%e incluirse en el %ucle principal +ue se repite indefinida'ente * de%e e4ecutarse antes de los 1# 's 1o lo +ue se especifi+ue en la ho4a de datos de cada dispositivo2& de ese 'odo en cada repeticin del %ucle el te'porizador ser< reincializado apropiada'ente Folviendo a nuestro e4e'plo anterior& B+u0 pasa si el cdigo se %lo+ueda per'anente'ente por alguna falla en el soft?are o hard?areC En este caso el te'porizador del (Juardi<n( nunca se reinicia * cuando el conteo llega a su '<,i'o se produce efectiva'ente el reinicio de todo el siste'a& d<ndole al 'is'o la posi%ilidad de restaurarse a su funciona'einto nor'al Por supuesto +ue para e'pezar& la 'e4or solucin es evitar de entrada utilizar este tipo de (cdigo de %lo+ueo( en nuestros progra'as * de4ar el (Perro Juardi<n( para otras circunstacias

'<s inesperadas& sin e'%argo usa'os el 'encionado e4e'plo por su si'plicidad Reco'endaciones En siste'as sencillos +ue no re+uieran alta confia%ilidad& o si'ple'ente cuando uno est< en etapa de desarrollo * prue%a& se puede de4ar desha%ilitado el (Perro Juardi<n( Es '<s algunos reco'iendan posponer la ha%ilitacin del 'is'o hasta las lti'as etapas de desarrollo del siste'a * alguno e,pertos van '<s all< * reco'iendan evitar sie'pre el uso del (Perro Juardian( en el entendido de +ue uno de%e preveer en el desarrollo todas las posi%les fallas +ue pudieran ocurrir * no de4ar +ue el uso del (Juardi<n( se convierta en una ('uleta( donde apo*ar las 'alas pr<cticas de diseDo El uso del (Juardi<n( no es o%ligatorio& sin e'%argo en 'i opinin se de%en co'%inar a'%as estrategias- Preveer en el diseDo las fallas +ue pudiera ocurrir prove*endo estrategias de recuperacin de fallas en el siste'a * final'ente incluir ta'%i0n el (Perro Juardi<n( co'o una ltia' l)nea de defensa Bits de 3eleccin de ;scilador 1;scillator 3election %its2- !;3C1 !;3C6 11 8 ;scilador RC 1'alla e,terna resistor.capacitor2 16 8 ;scilador >3 1cristal@resonador de alta velocidad2 61 8 ;scilador L: 1cristal@resonador2 66 8 ;scilador $P 1cristal de %a4a frecuencia * %a4a potencia2 3eleccin de ;scilador con :res Bits 111 8 ;scilador EL:RC con C$M;N: 1e,terno RC con salida de relo42 116 8 ;scilador EL:RC 1e,terno RC2 161 8 I7:RC con C$M;N: 1interno RC con salida de relo42 166 8 I7:RC 1interno RC2 611 8 Reservado 616 8 ;scilador >3 661 8 ;scilador L: 666 8 ;scilador $P Reco'endaciones $a 'alla RC e,terna es general'ente '<s econ'ica& pero la frecuencia de oscilacin no es 'u* esta%le * var)a en funcin a factores co'o la precisin de los co'ponentes& el desgaste por su uso * la te'peratura a'%iente $os osciladores >3& L: * $P representan %<sica'ente el uso de la 'is'a t0cnica con la diferencia de +ue el tipo >3 re+uiere 'a*or consu'o de potencia5 esto de%ido a +ue la ganancia del inversor en el circuito interno del oscilador es 'a*or& lo cual es necesario a fin de lograr frecuencias '<s altas En ca'%io& el tipo $P 1$o? Po?er2 es el +ue 'enor ganancia re+uiere * por lo tanto tiene 'enor consu'o de potencia * co'o consecuencia slo se alcanzan frecuencias relativa'ente %a4as El tipo L: es un tipo inter'edio entre los dos anteriores

Algunos de los 'icrocontroladores '<s nuevos traen un oscilador RC interno cu*o %it de configuracin est< t)pica'ente representado co'oI7:RC- ;scilador interno de 'alla resistor.capacitor :)pica'ente un oscilador RC e,terno i'ple'entado con co'ponentes 'u* %aratos no provee 'ucha esta%ilidad * precisin en frecuencia * no son confia%les co'o seDal de referencia para la i'ple'entacin de relo4es o ta'%i0n protocolos de co'unicacin as)ncrona con velocidad est<ndar predefinidas co'o es el caso con los dispositivos NAR:5 si'ple'ente por+ue la variacin o desv)o de la frecuencia es e,cesiva 3i' e'a%argo los 'odelos de 'icrocontroladores '<s recientes traen osciladores internos RC cu*a precisin ha ido 'e4orando sustancial'ente desde unos aDos atr<s& su frecuencia es 'u* esta%le * per'iten lograr

co'unicaciones tipo NAR: 'u* confia%les& aun+ue o%via'ente la precisin todav)a no se acerca a la de los cristales En su'a& si lo +ue se %usca es %a4ar costos& la eleccin es usar una 'alla RC e,terna o 'e4or an el oscilador RC interno +ue 'uchos 'icrocontroladores actuales traen incorporados * evitar as) el uso de co'ponentes e,ternos adicionales 3i lo +ue se re+uiere es precisin& la eleccin es el cristal5 si adicional'ente se re+uiere %a4o consu'o de potencia& un cristal $P de %a4o consu'o de potencia& * si lo +ue se re+uiere es velocidad& un cristal >3& pero tenga'os sie'pre presente co'o regla general +ue& a 'a*or frecuencia es ta'%i0n 'a*or el consu'o de corriente A4uste de los Bits de Configuracin en Progra'a E,iste la posi%ilidad de a4ustar los %its de configuracin directa'ente en el soft?are de progra'acin 1co'o en el (PICOit Progra''er( por e4e'plo2& o en una opcin de 'en en el entorno de desarrollo MP$AB 1slo las versiones # 6 * anteriores per'iten esto2& sin e'%argo es 'ucho '<s reco'enda%le incluir el a4uste de los %its de configuracin directa'ente en el cdigo 9irectiva de Configuracin C;7!IJ en el MPA3M El ensa'%lador MPA3M de Microchip per'ite especificar los %its de configuracin directa'ente en cdigo usando la directiva C;7!IJ co'o en el siguiente e4e'plo61 $I3: p 8 p16!#H 5 9irective& 6" 5 Progra'a e4e'plo 6E 5 6H PI7C$N9E QP16!#H I7CR 5 Microchip 9evice >eader !ile 6G 5 66 5 Bits de configurac)on6I 5 6# KKC;7!IJ KL:K;3C S KPAR:EK;7 S KB;9E7K;!! S KCPK;!! S KA9:K;7 6T 5 16 org 6,66 5 Inicio de progra'a 11 5El resto del progra'a 1" 1E end $os s)'%olos usados en la directiva config hacen posi%le la configuracin de cada %it con la polaridad correcta& est<n definidos en el archivo incluido con la directiva PI7C$N9E Para cada dispositivo se de%e consultar espec)fica'ente los s)'%olos +ue est<n definidos * su no'enclatura correcta 3)'%olos de la 9irectiva KKC;7!IJ $os siguientes son algunos de los s)'%olos sacados de los archivos de ca%ecera 1header files2 de Microchip& ha* +ue to'ar en cuenta +ue no todos los s)'%olos est< disponi%les en un deter'indo dispositivo ;sciladoresKRCK;3C KEL:RCK;3C KEL:RCK;3CKC$M;N: KEL:RCK;3CK7;C$M;N: KI7:RCK;3C KI7:RCK;3CKC$M;N: KI7:RCK;3CK7;C$M;N: K$PK;3C KL:K;3C

K>3K;3C :e'porizador de (Perro Juardi<n( 1Aatch 9og :i'er2KA9:K;7 KA9:K;!! :e'porizador de Encendido 1Po?er.up :i'er2KPAR:EK;7 KPAR:EK;!! Reinicio por Apagn 1Bro?n.out Reset2KB;9E7K;7 KB;9E7K;!! >a%ilitacin o Reinicio Maestro 1Master Clear Ena%le2 KMC$REK;7 KMC$REK;!! Proteccin de Cdigo 1Code Protect2 KCPKA$$ KCPK;7 KCPKIG KCPKG6 KCPK;!! Proteccin de Me'oria EEPR;M 1Code Protect 9ata EEPR;M2K9PK;7 K9PK;!! Proteccin de Me'oria de Configuracin 1Code Protect Cali%ration 3pace2KCPCK;7 KCPCK;!!

Anda mungkin juga menyukai