Está en la página 1de 16

­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­33

Microcontroladores Atmel

Generalidades y CaraCterístiCas de los


MiCroControladores atMel
Los AVR son una familia de microcontroladores RISC de Atmel. La arquitectura de los
AVR fue concebida por dos estudiantes en el “Norwegian Institute of Technology” y, pos-
teriormente, refinada y desarrollada en Atmel Norway, empresa subsidiaria de Atmel, fun-
dada por los dos arquitectos del chip. El AVR es un microcontrolador (CPU) de arqui-
tectura Harvard con 32 registros de 8 bits. Algunas instrucciones sólo operan en un sub-
conjunto de estos registros. La concatenación de los 32 registros, los registros de entra-
da/salida y la memoria de datos conforman un espacio de direcciones unificado, al cual
se accede a través de operaciones de carga/almacenamiento. A diferencia de los micro-
controladores PIC, el stack se ubica en este espacio de memoria unificado, y no está
limitado a un tamaño fijo. El AVR fue diseñado desde un comienzo para la ejecución efi-
ciente de código C compilado. Por lo tanto, algunas instrucciones tales como 'suma
inmediata' ('add immediate' en inglés) no están incluidas, ya que puede usarse la ins-
trucción 'resta inmediata' ('substract immediate' en inglés) con el complemento dos
como una alternativa. El set de instrucciones AVR está implementado físicamente y dis-
ponible en el mercado en diferentes dispositivos, que comparten el mismo núcleo AVR
pero tienen distintos periféricos y cantidades de RAM y ROM: desde el microcontrolador
de la familia Tiny AVR ATtiny11 con 1kB de memoria flash y sin RAM (sólo los 32 regis-
tros), y 8 pines, pasando por el microcontrolador de la familia Mega AVRATmega2560
con 256kB de memoria flash, 8kB de memoria RAM, 4kB de memoria EEPROM, conver-
sor análogo digital de 10 bits y 16 canales, temporizadores, comparador analógico,
JTAG, etc. Hay una gran compatibilidad entre los diferentes modelos.

Coordinación: Ing. Horacio Daniel Vallejo - hvquark@webelectronica.com.ar

Microcontroladores 33
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­34

M AnuAles T écnicos :

IntroDuCCIón soportados­ por­ tarjetas­ de­ desarrollo­ de­ costo


razonable,­ capaces­ de­ descargar­ el­ código­ al
Lue­go­de­pre­gun­tar­a­di­fe­ren­tes­fuen­tes­so­bre microcontrolador,­y­por­una­versión­de­las­herra-
el­ ori­gen­ del­ nom­bre­AVR,­ pro­pues­to­ por­At­mel mientas­ GNU.­ Hoy­ en­ día­ se­ han­ hecho­ mucho
pa­ra­ es­tos­ mi­cro­con­tro­la­do­res,­ des­co­noz­co­ la más­famosos­gracias­a­la­plataforma­ARDUINO,
ver­da­de­ra­eti­mo­lo­gía­de­es­tas­si­glas,­sin­em­bar­- de­la­cual­hablaremos­más­adelante.­Sin­embar-
go­po­drían­de­ber­se­a­lo­si­guien­te: go,­para­poder­comenzar­a­hablar­de­los­micro-
controladores­ más­ pequeños­ de­ 8­ bits,­ primero
1) Audio, Video, Radio: Microcontroladores haremos­una­breve­introducción­a­los­microcon-
pensados para aplicaciones en audio, video y ra- troladores.
dio. La­fa­mi­lia­de­mi­cro­con­tro­la­do­res­AVR­es­bas­-
2) Advanced Virtual Risc. tan­te­ex­ten­sa­y­to­das­com­par­ten­el­mis­mo­nú­cleo
3) Corresponde a las iniciales de sus invento- AVR,­ pe­ro­ tie­nen­ dis­tin­tos­ pe­ri­fé­ri­cos­ y­ can­ti­da­-
res: Alf Egil Bogen and Vegard Wollan (AlfVegar- des­ de­ RAM­ y­ ROM:­ des­de­ el­ mi­cro­con­tro­la­dor
dRisc). de­la­fa­mi­lia­Tiny­AVR­AT­tiny11­con­1kB­de­me­-
mo­ria­flash­y­sin­RAM­(só­lo­los­32­re­gis­tros),­con
El­AVR­fue­di­se­ña­do­pa­ra­la­eje­cu­ción­de­pro­- un­en­cap­su­la­do­de­8­pi­nes,­has­ta­el­mi­cro­con­tro­-
gra­mas­ es­cri­tos­ en­ có­di­go­ C­ com­pi­la­do.­ Por­ lo la­dor­ de­ la­ fa­mi­la­ Me­ga­ AV­RAT­me­ga2560­ con
tan­to,­al­gu­nas­ins­truc­cio­nes­no­es­tán;­por­ejem­- 256kB­de­me­mo­ria­flash,­8kB­de­me­mo­ria­RAM,
plo,­ no­ exis­te­ la­ ins­truc­ción­ 'su­ma­ in­me­dia­ta' 4kB­de­me­mo­ria­EE­PROM,­con­ver­sor­aná­lo­go­di­-
('add­im­me­dia­te'),­ya­que­la­ins­truc­ción­'res­ta­in­- gi­tal­ de­ 10­ bits­ y­ 16­ ca­na­les,­ tem­po­ri­za­do­res,
me­dia­ta'­ ('subs­tract­ im­me­dia­te')­ con­ el­ com­ple­- com­pa­ra­dor­ana­ló­gi­co,­etc.­
men­to­a­dos­pue­de­ser­usa­da­co­mo­al­ter­na­ti­va. Ca­da­com­po­nen­te­de­la­fa­mi­lia­se­ha­di­se­ña­-
Los­ microcontroladores­ AVR­ poseen­ una do­ pa­ra­ que­ guar­de­ cier­ta­ com­pa­ti­bi­li­dad­ con­ el
esructura­tipo­“pipeline”­con­dos­etapas­(cargar­y res­to.­ Los­ mi­cro­con­tro­la­do­res­ AVR­ per­mi­ten­ la
ejecutar),­que­les­permite­ejecutar­la­mayoría­en eje­cu­ción­de­ins­truc­cio­nes­me­dian­te­la­me­to­do­lo­-
un­ ciclo­ de­ reloj,­ lo­ que­ los­ hace­ relativamente gía­'pi­pe­li­ne'­con­dos­eta­pas­(car­gar­y­eje­cu­tar),
rápidos­entre­los­microcontroladores­de­8-bit. que­les­per­mi­te­eje­cu­tar­la­ma­yo­ría­de­las­ins­truc­-
El­ set­ de­ instrucciones­ de­ los­ AVR­ es­ más cio­nes­en­un­ci­clo­de­re­loj,­lo­que­los­ha­ce­re­la­ti­-
regular­que­la­de­la­mayoría­de­los­microcontro- va­men­te­rá­pi­dos­en­tre­los­mi­cro­con­tro­la­do­res­de
ladores­ de­ 8-bit­ (por­ ejemplo,­ los­ PIC).­ Sin 8­bits.
embargo,­no­es­completamente­ortogonal: Co­mo­ una­ pri­me­ra­ sín­te­sis,­ po­de­mos­ de­cir
que­el­set­de­ins­truc­cio­nes­de­los­AVR­es­bas­tan­-
• Los registros punteros X, Y y Z tienen capa- te­ “re­gu­lar”,­ te­nien­do­ en­ cuen­ta­ las­ si­guien­tes
cidades de direccionamiento diferentes entre sí. con­si­de­ra­cio­nes:
• Los registros 0 al 15 tienen diferentes capa-
cidades de direccionamiento que los registros 16 • Los registros punteros X, Y y Z tienen capa-
al 31. cidades de direccionamiento diferentes entre sí.
• Las registros de I/O 0 al 31 tienen distintas • Los registros 0 al 15 tienen diferentes capa-
características que las posiciones 32 al 63. cidades de direccionamiento que los registros 16
• La instrucción CLR afecta los 'flag', mientras al 31.
que la instrucción SER no lo hace, a pesar de que • Las registros de I/O 0 al 31 tienen distintas
parecen ser instrucciones complementarias características que las posiciones 32 al 63.
(dejar todos los bits en 1, y dejar todos los bits en • La instrucción CLR afecta los 'flag', mientras
0 respectivamente). que la instrucción SER no lo hace, a pesar de que
• Los códigos de operación 0x95C8 y 0x9004 parecen ser instrucciones complementarias (de-
hacen exactamente lo mismo (LPM). jar todos los bits en 1, y dejar todos los bits en 0
respectivamente).
Como­los­PIC,­tiene­una­comunidad­de­segui- • Los códigos de operación 0x95C8 y 0x9004
dores­ (ejemplificadas­ por­ el­ foro­ de­ internet hacen exactamente lo mismo (LPM).
AVRFreaks),­principalmente­debido­a­la­existen-
cia­de­herramientas­de­desarrollo­gratuitas­o­de Así­co­mo­los­PICs­po­seen­un­“en­tor­no­de­de­-
bajo­ costo.­ Estos­ microcontroladores­ están sa­rro­llo”­ (MPLAB),­ los­AVR­ tam­bién­ po­seen­ he­-

34 Microcontroladores
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­35

G enerAlidAdes y c ArAcTerísTicAs de los M icroconTrolAdores A TMel

rra­mien­tas­de­de­sa­rro­llo­gra­tui­tas­o­de­ba­jo­cos­- de­ al­ta­ es­ca­la­ de­ in­te­gra­ción­ que­ in­cor­po­ra­ la


to­ca­pa­ces­de­des­car­gar­el­có­di­go­al­mi­cro­con­tro­- ma­yor­par­te­de­los­ele­men­tos­que­con­fi­gu­ran­un
la­dor­uti­li­zan­do­una­ver­sión­de­las­he­rra­mien­tas con­tro­la­dor­y­que­con­tie­ne­to­dos­los­com­po­nen­-
de­li­cen­cia­li­bre­GNU. tes­fun­da­men­ta­les­de­un­or­de­na­dor,­aun­que­de­li­-
Aho­ra­bien,­co­mo­es­pro­ba­ble­que­es­te­ar­tí­cu­- mi­ta­das­ pres­ta­cio­nes­ y­ que­ se­ sue­le­ des­ti­nar­ a
lo­ es­té­ sien­do­ leí­do­ por­ es­tu­dian­tes­ y/o­ prin­ci­- go­ber­nar­una­so­la­ta­rea.
pian­tes,­va­mos­a­dar­una­bre­ve­in­tro­duc­ción­que En­la­me­mo­ria­de­pro­gra­ma­­de­be­re­si­dir­un
ex­pli­que­qué­es­un­mi­cro­con­tro­la­dor­y­pa­ra­qué con­jun­to­de­sen­ten­cias­(pro­gra­ma)­que­con­tro­lan
se­lo­em­plea.­Pa­ra­es­te­pro­pó­si­to­em­plea­re­mos el­fun­cio­na­mien­to­de­una­ta­rea­de­ter­mi­na­da,­sus
de­fi­ni­cio­nes­ rea­li­za­das­ por­ Emi­lio­ To­bo­so­ en­ su lí­neas­de­en­tra­da­/sa­li­da­se­co­nec­tan­a­los­sen­so­-
pá­gi­na­ www.perso.wanadoo.es/emiliotoboso. res­y­ac­tua­do­res­del­dis­po­si­ti­vo­a­con­tro­lar­y,­de­-
Ca­be­acla­rar­que­en­el­li­bro­“PIC­pa­ra­Es­tu­dian­- bi­do­a­su­pe­que­ño­ta­ma­ño,­sue­le­ir­in­te­gra­do­en
tes”,­de­Edi­to­rial­Quark,­Ud,­pue­de­en­con­trar­bi­- el­pro­pio­dis­po­si­ti­vo­al­que­au­to­ma­ti­za.
blio­gra­fía­ex­ten­sa­so­bre­el­te­ma­y­que­en­la­pá­gi­- Se­gún­ lo­ di­cho,­ un­ mi­cro­con­tro­la­dor­ dis­po­ne
na­del­Sr.­To­bo­so­tam­bién­po­drá­en­con­trar­abun­- nor­mal­men­te­de­los­si­guien­tes­com­po­nen­tes:
dan­te­in­for­ma­ción­orien­ta­da­a­los­mi­cro­con­tro­la­-
do­res­PICs, • Procesador o CPU (Unidad Central de Pro-
ceso).
• Memoria RAM para contener los datos.
IntroDuCCIón a los MICroControlaDores • Memoria para el programa tipo ROM/EPRO-
M/EEPROM/Flash.
Des­de­la­in­ven­ción­de­los­se­mi­con­duc­to­res,­el • Líneas de E/S para comunicarse con el ex-
de­sa­rro­llo­de­la­tec­no­lo­gía­di­gi­tal­ha­da­do­lu­gar­a terior.
dis­po­si­ti­vos­ ca­da­ vez­ más­ com­ple­jos­ y­ rá­pi­dos.
En­tre­ellos­los­mi­cro­pro­ce­sa­do­res­y­los­mi­cro­con­- Tam­bién­pue­de­po­seer­otros­blo­ques­de­apo­-
tro­la­do­res.­Los­mi­cro­con­tro­la­do­res­se­en­cuen­tran yo­que­fle­xi­bi­li­zan­aún­más­su­uso,­ta­les­co­mo:
en­nues­tro­tra­ba­jo,­en­nues­tra­ca­sa­y­en­nues­tra
vi­da.­Con­tro­lan­el­fun­cio­na­mien­to­de­los­te­cla­dos • Módulos para el control de periféricos: tem-
de­las­com­pu­ta­do­ras,­es­tán­en­los­te­lé­fo­nos­ce­lu­- porizadores, puertos serie y paralelo, CAD: Con-
la­res,­en­los­hor­nos­de­mi­croon­das­y,­en­ge­ne­ral, versores Analógico/Digital, CDA: Conversores Di-
en­to­do­apa­ra­to­elec­tró­ni­co­que­po­sea­un­gra­do gital/Analógico, etc.
de­au­to­ma­tis­mo.­ • Generador de impulsos de reloj que sincro-
Se­ di­ce­ que­ un­ con­tro­la­dor­ es­ un­ dis­po­si­ti­vo nizan el funcionamiento de todo el sistema.
que­se­em­plea­pa­ra­ma­ne­jar­uno­o­va­rios­pro­ce­- • Sistemas de protección de sobrecorriente o
sos.­Por­ejem­plo,­pa­ra­ver­te­le­vi­sión,­un­con­tro­la­- cortocircuito.
dor­eva­lúa­la­se­ñal­que­in­gre­sa­por­la­an­te­na­y­la
pro­ce­sa­pa­ra­que­a­la­pan­ta­lla­y­el­par­lan­te­lle­gue Ca­da­fa­bri­can­te­de­mi­cro­con­tro­la­do­res­ofer­ta
con­el­mis­mo­ni­vel­pro­me­dio,­sin­im­por­tar­el­ni­vel un­ele­va­do­nú­me­ro­de­mo­de­los­di­fe­ren­tes,­des­de
de­la­se­ñal­in­gre­san­te,­siem­pre­que­es­té­den­tro los­ más­ sen­ci­llos­ has­ta­ los­ más­ po­de­ro­sos.­ Se
de­ de­ter­mi­na­dos­ pa­rá­me­tros.­ Has­ta­ ha­ce­ unos pue­de­se­lec­cio­nar­la­ca­pa­ci­dad­de­las­me­mo­rias,
35­ años,­ los­ con­tro­la­do­res­ se­ cons­truían­ con el­nú­me­ro­de­lí­neas­de­E/S,­la­can­ti­dad­y­po­ten­-
com­po­nen­tes­ elec­tró­ni­cos­ de­ ló­gi­ca­ dis­cre­ta; cia­ de­ los­ ele­men­tos­ au­xi­lia­res,­ la­ ve­lo­ci­dad­ de
pos­te­rior­men­te­ se­ em­plea­ron­ los­ mi­cro­pro­ce­sa­- fun­cio­na­mien­to,­ etc.­ Por­ to­do­ ello,­ un­ as­pec­to
do­res,­apo­ya­dos­con­chips­de­me­mo­ria­y­dis­po­si­- muy­im­por­tan­te­del­di­se­ño­de­un­sis­te­ma­mi­cro­-
ti­vos­de­E/S­so­bre­una­tar­je­ta­de­cir­cui­to­im­pre­so. con­tro­la­do­es­la­se­lec­ción­del­mi­cro­con­tro­la­dor­a
Des­de­co­mien­zos­de­los­90­to­dos­los­ele­men­tos uti­li­zar.­
del­ con­tro­la­dor­ se­ han­ po­di­do­ in­cluir­ en­ un­ so­lo Una­ apli­ca­ción­ tí­pi­ca­ po­dría­ em­plear­ va­rios
cir­cui­to­in­te­gra­do,­el­cual­re­ci­be­el­nom­bre­de­mi­- mi­cro­con­tro­la­do­res­pa­ra­con­tro­lar­pe­que­ñas­par­-
cro­con­tro­la­dor.­ Es­ de­cir,­ un­ mi­cro­con­tro­la­dor­ es tes­del­sis­te­ma.­
un­chip­que­po­see­en­su­in­te­rior­a­un­mi­cro­pro­ce­- Es­tos­pe­que­ños­con­tro­la­do­res­po­drían­co­mu­-
sa­dor,­me­mo­ria­de­pro­gra­ma,­me­mo­ria­de­da­tos ni­car­se­ en­tre­ ellos­ y­ con­ un­ pro­ce­sa­dor­ cen­tral,
y­puer­tos­pa­ra­co­mu­ni­car­se­con­el­ex­te­rior. pro­ba­ble­men­te­más­po­ten­te,­pa­ra­com­par­tir­la­in­-
Un­ mi­cro­con­tro­la­dor­ es­ un­ cir­cui­to­ in­te­gra­do for­ma­ción­y­coor­di­nar­sus­ac­cio­nes­co­mo,­de­he­-

Microcontroladores 35
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­36

M AnuAles T écnicos :

cho,­ocu­rre­ya­ha­bi­tual­men­te­en­cual­quier­PC.­Al­- na­sus­prin­ci­pa­les­ca­rac­te­rís­ti­cas,­tan­to­a­ni­vel­de
gu­nas­ apli­ca­cio­nes­ de­ los­ mi­cro­con­tro­la­do­res hard­wa­re­co­mo­de­soft­wa­re.­
son: Se­en­car­ga­de­di­rec­cio­nar­la­me­mo­ria­de­ins­-
truc­cio­nes,­re­ci­bir­el­có­di­go­OP­de­la­ins­truc­ción
• En sistemas de comunicación: centrales telefó- en­ cur­so,­ su­ de­co­di­fi­ca­ción­ y­ la­ eje­cu­ción­ de­ la
nicas, transmisores, receptores, télefonos fijos, celu- ope­ra­ción­que­im­pli­ca­la­ins­truc­ción,­así­co­mo­la
lares, fax, etc. bús­que­da­de­los­ope­ran­dos­y­el­al­ma­ce­na­mien­to
• En electrodomésticos: lavarropas, hornos de mi- del­re­sul­ta­do.
croondas, heladeras, lavavajillas, televisores, repro- Exis­ten­tres­ti­pos­de­CPU­en­cuan­to­a­la­for­-
ductores de DVD, minicomponentes, controles remo- ma­de­“pro­ce­sar”­las­ins­truc­cio­nes:
tos, etc.
• Industria informática: Se encuentran en casi to- • CISC: Un gran número de procesadores
dos los periféricos; ratones, teclados, impresoras, es- usados en los microcontroladores están basados
cáner, etc. en la filosofía CISC (Computadores de Juego de
• Domótica: sistemas de alarma y seguridad, con- Instrucciones Complejo). Disponen de más de 80
trol de procesos hogareños a distancia, etc. instrucciones de máquina en su repertorio, algu-
• Automación: climatización, seguridad, ABS, etc. nas de las cuales son muy sofisticadas y poten-
• Industria: Autómatas, control de procesos, etc. tes, requiriendo muchos ciclos para su ejecución.
• Otros: Instrumentación, electromedicina, ascen- Una ventaja de los procesadores CISC es que
sores, calefacción, aire acondicionado, sistemas de ofrecen al programador instrucciones complejas
navegación, etc. que actúan como macros.
• RISC: Tanto la industria de los computado-
En­la­fi­gu­ra­1­se­pue­de­apre­ciar­la­dis­tri­bu­ción res comerciales como la de los microcontrolado-
de­ los­ mi­cro­con­tro­la­do­res­ en­ las­ áreas­ de­ más res, están decantándose hacia la filosofía RISC
uso. (Computadores de Juego de Instrucciones Redu-
cido). En estos procesadores el repertorio de ins-
trucciones de máquina es muy reducido y las ins-
arquIteCturas De ProCeso trucciones son simples y, generalmente, se eje-
cutan en un ciclo. La sencillez y rapidez de las
En­ ge­ne­ral,­ los­ mi­cro­con­tro­la­do­res­ po­seen instrucciones permiten optimizar el hardware y el
dos­for­mas­de­tra­ba­jo­en­cuan­to­a­los­da­tos­y­di­- software del procesador.
rec­cio­nes.­La­ar­qui­tec­tu­ra­de­Von­Neu­mann­(fi­gu­- • SISC: En los microcontroladores destinados
ra­2)­se­ca­rac­te­ri­za­por­dis­po­ner­de­una­so­la­me­- a aplicaciones muy concretas, el juego de instruc-
mo­ria­prin­ci­pal­don­de­se­al­ma­ce­nan­da­tos­e­ins­- ciones, además de ser reducido, es "específico";
truc­cio­nes­ de­ for­ma­ in­dis­tin­ta.­A­ di­cha­ me­mo­ria o sea, las instrucciones se adaptan a las necesi-
se­ac­ce­de­a­tra­vés­de­un­sis­te­ma­de­bu­ses­úni­co dades de la aplicación prevista. Esta filosofía se
(di­rec­cio­nes,­da­tos­y­con­trol)­mien­tras­que­la­ar­- ha bautizado con el nombre de SISC (Computa-
qui­tec­tu­ra­Har­vard­(fi­gu­ra­3)­dis­po­ne­de­dos­me­- dores de Juego de Instrucciones Específico).
mo­rias­ in­de­pen­dien­tes,­ una­ que
con­tie­ne­só­lo­ins­truc­cio­nes­y­otra
só­lo­ da­tos.­ Am­bas­ dis­po­nen­ de
sus­ res­pec­ti­vos­ sis­te­mas­ de­ bu­-
ses­de­ac­ce­so­y­es­po­si­ble­rea­li­-
zar­ope­ra­cio­nes­de­ac­ce­so­(lec­tu­-
ra­ o­ es­cri­tu­ra)­ si­mul­tá­nea­men­te
en­am­bas­me­mo­rias.­

la unIDaD Central
De ProCeso o CPu

Es­el­ele­men­to­más­im­por­tan­-
te­del­mi­cro­con­tro­la­dor­y­de­ter­mi­- Figura 1 - Areas en las que se usan los microcontroladores.

36 Microcontroladores
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­37

G enerAlidAdes y c ArAcTerísTicAs de los M icroconTrolAdores A TMel

obtienen a partir de procesos fotoquímicos, don-


de se impregnan capas de silicio y óxido de sili-
cio, y según convenga, se erosionan al exponer-
los a la luz. Como no todos los puntos han de ser
erosionados, se sitúa entre la luz y la oblea una
máscara con agujeros, de manera que donde de-
ba incidir la luz, ésta pasará. Con varios procesos
similares, pero más complicados, se consigue fa-
Fifgura 2 - Arquitectura Von Neuman. bricar los transistores y diodos que componen un
circuito integrado. El alto precio del diseño de la
la MeMorIa máscara sólo hace aconsejable el empleo de los
microcontroladores, con este tipo de memoria,
La­me­mo­ria­de­pro­gra­ma­y­da­tos­es­tá­in­te­gra­- cuando se precisan cantidades superiores a va-
da­en­el­pro­pio­cir­cui­to­in­te­gra­do.­Una­par­te­de­be rios miles de unidades.
ser­no­vo­lá­til,­ti­po­ROM,­y­se­des­ti­na­a­con­te­ner • OTP: Es una memoria no volátil de sólo lec-
el­ pro­gra­ma­ de­ ins­truc­cio­nes­ que­ go­bier­na­ la tura "programable una sola vez" por el usuario.
apli­ca­ción.­Otra­par­te­de­me­mo­ria­se­rá­ti­po­RAM, OTP (One Time Programmable). Es el usuario
vo­lá­til,­y­se­des­ti­na­a­guar­dar­las­va­ria­bles­y­los quien puede escribir el programa en el chip me-
da­tos.­ diante un sencillo grabador controlado por un pro-
La­me­mo­ria­de­da­tos­(RAM)­en­es­tos­dis­po­si­- grama desde una PC. La versión OTP es reco-
ti­vos­es­de­po­ca­ca­pa­ci­dad­pues­só­lo­de­be­con­- mendable cuando es muy corto el ciclo de diseño
te­ner­las­va­ria­bles­y­los­cam­bios­de­in­for­ma­ción del producto, o bien, en la construcción de proto-
que­se­pro­duz­can­en­el­trans­cur­so­del­pro­gra­ma. tipos y series muy pequeñas.
Por­otra­par­te,­co­mo­só­lo­exis­te­un­pro­gra­ma­ac­- • EPROM: Erasable Programmable Read
ti­vo,­no­se­re­quie­re­guar­dar­una­co­pia­del­mis­mo OnIy Memory, pueden borrarse y grabarse mu-
en­la­RAM­pues­se­eje­cu­ta­di­rec­ta­men­te­des­de­la chas veces. La grabación se realiza, como en el
me­mo­ria­de­pro­gra­ma­(ROM). caso de los OTP, con un grabador gobernado
El­ usua­rio­ de­ PC­ es­tá­ ha­bi­tua­do­ a­ ma­ne­jar desde una PC. Si, posteriormente, se desea bo-
Me­gaby­tes­ de­ me­mo­ria,­ pe­ro­ los­ di­se­ña­do­res rrar el contenido, disponen de una ventana de
con­ mi­cro­con­tro­la­do­res­ tra­ba­jan­ con­ ca­pa­ci­da­- cristal en su superficie, por la que se somete a la
des­de­me­mo­ria­de­pro­gra­ma­de­512­by­tes,­1kB, EPROM a rayos ultravioleta durante varios minu-
2kB­y­has­ta­unos­128kB­y­de­RAM­de­32­by­tes, tos. Las cápsulas son de material cerámico y son
68­by­tes,­512­by­tes­(has­ta­unos­4kB). más caros que los microcontroladores con me-
Exis­ten­ dis­tin­tos­ ti­pos­ de­ me­mo­rias­ y­ en­ un moria OTP, que están hechos con material plásti-
mi­cro­con­tro­la­dor­ se­ pue­de­ en­con­trar­ cual­quie­ra co. Hoy día se utilizan poco, siendo sustituidas
de­ellas: por memorias EEPROM o Flash.
• EEPROM: Electrical Erasable Programma-
• ROM con máscara: Es una memoria no vo- ble Read OnIy Memory, son memorias de sólo
látil de sólo lectura, cuyo contenido se graba du- lectura, programables y borrables eléctricamente
rante la fabricación del chip. El término máscara EEPROM a través de la aplicación de una ten-
viene de la forma como se fabrican los circuitos sión de predisposición Vpp. Tanto la programa-
integrados. Estos se fabrican en obleas que con- ción como el borrado se realizan eléctricamente
tienen varias decenas de chips. Estas obleas se desde el propio grabador y bajo el control progra-
mado de una PC. Es
muy cómoda y rápida la
operación de grabado y
la de borrado. No dispo-
nen de ventana de cristal
en la superficie. Los mi-
crocontroladores dota-
dos de memoria EE-
PROM una vez instala-
Fifgura 3 - Arquitectura Hardvard. dos en el circuito, pue-

Microcontroladores 37
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­38

M AnuAles T écnicos :

den grabarse y borrarse cuantas veces se quiera dor­in­ter­no­con­los­pe­ri­fé­ri­cos­ex­te­rio­res­y,­se­gún


sin ser retirados de dicho circuito. Para ello se los­con­tro­la­do­res­de­pe­ri­fé­ri­cos­que­po­sea­ca­da
usan "grabadores en circuito" que confieren una mo­de­lo­ de­ mi­cro­con­tro­la­dor,­ se­ des­ti­nan­ a­ pro­-
gran flexibilidad y rapidez a la hora de realizar por­cio­nar­el­so­por­te­a­las­se­ña­les­de­en­tra­da,­sa­-
modificaciones en el programa de trabajo. El nú- li­da­y­con­trol.­
mero de veces que puede grabarse y borrarse To­dos­ los­ mi­cro­con­tro­la­do­res­ des­ti­nan­ al­gu­-
una memoria EEPROM es finito, por lo que no es nas­de­sus­pa­ti­llas­a­so­por­tar­lí­neas­de­E/S­de­ti­-
recomendable una reprogramación continua. Hoy po­ di­gi­tal,­ es­to­ es,­ to­do­ o­ na­da.­ Por­ lo­ ge­ne­ral,
día están siendo sustituidas por memorias de tipo es­tas­lí­neas­se­agru­pan­de­ocho­en­ocho­for­man­-
Flash. Se va extendiendo en los fabricantes la do­Puer­tos.­
tendencia de incluir una pequeña zona de memo- Las­ lí­neas­ di­gi­ta­les­ de­ los­ Puer­tos­ pue­den
ria EEPROM en los circuitos programables, para con­fi­gu­rar­se­ co­mo­ En­tra­da­ o­ co­mo­ Sa­li­da,­ car­-
guardar y modificar cómodamente una serie de gan­do­un­1­ó­un­0­en­el­bit­co­rres­pon­dien­te­de­un
parámetros que adecúan el dispositivo a las con- re­gis­tro­des­ti­na­do­a­su­con­fi­gu­ra­ción.
diciones del entorno.
Este tipo de memoria
es relativamente lenta. reloj (CloCk)
• FLASH: Se trata
de una memoria no vo- To­dos­los­mi­cro­con­tro­-
látil, de bajo consumo, la­do­res­ dis­po­nen­ de
que se puede escribir y un­ cir­cui­to­ os­ci­la­dor
borrar. Funciona como que­ ge­ne­ra­ una­ on­da
una ROM y una RAM cua­dra­da­ de­ al­ta­ fre­-
pero consume menos y cuen­cia,­que­con­fi­gu­ra
es más pequeña. A di- los­ im­pul­sos­ de­ re­loj
ferencia de la ROM, la usa­dos­ en­ la­ sin­cro­ni­-
memoria FLASH es za­ción­ de­ to­das­ las
programable en el cir- ope­ra­cio­nes­ del­ sis­te­-
cuito. Es más rápida y de mayor densidad que la ma.­El­cir­cui­to­de­re­loj­es­tá­in­cor­po­ra­do­en­el­mi­-
EEPROM. La alternativa FLASH está recomen- cro­con­tro­la­dor­ y­ só­lo­ se­ ne­ce­si­tan­ unos­ po­cos
dada frente a la EEPROM cuando se precisa com­po­nen­tes­ex­te­rio­res­pa­ra­se­lec­cio­nar­y­es­ta­-
gran cantidad de memoria de programa no volá- bi­li­zar­ la­ fre­cuen­cia­ de­ tra­ba­jo.­ Di­chos­ com­po­-
til. Es más veloz y tolera más ciclos de escritura- nen­tes­ sue­len­ con­sis­tir­ en­ un­ cris­tal­ de­ cuar­zo
/borrado. Son idóneas para la enseñanza y la In- jun­to­ a­ ele­men­tos­ pa­si­vos­ o­ bien­ un­ re­so­na­dor
geniería de diseño. ce­rá­mi­co­o­una­red­R-C.­Au­men­tar­la­fre­cuen­cia
Las memorias EEPROM y FLASH son muy de­re­loj­su­po­ne­dis­mi­nuir­el­tiem­po­en­que­se­eje­-
útiles al permitir que los microcontroladores que cu­tan­ las­ ins­truc­cio­nes,­ pe­ro­ lle­va­ apa­re­ja­do­ un
las incorporan puedan ser reprogramados "en cir- in­cre­men­to­ del­ con­su­mo­ de­ ener­gía­ y­ de­ ca­lor
cuito", es decir, sin tener que sacar el circuito in- ge­ne­ra­do.
tegrado de la tarjeta. Así, un dispositivo con este
tipo de memoria incorporado al control del motor
de un automóvil permite que pueda modificarse el reCursos esPeCIales Del MICroControlaDor
programa durante la rutina de mantenimiento pe-
riódico, compensando los desgastes y otros fac- Ca­da­ fa­bri­can­te­ po­see­ nu­me­ro­sas­ ver­sio­nes
tores tales como la compresión, la instalación de de­ una­ ar­qui­tec­tu­ra­ bá­si­ca­ de­ mi­cro­con­tro­la­dor.
nuevas piezas, etc. En­al­gu­nas­fa­mi­lias­se­am­plía­las­ca­pa­ci­da­des­de
las­me­mo­rias,­en­otras­se­in­cor­po­ran­nue­vos­re­-
cur­sos,­en­otras­se­re­du­ce­las­pres­ta­cio­nes­al­mí­-
Puertos De entraDa y salIDa ni­mo­pa­ra­apli­ca­cio­nes­muy­sim­ples,­etc.­El­tra­-
ba­jo­del­di­se­ña­dor­es­en­con­trar­el­mo­de­lo­mí­ni­-
La­prin­ci­pal­uti­li­dad­de­las­pa­tas­que­po­see­el mo­que­sa­tis­fa­ga­to­dos­los­re­que­ri­mien­tos­de­su
chip­que­con­tie­ne­un­mi­cro­con­tro­la­dor­es­so­por­- apli­ca­ción.­Así,­mi­ni­mi­za­rá­el­cos­to,­el­hard­wa­re­y
tar­las­lí­neas­de­E/S­que­co­mu­ni­can­al­com­pu­ta­- el­soft­wa­re.­Vea­mos­al­gu­nos­re­cur­sos:

38 Microcontroladores
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­39

G enerAlidAdes y c ArAcTerísTicAs de los M icroconTrolAdores A TMel

Temporizadores y Contadores pre­ci­so­aho­rrar­pi­las;­co­mo­en­el­ca­so­de­los­con­-


Los­tem­po­ri­za­do­res­se­em­plean­pa­ra­con­tro­- tro­les­re­mo­tos,­don­de­el­sis­te­ma­es­tá­a­la­es­pe­ra
lar­pe­río­dos­de­tiem­po­y­los­con­ta­do­res­pa­ra­lle­- de­que­el­usua­rio­opri­ma­una­te­cla.­Pa­ra­aho­rrar
var­la­cuen­ta­de­acon­te­ci­mien­tos­que­su­ce­den­en ener­gía,­los­mi­cro­con­tro­la­do­res­dis­po­nen­de­una
el­ ex­te­rior.­ Pa­ra­ la­ me­di­da­ de­ tiem­pos­ se­ car­ga ins­truc­ción­es­pe­cial­(SLEEP­en­al­gu­nos­mi­cros),
un­ re­gis­tro­ con­ el­ va­lor­ ade­cua­do­ y­ a­ con­ti­nua­- que­les­pa­sa­al­es­ta­do­de­re­po­so­o­de­ba­jo­con­-
ción­ di­cho­ va­lor­ se­ va­ in­cre­men­tan­do­ o­ de­cre­- su­mo,­en­el­cual­los­re­que­ri­mien­tos­de­po­ten­cia
men­tan­do­al­rit­mo­de­los­im­pul­sos­de­re­loj­o­al­- son­mí­ni­mos.­
gún­múl­ti­plo­has­ta­que­se­des­bor­de­y­lle­gue­a­0, En­di­cho­es­ta­do­se­de­tie­ne­el­re­loj­prin­ci­pal­y
mo­men­to­en­el­que­se­pro­du­ce­un­avi­so­a­tra­vés se­"con­ge­lan"­sus­cir­cui­tos­aso­cia­dos,­que­dan­do
del­cam­bio­de­in­for­ma­ción­en­una­va­ria­ble­o­re­- el­mi­cro­con­tro­la­dor­su­mi­do­en­un­pro­fun­do­"sue­-
gis­tro­ (re­gis­tro­ de­ có­di­go­ de­ con­di­cio­nes,­ por ño".­Al­ac­ti­var­se­una­in­te­rrup­ción­oca­sio­na­da­por
ejem­plo). el­ acon­te­ci­mien­to­ es­pe­ra­do,­ el­ mi­cro­con­tro­la­dor
Cuan­do­ se­ de­sean­ con­tar­ acon­te­ci­mien­tos se­des­pier­ta­y­rea­nu­da­su­tra­ba­jo.­Pa­ra­ha­cer­nos
que­se­ma­te­ria­li­zan­por­cam­bios­de­ni­vel­o­flan­- una­idea,­es­ta­fun­ción­es­pa­re­ci­da­a­la­op­ción­de
cos­en­al­gu­na­de­las­pa­ti­llas­del­mi­cro­con­tro­la­dor, Sus­pen­der­en­el­me­nú­pa­ra­apa­gar­el­equi­po­(en
el­ men­cio­na­do­ re­gis­tro­ se­ va­ in­cre­men­tan­do­ o aque­llas­ PCs­ con­ ad­mi­nis­tra­ción­ avan­za­da­ de
de­cre­men­tan­do­al­rit­mo­de­di­chos­im­pul­sos. ener­gía).

Perro Guardián o "Watchdog" Procesamiento de Señales Analógicas


Nor­mal­men­te,­cuan­do­un­or­de­na­dor­per­so­nal Los­ mi­cro­con­tro­la­do­res­ que­ in­cor­po­ran­ un
se­blo­quea­por­un­fa­llo Con­ver­sor­A/D­ (Ana­ló­-
del­ soft­wa­re­ u­ otra gi­co­/Di­gi­tal)­ pue­den
cau­sa,­ se­ pul­sa­ el­ bo­- pro­ce­sar­ se­ña­les­ ana­-
tón­del­re­set­y­se­rei­ni­- ló­gi­cas,­ tan­ abun­dan­-
cia­ el­ sis­te­ma.­ Un­ mi­- tes­en­las­apli­ca­cio­nes.
cro­con­tro­la­dor­ sue­le Sue­len­dis­po­ner­de­un
fun­cio­nar­sin­el­con­trol mul­ti­ple­xor­ que­ per­mi­-
de­ un­ su­per­vi­sor­ y­ de te­ apli­car­ a­ la­ en­tra­da
for­ma­ con­ti­nua­da­ las del­ CAD­ di­ver­sas­ se­-
24­ho­ras­del­día.­El­Pe­- ña­les­ ana­ló­gi­cas­ des­-
rro­ Guar­dián­ con­sis­te de­ las­ pa­ti­llas­ del­ cir­-
en­ un­ tem­po­ri­za­dor cui­to­in­te­gra­do.
que,­ cuan­do­ se­ des­- Por­otra­par­te­un­CDA
bor­da­ y­ pa­sa­ por­ 0, o­ con­ver­sor­ D/A­ trans­-
pro­vo­ca­un­re­set­au­to­- for­ma­ los­ da­tos­ di­gi­ta­-
má­ti­ca­men­te­en­el­sis­- les­ ob­te­ni­dos­ del­ pro­-
te­ma­y­ge­ne­ral­men­te­se­usa­pa­ra­“de­tec­tar”­fa­llas ce­sa­mien­to­ de­ la­ com­pu­ta­dor­ en­ su­ co­rres­pon­-
de­pro­gra­mas­que­oca­sio­na­rían­que­el­mi­cro­se dien­te­ se­ñal­ ana­ló­gi­ca­ que­ sa­ca­ al­ ex­te­rior­ por
que­de­ tra­ba­jan­do­ den­tro­ de­ un­ loop­ in­de­fi­ni­da­- una­de­las­pa­ti­llas­de­la­cáp­su­la.­Exis­ten­mu­chos
men­te.­ Se­ de­be­ di­se­ñar­ el­ pro­gra­ma­ de­ tra­ba­jo dis­po­si­ti­vos­ de­ sa­li­da­ que­ tra­ba­jan­ con­ se­ña­les
que­ con­tro­la­ la­ ta­rea­ de­ for­ma­ que­ re­fres­que­ o ana­ló­gi­cas.
ini­cia­li­ce­al­Pe­rro­Guar­dián­an­tes­de­que­pro­vo­- Al­gu­nos­ mo­de­los­ de­ mi­cro­con­tro­la­do­res­ dis­-
que­el­re­set.­Si­fa­lla­el­pro­gra­ma­o­se­blo­quea,­el po­nen­ in­ter­na­men­te­ de­ un­ Am­pli­fi­ca­dor­ Ope­ra­-
pro­gra­ma­ no­ re­fres­ca­rá­ al­ Pe­rro­ Guar­dián­ y,­ al cio­nal,­que­ac­túa­co­mo­com­pa­ra­dor­en­tre­una­se­-
com­ple­tar­ su­ tem­po­ri­za­ción,­ pro­vo­ca­rá­ el­ re­set ñal­fi­ja­de­re­fe­ren­cia­y­otra­va­ria­ble­que­se­apli­ca
del­sis­te­ma. por­una­de­las­pa­ti­llas­de­la­cáp­su­la.­La­sa­li­da­del
com­pa­ra­dor­pro­por­cio­na­un­ni­vel­ló­gi­co­1­ó­0­se­-
Sleep, Estado de Reposo ó de Bajo Consumo gún­una­se­ñal­sea­ma­yor­o­me­nor­que­la­otra.
En­ mu­chas­ si­tua­cio­nes­ de­ tra­ba­jo­ en­ que­ el Tam­bién­ hay­ mo­de­los­ de­ mi­cro­con­tro­la­do­res
mi­cro­con­tro­la­dor­de­be­es­pe­rar,­sin­ha­cer­na­da,­a con­un­mó­du­lo­de­ten­sión­de­re­fe­ren­cia­que­pro­-
que­ se­ pro­duz­ca­ al­gún­ acon­te­ci­mien­to­ ex­ter­no por­cio­na­di­ver­sas­ten­sio­nes­de­re­fe­ren­cia­que­se
que­ le­ pon­ga­ de­ nue­vo­ en­ fun­cio­na­mien­to,­ es pue­den­apli­car­en­los­com­pa­ra­do­res.

Microcontroladores 39
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­40

M AnuAles T écnicos :

Protección "Brownout" los MICroControlaDores aVr


Es­ta­pro­tec­ción­la­rea­li­za­un­cir­cui­to­que­re­se­-
tea­al­mi­cro­con­tro­la­dor­cuan­do­la­ten­sión­de­ali­- La­ em­pre­sa­At­mel­ ha­ de­sa­rro­lla­do­ una­ gran
men­ta­ción­(VDD)­es­in­fe­rior­a­un­mí­ni­mo­("brow­- can­ti­dad­de­mi­cro­con­tro­la­do­res­en­di­fe­ren­tes­ga­-
nout").­ mas,­de­for­ma­si­mi­lar­a­lo­que­ha­he­cho­la­em­-
Mien­tras­la­ten­sión­de­ali­men­ta­ción­sea­in­fe­- pre­sa­Mi­cro­chip­con­nues­tros­vie­jos­ami­gos:­“los
rior­al­de­brow­nout,­el­dis­po­si­ti­vo­se­man­tie­ne­re­- PICs”.
se­tea­do,­ co­men­zan­do­ a­ fun­cio­nar­ nor­mal­men­te Qui­zá,­ el­ más­ po­pu­lar­ es­ el­ AT­MEL
cuan­do­ so­bre­pa­sa­ di­cho­ va­lor.­ Es­to­ es­ muy­ útil AT90S1200,­ que­ es­ al­go­ así­ co­mo­ el­ 16F84­ de
pa­ra­evi­tar­da­tos­erró­neos­por­tran­si­cio­nes­y­rui­- Mi­cro­chip­(en­cuan­to­a­po­pu­la­ri­dad­se­re­fie­re).­A
dos­en­la­lí­nea­de­ali­men­ta­ción. con­ti­nua­ción­se­rea­li­za­al­gu­nos­da­tos­com­pa­ra­ti­-
vos­en­tre­el­AT90S1200­y­el­PIC16F84:
Modulador de Ancho de Pulsos o PWM
Son­ cir­cui­tos­ que­ pro­por­cio­nan­ en­ su­ sa­li­da Nº de instrucciones: AVR - 89, PIC - 35
im­pul­sos­de­an­chu­ra­va­ria­ble,­que­se­ofre­cen­al Registros RAM: AVR - 32, PIC - 68
ex­te­rior­a­tra­vés­de­las­pa­ti­llas­del­en­cap­su­la­do. Velocidad: AVR - 12MHz, PIC: 20MHz
Es­útil­pa­ra­sis­te­mas­de­con­trol­de­po­ten­cia,­co­- Memoria de Programa: AVR - 1kByte FLASH
mo­por­ejem­plo­mo­to­res. (512 líneas de programa, 16bits por inst.),
Puertos de Comunicación PIC:1kx14 (1024 líneas de programa de 14 bit ca-
Pa­ra­ que­ el­ mi­cro­ se­ pue­da­ co­mu­ni­car­ con da una).
otros­dis­po­si­ti­vos,­otros­bu­ses­de­mi­cro­pro­ce­sa­- Memoria EEPROM libre: AVR - 64Bytes, PIC
do­res,­bu­ses­de­sis­te­mas,­bu­ses­de­re­des­y­po­- - 64Bytes
der­ adap­tar­los­ con­ otros­ ele­men­tos­ ba­jo­ otras Salidas: AVR - 15, PIC - 13
nor­mas­y­pro­to­co­los­es­pre­ci­so­agre­gar­le­uni­da­- TIMER: AVR - 1 de 8bit (con prescaler desde
des­o­puer­tos­de­co­mu­ni­ca­ción.­ CK hasta CK/1024), PIC - 1 de 8 bit (con presca-
Al­gu­nos­ mo­de­los­ dis­po­nen­ de­ re­cur­sos­ que ler desde 1:2 hasta 1:256)
per­mi­ten­ di­rec­ta­men­te­ es­ta­ ta­rea,­ en­tre­ los­ que Comparador Analógico (NO ADC): AVR - 1
des­ta­can: PIC - NO POSEE
Watchdog: Ambos poseen
• UART, adaptador de comunicación serie Oscilador interno: Ambos poseen, en el AVR
asincrónica. sólo habilitable con programación paralela
• USART, adaptador de comunicación serie Niveles de pila (STACK): AVR - 3, PIC - 8
sincrónica y asincrónica. Interrupciones: AVR - reset, interna, externa,
• Puerto paralelo esclavo para poder conec- timer y por comparador analógico, PIC - 5 inte-
tarse con los buses de otros microprocesadores. rrupciones
• USB (Universal Serial Bus).
• Bus I2C, que es una interfaz serie de dos hi- Bá­si­ca­men­te,­los­AVR­tie­nen­3­re­gis­tros­pa­ra
los desarrollado por Philips. ca­da­puer­to­de­sa­li­da­a­sa­ber:
• Interface SPI, un puerto serie sincrónico.
• CAN (Controller Area Network), para permi- • DDRB - Sirve para decir qué patas son de
tir la adaptación con redes de conexionado multi- entrada o salida, “0” es entrada, “1” es salida (es
plexado desarrollado conjuntamente por Bosch e inverso a los PIC).
Intel para el cableado de dispositivos en automó- • PINB - Registro que sirve para entradas so-
viles. En EE.UU. se usa el J185O. lamente.
• TCP/IP, ya existen microcontroladores con • PORTB - Registro que sirve para salidas so-
un adaptador de comunicación para este protoco- lamente.
lo.
Tanto el I2C en televisores, como el Bus CAN Es­to­ sig­ni­fi­ca­ que­ pa­ra­ leer­ una­ en­tra­da­ se
en automóviles, fueron diseñados para simplificar de­be­usar­el­re­gis­tro­PINB­mien­tras­que­pa­ra­es­-
el circuito que supone un bus paralelo de 8 líneas cri­bir­da­tos­en­una­sa­li­da­se­de­be­em­plear­el­re­-
dentro de un televisor, así como para librar de la gis­tro­PORTB­(ob­via­men­te­si­ha­ce­mos­re­fe­ren­cia
carga que supone una cantidad ingente de cables a­las­pa­tas­del­puer­to­B).
en un vehículo. En­el­AT­MEL­AT90S1200­el­PortB­tie­ne­8­bits

40 Microcontroladores
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­41

G enerAlidAdes y c ArAcTerísTicAs de los M icroconTrolAdores A TMel

de­da­tos,­a­di­fe­ren­cia­del­PORTD­que­tie­ne­só­lo mable en el sistema, con duración: 10000 ciclos


7.­El­bit­7­del­PORTD­no­se­em­plea;­PORTD­tam­- de escritura/borrado.
bién­ cons­ta­ de­ 3­ re­gis­tros:­ DDRD,­ PORTD­ y -128/256/512 bytes de EEPROM progra-
PIND. mable en el sistema, con duración: 100000 ciclos
de escritura/borrado.
-128/256/512 bytes de SRAM interna.
los atMel De uso autoMotrIz -Cerrojo de programación para autopro-
gramar la Memoria Flash y Seguridad de Datos
Por algún micro debemos empezar… de EEPROM.
Cuan­do­co­men­za­mos­a­rea­li­zar­ar­tí­cu­los­con
mi­cro­con­tro­la­do­res­ PIC­ en­ Sa­ber­ Elec­tró­ni­ca, * Características Periféricas:
allá­por­1998,­ele­gi­mos­el­16F84­y­nues­tro­“mo­- -Contador/Temporizador de 8 bits con
de­lo­o­men­tor”­era­el­vie­jo­y­co­no­ci­do­Da­vid­Ta­te. Prescaler y dos canales PWM.
Con­ver­san­do­ con­ el­ Ing.­ Is­mael­ Cer­van­tes­ y­ en -Contador/Temporizador de Alta Veloci-
ba­se­ al­ tra­ba­jo­ que­ es­tá­ rea­li­zan­do­ el­ Ing.­ Luís dad de 8 bits con Prescaler separado:
Ro­ber­to­ Ro­drí­guez,­ lle­gué­ a­ la­ con­clu­sión­ que ·Dos Salidas PWM de Alta Frecuencia
de­bía­re­cu­rrir­a­la­fuen­te­y­así­de­ter­mi­né­que­lo con Registros de Comparación de Salida separa-
me­jor­es­rea­li­zar­la­des­crip­ción­de­va­rios­mo­de­- dos.
los,­ta­rea­que­ire­mos­de­sa­rro­llan­do­en­di­fe­ren­tes ·Generador Programable de Tiempo
edi­cio­nes­ de­ nues­tra­ que­ri­da­ re­vis­ta.­ En­ es­ta Muerto.
opor­tu­ni­dad­es­pe­ci­fi­ca­re­mos­al­gu­nas­ca­rac­te­rís­- -Interfaz Serie Universal con Detector de
ti­cas­y­des­cri­bi­re­mos­el­fun­cio­na­mien­to­de­la­se­- Condición de Comienzo.
rie­de­uso­au­to­mo­tor­AT­tiny­25/45/85.­­A­su­vez, -ADC de 10 bits:
pa­ra­con­cluir,­da­re­mos­los­cir­cui­tos­de­pro­gra­ma­- ·Cuatro Canales de Una Sola Salida.
do­res­ de­ al­gu­nos­ mo­de­los­ con­ li­cen­cia­ li­bre ·Dos Pares de Canales ADC Diferencia-
GNU. les con Ganancia Programable (1x, 20x).
-Temporizador Programable de Vigilan-
cia con Oscilador separado dentro del integrado.
la serIe attIny 25/45/85 -Comparador Analógico dentro del inte-
grado.
El­ AT­tiny­ 25/45/85­ es­ un­ mi­cro­con­tro­la­dor
CMOS­de­8­bits­de­ba­ja­po­ten­cia­ba­sa­do­en­la­ar­- * Características Especiales del Microcon-
qui­tec­tu­ra­ RISC­ me­jo­ra­da­ del­AVR.­ Me­dian­te­ la trolador:
eje­cu­ción­de­po­de­ro­sas­ins­truc­cio­nes­en­un­so­lo -Sistema de Depuración debugWIRE
ci­clo­de­re­loj,­el­AT­tiny­25/45/85­lo­gra­una­pro­duc­- dentro del integrado.
ción­que­al­can­za­1MIPS­por­MHz,­per­mi­tién­do­le -Programable dentro del Sistema a tra-
al­ di­se­ña­dor­ de­ sis­te­mas­ op­ti­mi­zar­ la­ re­la­ción vés del Puerto SPI.
con­su­mo­de­po­ten­cia-ve­lo­ci­dad­de­pro­ce­sa­mien­- -Fuentes de Interrupción Externas e In-
to. ternas.
Las­ prin­ci­pa­les­ ca­rac­te­rís­ti­cas­ del­ dis­po­si­ti­vo -Modos de Descanso en Baja Potencia,
son­las­si­guien­tes: de Reducción de Ruido de ADC, y de Reducción
de Potencia.
* Alto desempeño, baja potencia. -Circuito Mejorado de Reinicialización de
Encendido.
* Arquitectura RISC avanzada: -Circuito Programable de Detección de
-120 instrucciones poderosas, la mayoría Brown-out (estado en que la tensión es entre un
con ejecución de un solo ciclo de reloj. 8 y un 12% inferior al valor típico) .
-32x8 registros de trabajo de propósito -Oscilador Calibrado interno.
general.
-operación totalmente estática. * Entradas/Salidas y Encapsulados:
-Seis Líneas Programables de Entrada-
* Programa y Memoria de Datos no volátiles: /Salida.
-2/4/8 kbytes de Memoria Flash Progra- -SOIC de 8 patas.

Microcontroladores 41
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­42

M AnuAles T écnicos :

* Tensión de Funcionamiento: ni­do­de­los­re­gis­tros,­in­ha­bi­li­tan­do­to­das­las­fun­-


-2,7 a 5,5V cio­nes­ del­ in­te­gra­do­ has­ta­ la­ si­guien­te­ In­te­rrup­-
ción­o­Rei­ni­cia­li­za­ción.­El­mo­do­de­Re­duc­ción­de
* Rango de Velocidades: Rui­do­del­ADC­de­tie­ne­la­CPU­y­to­dos­los­mó­du­-
-ATtiny25/45/85: 0-8 MHz@2,7-5,5V, 0- los­de­E/S­ex­cep­to­el­ADC,­a­fin­de­mi­ni­mi­zar­el
16MHz @4,5-5,5V. rui­do­ de­ con­mu­ta­ción­ du­ran­te­ las­ con­ver­sio­nes
del­ADC.
* Rango de Temperaturas del Automóvil: El­dis­po­si­ti­vo­se­fa­bri­ca­usan­do­la­tec­no­lo­gía
-de -40ºC a +125ºC de­me­mo­ria­no-vo­lá­til­y­al­ta­den­si­dad­de­AT­MEL.
El­sis­te­ma­de­in­ter­faz­se­rial­que­ma­ne­ja­el­in­-
* Bajo Consumo de Potencia: te­gra­do­per­mi­te­que­la­Me­mo­ria­de­Pro­gra­ma­se
-Modo Activo: 1MHz, 2,7V : 500µA re­pro­gra­me­en­el­sis­te­ma­a­tra­vés­de­una­in­ter­faz
-Modo de Potencia Reducida: 2µA con 2,7V. se­rie­(SPI)­me­dian­te­un­pro­gra­ma­dor­con­ven­cio­-
nal­de­me­mo­rias­no-vo­lá­ti­les­o­me­dian­te­un­có­di­-
La­fi­gu­ra­4­mues­tra­la­dis­po­si­ción­de­ter­mi­na­- go­ de­ car­ga­ in­cor­po­ra­do­ en­ el­ in­te­gra­do­ que­ se
les­de­es­te­mi­cro­con­tro­la­dor. eje­cu­ta­en­el­nú­cleo­del­AVR.
El­ AVR­ tie­ne­ un­ so­por­te­ ­ ba­sa­do­ en­ he­rra­-
mien­tas­ de­ de­sa­rro­llo­ del­ sis­te­ma­ ­ y­ de­ pro­gra­-
DIagraMa en Bloques ma­ción­que­in­clu­yen:­Com­pi­la­do­res­C,­Ma­croen­-
sam­bla­do­res,­De­pu­ra­dor­/Si­mu­la­do­res­de­Pro­gra­-
En­la­fi­gu­ra­4­se­pue­de­ob­ser­var­el­dia­gra­ma ma,­ Emu­la­do­res­ en­ el­ Cir­cui­to­ y­ Con­jun­tos­ de
en­blo­ques­de­la­se­rie­AT­tiny­25/45/85­de­AT­mel. Com­po­nen­tes­de­Eva­lua­ción.
El­ nú­cleo­ del­AVR­ com­bi­na­ un­ con­jun­to­ ri­co
de­ ins­truc­cio­nes­ con­ 32­ re­gis­tros­ de­ tra­ba­jo­ de Es­te­ mi­cro­con­tro­la­dor­ ha­ si­do­ de­sa­rro­lla­do­ y
pro­pó­si­to­ge­ne­ral.­ fa­bri­ca­do­de­acuer­do­con­los­re­que­ri­mien­tos­más
Los­32­re­gis­tros­es­tán­di­rec­ta­men­te­co­nec­ta­- exi­gen­tes­ de­ la­ nor­ma­ in­ter­na­cio­nal­ ISO-TS-
dos­ a­ la­ Uni­dad­Arit­mé­ti­co-Ló­gi­ca­ (ALU),­ per­mi­- 16949­que­de­fi­ne­los­gra­dos­de­ca­li­dad­pa­ra­uso
tien­do­que­2­re­gis­tros­in­de­pen­dien­tes­se­ac­ce­dan au­to­mo­triz.
en­una­so­la­ins­truc­ción­eje­cu­ta­da­en­un­ci­clo­de
re­loj.­
La­ar­qui­tec­tu­ra­re­sul­tan­te­es­más­efi­cien­te­en DesCrIPCIón De los PInes:
lo­ que­ res­pec­ta­ a­ có­di­go,­ en­ tan­to­ que­ lo­gra­ un
ren­di­mien­to­has­ta­10­ve­ces­­su­pe­rior­que­los­mi­- Vcc: Ten­sión­de­ali­men­ta­ción.
cro­con­tro­la­do­res­con­ven­cio­na­les­CISC.
De­ las­ ca­rac­te­rís­ti­cas­ enun­cia­das­ an­te­rior­- gnD: Ma­sa,­tie­rra.
men­te,­so­bre­el­AT­tiny­25/45/85­po­de­mos­des­ta­-
car­las­si­guien­tes:­2/4/8kB­de­Me­mo­ria­Flash­Pro­- Puerto B (PB5… PB0): El­ Puer­to­ B­ es­ un
gra­ma­ble­ en­ el­ Sis­te­ma,­ 128/256/512­ by­tes­ de puer­to­de­E/S­bi­di­rec­cio­nal­de­6­bits­con­re­sis­to­-
EE­PROM,­128/256/256­by­tes­de­SRAM,­6­lí­neas res­ pull-up­ in­ter­nos­ (se­lec­cio­na­bles­ pa­ra­ ca­da
de­en­tra­da­/sa­li­da­de­pro­pó­si­to­ge­ne­ral,­32­re­gis­- bit).­Los­buf­fers­de­sa­li­da­del­puer­to­B­tie­nen­ca­-
tros­de­tra­ba­jo­de­pro­pó­si­to­ge­ne­ral,­un­Tem­po­ri­- rac­te­rís­ti­cas­si­mé­tri­cas­de­ex­ci­ta­ción­con­al­ta­ca­-
za­dor­/Con­ta­dor­de­8­bits­con­mo­dos­de­com­pa­ra­- pa­ci­dad,­tan­to­de­fuen­te­co­mo­de­su­mi­de­ro.­Co­-
ción,­un­Tem­po­ri­za­dor­/Con­ta­dor­de­al­ta­ve­lo­ci­dad mo­en­tra­das,­las­pa­tas­del­Puer­to­B­que­ex­ter­na­-
de­ 8­ bits,­ una­ In­ter­faz­ Se­rie­ Uni­ver­sal,­ In­te­rrup­- men­te­ se­ po­nen­ en­ 0­ en­tre­ga­rán­ co­rrien­te­ si­ se
cio­nes­In­ter­nas­y­Ex­ter­nas,­un­ADC­de­4­ca­na­les ac­ti­van­los­re­sis­to­res­pull-up.Las­pa­tas­del­Puer­-
de­10­bits,­un­Tem­po­ri­za­dor­Pro­gra­ma­ble­de­Vi­gi­- to­ B­ son­ del­ ti­po­ tri-sta­te­ cuan­do­ se­ ac­ti­va­ una
lan­cia­con­Os­ci­la­dor­In­ter­no­y­3­mo­dos­de­aho­rro con­di­ción­ de­ rei­ni­cia­li­za­ción,­ aun­que­ el­ re­loj­ no
de­po­ten­cia­se­lec­cio­na­bles­por­soft­wa­re.­ es­té­fun­cio­nan­do.
El­mo­do­de­Des­can­so­de­tie­ne­la­CPU­en­tan­-
to­ que­ per­mi­te­ que­ la­ SRAM,­ el­ Tem­po­ri­za­dor­- reset: En­tra­da­de­Rei­ni­cia­li­za­ción.­Un­0­en
/Con­ta­dor,­el­­ADC,­el­Com­pa­ra­dor­Ana­ló­gi­co,­y es­ta­pa­ta,­du­ran­te­más­de­un­pul­so­mí­ni­mo,­ge­-
el­ sis­te­ma­ de­ In­te­rrup­ción­ si­gan­ tra­ba­jan­do.­ El ne­ra­rá­una­rei­ni­cia­li­za­ción­aun­que­el­re­loj­no­es­-
mo­do­de­Re­duc­ción­de­Po­ten­cia­guar­da­el­con­te­- té­fun­cio­nan­do.

42 Microcontroladores
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­43

G enerAlidAdes y c ArAcTerísTicAs de los M icroconTrolAdores A TMel

Figura 4 - Diagrama en bloques del microcontrolador ATtiny 25/45/85 de ATmel.

Microcontroladores 43
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­44

M AnuAles T écnicos :

la CPu Del aVr Es­te­ con­cep­to­ per­mi­te­ que­ las­ ins­truc­cio­nes­ se


eje­cu­ten­ en­ ca­da­ ci­clo­ de­ re­loj.­ La­ me­mo­ria­ de
Tra­ta­re­mos­la­ar­qui­tec­tu­ra­del­nú­cleo­del­AVR pro­gra­ma­es­la­me­mo­ria­flash­re­pro­gra­ma­ble­en
en­ge­ne­ral.­La­fun­ción­prin­ci­pal­del­nú­cleo­de­la el­Sis­te­ma.
CPU­es­ase­gu­rar­una­co­rrec­ta­eje­cu­ción­del­pro­- El­Ar­chi­vo­de­Re­gis­tros­de­ac­ce­so­rá­pi­do­con­-
gra­ma.­La­CPU,­por­lo­tan­to,­de­be­ac­ce­der­a­me­- tie­ne­32­re­gis­tros­de­tra­ba­jo­de­pro­pó­si­to­ge­ne­ral
mo­rias,­ rea­li­zar­ cál­cu­los,­ con­tro­lar­ pe­ri­fé­ri­cos,­ y de­8­bits­con­un­tiem­po­de­ac­ce­so­de­un­so­lo­ci­-
ma­ne­jar­in­te­rrup­cio­nes. clo­de­re­loj.­Es­to­per­mi­te­la­ope­ra­ción­de­la­Uni­-
En­la­fi­gu­ra­5­se­pue­de­ob­ser­var­­la­ar­qui­tec­- dad­Arit­mé­ti­co­Ló­gi­ca­(ALU)­en­un­só­lo­ci­clo.­En
tu­ra­de­la­CPU.­A­fin­de­ma­xi­mi­zar­el­de­sem­pe­ño una­tí­pi­ca­ope­ra­ción­de­la­ALU,­se­to­man­2­ope­-
y­el­pa­ra­le­lis­mo,­el­AVR­usa­una­ar­qui­tec­tu­ra­Har­- ran­dos­ del­ Ar­chi­vo­ de­ Re­gis­tros,­ se­ eje­cu­ta­ la
vard,­ con­ me­mo­rias­ y­ bu­ses­ se­pa­ra­dos­ pa­ra­ el ope­ra­ción,­ y­ el­ re­sul­ta­do­ se­ al­ma­ce­na­ nue­va­-
pro­gra­ma­y­los­da­tos.­Las­ins­truc­cio­nes­­que­es­- men­te­en­el­Ar­chi­vo­de­Re­gis­tros­en­un­ci­clo­de
tán­en­la­me­mo­ria­de­Pro­gra­ma­se­eje­cu­tan­con re­loj.
un­so­lo­ni­vel­de­trans­mi­sión­por­con­duc­tos.­Mien­- Seis­de­los­32­re­gis­tros­se­pue­den­usar­co­mo
tras­que­se­eje­cu­ta­una­ins­truc­ción,­se­ex­trae­la 3­re­gis­tros­apun­ta­do­res­de­di­rec­cio­na­mien­to­in­di­-
si­guien­te­ins­truc­ción­de­la­me­mo­ria­de­Pro­gra­ma. rec­to­ de­ 16­ bits­ pa­ra­ el­ di­rec­cio­na­mien­to­ en­ el

Figura 5 - Arquitectura de la CPU del microcontrolador ATtiny 25/45/85 de ATmel.

44 Microcontroladores
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­45

G enerAlidAdes y c ArAcTerísTicAs de los M icroconTrolAdores A TMel

Es­pa­cio­de­Da­tos,­per­mi­tien­do­efi­cien­tes­cál­cu­los su­po­si­ción­en­la­ta­bla.­Cuan­to­más­ba­ja­es­la­di­-
de­di­rec­cio­nes.­Uno­de­es­tos­apun­ta­do­res­de­di­- rec­ción­del­Vec­tor­de­In­te­rrup­cio­nes,­más­al­ta­es
rec­cio­nes­ tam­bién­ se­ pue­de­ usar­ co­mo­ apun­ta­- la­prio­ri­dad.
dor­de­di­rec­cio­nes­pa­ra­ta­blas­de­con­sul­ta­en­la El­es­pa­cio­de­me­mo­ria­de­E/S­con­tie­ne­64­di­-
me­mo­ria­Flash­de­Pro­gra­ma.­Es­tos­re­gis­tros­fun­- rec­cio­nes­pa­ra­­fun­cio­nes­pe­ri­fé­ri­cas­de­la­CPU
cio­na­les­agre­ga­dos­son­los­re­gis­tros­X,­Y­y­Z­de co­mo­Re­gis­tros­de­Con­trol,­SPI,­y­otras­fun­cio­nes
16­bits. de­E/S.­La­me­mo­ria­de­E/S­se­pue­de­ac­ce­der­di­-
La­ALU­so­por­ta­ope­ra­cio­nes­arit­mé­ti­cas­y­ló­- rec­ta­men­te,­ o­ co­mo­ las­ po­si­cio­nes­ del­ Es­pa­cio
gi­cas­en­tre­re­gis­tros­o­en­tre­una­cons­tan­te­y­un de­Da­tos­que­es­tán­a­con­ti­nua­ción­de­las­del­Ar­-
re­gis­tro.­Las­ope­ra­cio­nes­de­un­so­lo­re­gis­tro­tam­- chi­vo­de­Re­gis­tros,­0x20-0x5F.
bién­se­pue­den­eje­cu­tar­en­la­ALU.­Lue­go­de­una
ope­ra­ción­arit­mé­ti­ca,­el­Re­gis­tro­de­Es­ta­do­se­ac­-
tua­li­za­pa­ra­re­fle­jar­la­in­for­ma­ción­so­bre­el­re­sul­- la unIDaD arItMétICo-lógICa (alu)
ta­do­de­la­ope­ra­ción.
El­Pro­gra­ma­tie­ne­ins­truc­cio­nes­de­sal­to­con­- La­ALU­ del­ ­AVR­ de­ al­to­ de­sem­pe­ño­ tra­ba­ja
di­cio­nal­e­in­con­di­cio­nal­e­ins­truc­cio­nes­de­lla­ma­- en­co­ne­xión­di­rec­ta­con­to­dos­los­32­re­gis­tros­de
da,­ca­pa­ces­de­di­rec­cio­nar­en­for­ma­di­rec­ta­to­do tra­ba­jo­ de­ pro­pó­si­to­ ge­ne­ral.­ Den­tro­ de­ un­ so­lo
el­es­pa­cio­de­di­rec­cio­nes.­La­ma­yo­ría­de­las­ins­- ci­clo­de­re­loj­se­eje­cu­tan­las­ope­ra­cio­nes­arit­mé­-
truc­cio­nes­del­AVR­tie­nen­un­so­lo­for­ma­to­de­pa­- ti­cas­en­tre­re­gis­tros­de­pro­pó­si­to­ge­ne­ral­o­en­tre
la­bra­ de­ 16­ bits.­ Ca­da­ di­rec­ción­ de­ me­mo­ria­ de un­re­gis­tro­y­uno­in­me­dia­to.­Las­ope­ra­cio­nes­de
Pro­gra­ma­con­tie­ne­una­ins­truc­ción­de­16­o­de­32 la­ ALU­ se­ di­vi­den­ en­ 3­ ca­te­go­rías­ prin­ci­pa­les:
bits. arit­mé­ti­cas,­ló­gi­cas,­y­fun­cio­nes­con­bits.­Al­gu­nas
Du­ran­te­ las­ in­te­rrup­cio­nes­ y­ las­ lla­ma­das­ a im­ple­men­ta­cio­nes­de­la­ar­qui­tec­tu­ra­tam­bién­pro­-
su­bru­ti­na,­el­Con­ta­dor­de­Pro­gra­ma­de­di­rec­ción veen­ un­ po­de­ro­so­ mul­ti­pli­ca­dor­ que­ so­por­ta­ la
de­re­tor­no­(PC)­se­al­ma­ce­na­en­la­Pi­la.­La­Pi­la­se mul­ti­pli­ca­ción­ con­ sig­no,­ ­ sin­ sig­no­ y­ el­ for­ma­to
ubi­ca­en­la­SRAM­de­da­tos­ge­ne­ra­les,­y­en­con­- frac­cio­nal.
se­cuen­cia­el­ta­ma­ño­de­la­Pi­la­só­lo­es­tá­li­mi­ta­do
por­el­ta­ma­ño­to­tal­de­la­SRAM­y­su­uso.­To­dos
los­pro­gra­mas­del­usua­rio­de­ben­ini­cia­li­zar­el­SP el regIstro De estaDo
en­la­ru­ti­na­de­rei­ni­cia­li­za­ción­(an­tes­que­se­eje­-
cu­ten­las­su­bru­ti­nas­o­las­in­te­rrup­cio­nes).­El­Pun­- El­ Re­gis­tro­ de­ Es­ta­do­ con­tie­ne­ in­for­ma­ción
te­ro­de­Pi­la­­(SP)­se­pue­de­leer­/es­cri­bir­en­el­es­- so­bre­el­re­sul­ta­do­de­la­ins­truc­ción­más­re­cien­te­-
pa­cio­de­E/S.­La­SRAM­de­da­tos­se­pue­de­ac­ce­- men­te­eje­cu­ta­da.­Es­ta­in­for­ma­ción­se­pue­de­usar
der­ fá­cil­men­te­ me­dian­te­ 5­ mo­dos­ di­fe­ren­tes­ de pa­ra­al­te­rar­el­flu­jo­del­pro­gra­ma­a­fin­de­eje­cu­tar
di­rec­cio­na­mien­to­ so­por­ta­dos­ en­ la­ ar­qui­tec­tu­ra ope­ra­cio­nes­ con­di­cio­na­les.­ No­te­mos­ que­ el­ Re­-
del­AVR. gis­tro­ de­ Es­ta­do­ se­ ac­tua­li­za­ des­pués­ de­ to­das
Los­ es­pa­cios­ de­ me­mo­ria­ en­ la­ ar­qui­tec­tu­ra las­ope­ra­cio­nes­de­la­ALU.­Es­to,­en­mu­chos­ca­-
del­AVR­son­to­dos­li­nea­les­y­re­gu­la­res. sos,­evi­ta­la­ne­ce­si­dad­de­usar­ins­truc­cio­nes­de
Un­ mó­du­lo­ de­ in­te­rrup­ción­ fle­xi­ble­ tie­ne­ sus com­pa­ra­ción­ es­pe­cia­les,­ re­sul­tan­do­ un­ có­di­go
re­gis­tros­de­con­trol­en­el­es­pa­cio­de­E/S­con­un más­com­pac­to­y­más­rá­pi­do.
bit­adi­cio­nal­de­Ha­bi­li­ta­ción­de­In­te­rrup­ción­Glo­- El­ Re­gis­tro­ de­ Es­ta­do­ no­ se­ al­ma­ce­na­ au­to­-
bal­en­el­Re­gis­tro­de­Es­ta­do.­To­das­las­in­te­rrup­- má­ti­ca­men­te­cuan­do­se­in­gre­sa­a­una­ru­ti­na­de
cio­nes­tie­nen­un­Vec­tor­de­In­te­rrup­ción­se­pa­ra­do in­te­rrup­ción­y­se­vuel­ve­a­al­ma­ce­nar­cuan­do­se
en­la­ta­bla­de­Vec­to­res­de­In­te­rrup­ción.­Las­in­te­- re­gre­sa­de­una­in­te­rrup­ción.­Es­to­se­ma­ne­ja­me­-
rrup­cio­nes­ tie­nen­ una­ prio­ri­dad­ de­ acuer­do­ con dian­te­el­soft­wa­re.

Figura 6 - El registro de estado del microcontrolador ATtiny 25/45/85 de ATmel.

Microcontroladores 45
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­46

M AnuAles T écnicos :

El­Re­gis­tro­de­Es­ta­do­del­AVR­(SREG)­po­see Bit 0 - C: Bandera de Acarreo.


una­es­truc­tu­ra­co­mo­la­mos­tra­da­en­la­fi­gu­ra­6. Es­te­ bit­ in­di­ca­ un­ aca­rreo­ en­ una­ ope­ra­ción
arit­mé­ti­ca­o­ló­gi­ca.
Bit 7-I: Habilitación Global de Interrupción.
Es­te­bit­de­be­po­ner­se­en­1­pa­ra­que­se­ha­bi­-
li­ten­ las­ in­te­rrup­cio­nes.­ El­ con­trol­ in­di­vi­dual­ de regIstros De ProPósIto general
ha­bi­li­ta­ción­ de­ in­te­rrup­ción­ se­ eje­cu­ta­ lue­go­ en
re­gis­tros­de­con­trol­se­pa­ra­dos.­Si­se­po­ne­en­0, El­ Ar­chi­vo­ de­ Re­gis­tros­ se­ op­ti­mi­za­ pa­ra­ el
no­se­ha­bi­li­ta­nin­gu­na­in­te­rrup­ción,­in­de­pen­dien­- con­jun­to­ de­ ins­truc­cio­nes­ RISC­ me­jo­ra­do­ del
te­men­te­de­có­mo­es­tén­las­po­si­cio­nes­in­di­vi­dua­- AVR.­A­fin­de­lo­grar­el­de­sem­pe­ño­y­la­fle­xi­bi­li­dad
les­de­ha­bi­li­ta­ción­de­in­te­rrup­ción.­El­bit­I­se­po­- re­que­ri­das,­el­Ar­chi­vo­de­Re­gis­tros­so­por­ta­los­si­-
ne­ en­ 0­ me­dian­te­ hard­wa­re­ des­pués­ que­ ha­ya guien­tes­es­que­mas­de­E/S:
ocu­rri­do­una­in­te­rrup­ción,­y­se­po­ne­en­1­me­dian­-
te­la­ins­truc­ción­RE­TI­pa­ra­per­mi­tir­in­te­rrup­cio­nes • Un operando de salida de 8 bits y una entra-
sub­si­guien­tes.­El­bit­I­tam­bién­se­pue­de­po­ner­en da de resultados de 8 bits.
1­y­en­0­me­dian­te­las­ins­truc­cio­nes­SEI­y­CLI. • Dos operandos de salida de 8 bits y una en-
trada de resultados de 8 bits.
Bit 6 -T: Almacenamiento de Copia de Bit. • Dos operandos de salida de 8 bits y una en-
Las­ ins­truc­cio­nes­ de­ co­pia­ de­ bit­ BLD­ (Bit trada de resultados de 16 bits.
LoaD)­y­BST­(Bit­Sto­re)­usan­el­bit­T­co­mo­fuen­- • Un operando de salida de 16 bits y una en-
te­o­des­ti­no­del­bit­ope­ra­do.­Un­bit­de­un­re­gis­tro trada de resultados de 16 bits.
del­ Ar­chi­vo­ de­ Re­gis­tros­ se­ pue­de­ co­piar­ en­ T
me­dian­te­la­ins­truc­ción­BST,­y­un­bit­en­T­se­pue­- La­fi­gu­ra­7­mues­tra­la­es­truc­tu­ra­de­los­32­re­-
de­co­piar­en­un­bit­­de­un­re­gis­tro­del­Ar­chi­vo­de gis­tros­ de­ tra­ba­jo­ de­ pro­pó­si­to­ ge­ne­ral­ de­ la
Re­gis­tros­me­dian­te­la­ins­truc­ción­BLD. CPU.
La­ ma­yo­ría­ de­ las­ ins­truc­cio­nes­ que­ ope­ran
Bit 5 - H: Bandera de Semi-acarreo. en­el­Ar­chi­vo­de­Re­gis­tros­tie­nen­ac­ce­so­di­rec­to
Es­te­ bit­ H­ in­di­ca­ un­ se­mi-
aca­rreo­ en­ al­gu­nas­ ope­ra­cio­-
nes­ arit­mé­ti­cas.­ El­ se­mi-aca­-
rreo­ es­ útil­ en­ la­ arit­mé­ti­ca
BCD.

Bit 4 - S: Bit de Signo.


El­ bit­ S­ siem­pre­ es­ una­ O
ex­clu­si­va­en­tre­la­Ban­de­ra­Ne­-
ga­ti­va­ N­ y­ la­ Ban­de­ra­ de­ Re­-
bal­se­V­con­com­ple­men­to­a­2­.

Bit 3 - V: Bandera de Re-


balse con complemento a 2.
Es­te­bit­so­por­ta­una­arit­mé­-
ti­ca­de­com­ple­men­to­a­2.

Bit 2 - N: Bandera Negativa.


Es­te­bit­in­di­ca­un­re­sul­ta­do
ne­ga­ti­vo­en­una­ope­ra­ción­arit­-
mé­ti­ca­o­ló­gi­ca.

Bit 1 - Z: Bandera Nula.


Es­te­bit­in­di­ca­un­re­sul­ta­do
nu­lo­en­una­ope­ra­ción­arit­mé­ti­-
ca­o­ló­gi­ca. Figura 7 - Los registros de trabajo del micro.

46 Microcontroladores
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­47

G enerAlidAdes y c ArAcTerísTicAs de los M icroconTrolAdores A TMel

Figura 8 - Registros de propósito general X, Y y Z.

a­ to­dos­ los­ re­gis­tros,­ y­ la­ ma­yo­ría­ de­ ellas­ son Puntero De PIla
ins­truc­cio­nes­de­un­so­lo­ci­clo.
Co­mo­se­ve­en­la­fi­gu­ra­7,­a­ca­da­re­gis­tro­se La­ Pila­ se­ usa­ principalmente­ para­ guardar
le­asig­na­una­di­rec­ción­de­me­mo­ria­de­Da­tos,­las datos­ temporarios,­ guardar­ variables­ locales­ y
cua­les­se­ma­pean­di­rec­ta­men­te­en­las­pri­me­ras guardar­ direcciones­ de­ regreso­ después­ de­ las
32­po­si­cio­nes­del­Es­pa­cio­de­Da­tos­del­usua­rio. interrupciones­y­de­las­llamadas­a­subrutinas.­El
Aun­que­no­se­im­ple­men­tan­fí­si­ca­men­te­co­mo­po­- Registro­ del­ Puntero­ de­ Pila­ siempre­ apunta­ al
si­cio­nes­ de­ me­mo­ria­ de­ SRAM,­ es­ta­ or­ga­ni­za­- tope­de­la­Pila.­La­Pila­se­implementa­creciendo
ción­ de­ me­mo­ria­ pro­por­cio­na­ una­ gran­ fle­xi­bi­li­- de­posiciones­de­memoria­más­altas­a­más­bajas.
dad­en­el­ac­ce­so­de­los­re­gis­tros,­ya­que­los­re­- Esto­implica­que­el­comando­PUSH­disminuye­el
gis­tros­ apun­ta­do­res­ X,­ Y­ y­ Z­ pue­den­ apun­tar­ a Puntero­de­Pila.­
cual­quier­re­gis­tro­del­ar­chi­vo. El­Puntero­de­Pila­apunta­al­área­de­Pila­de­la
SRAM­ de­ datos­ donde­ están­ ubicadas­ las­ pilas
de­Subrutina­e­Interrupción.­Este­espacio­de­Pila
los regIstros X, y y z en­la­SRAM­de­datos­debe­ser­definido­por­el­pro-
grama­antes­de­que­se­ejecute­cualquier­llamada
Los­re­gis­tros­R26..R31­tie­nen­al­gu­nas­fun­cio­- a­subrutina­o­se­habilite­cualquier­interrupción.­El
nes­ adi­cio­na­les­ a­ su­ uso­ de­ pro­pó­si­to­ ge­ne­ral. Puntero­ de­ Pila­ debe­ ponerse­ en­ un­ punto­ por
Es­tos­son­pun­te­ros­de­di­rec­cio­nes­de­16­bits­pa­- encima­de­0x60;­se­decrementa­en­1­cuando­se
ra­ el­ di­rec­cio­na­mien­to­ in­di­rec­to­ del­ es­pa­cio­ de pone­un­dato­en­la­Pila­con­la­instrucción­PUSH,
da­tos.­Los­3­re­gis­tros­X,­Y­y­Z­de­di­rec­cio­na­mien­- y­ se­ decrementa­ en­ 2­ cuando­ se­ pone­ la­ direc-
to­in­di­rec­to­se­de­fi­nen­co­mo­se­des­cri­be­en­la­fi­- ción­de­regreso­en­la­Pila­con­llamada­a­subruti-
gu­ra­8.­En­los­dis­tin­tos­mo­dos­de­di­rec­cio­na­mien­- na­o­interrupción.­Se­incrementa­en­1­cuando­se
to­es­tos­re­gis­tros­de­di­rec­cio­nes­tie­nen­fun­cio­nes extrae­un­dato­de­la­Pila­con­la­instrucción­POP,
ta­les­co­mo­des­pla­za­mien­to­fi­jo,­in­cre­men­to­au­to­- y­se­incrementa­en­2­cuando­se­extrae­un­dato­de
má­ti­co­y­de­cre­men­to­au­to­má­ti­co. la­Pila­con­regreso­de­subrutina­RET­o­regreso­de

Figura 9 - Registro puntero de pila de un ATMEL.

Microcontroladores 47
­Manual­-­Atmel:*Cap­4­-­­telefonia­­23/02/14­­13:19­­Page­48

M AnuAles T écnicos :

interrupción­RETI.­­El­Puntero­de­Pila­del­AVR­se concepto­de­Archivo­de­Registros­de­acceso­rápi-
implementa­como­2­registros­de­8­bits­en­el­espa- do.­ Este­ es­ el­ concepto­ básico­ de­ arquitectura
cio­de­E/S.­El­número­de­bits­que­se­usan­en­la “pipeline”­ para­ obtener­ hasta­ 1­ MIPS­ por­ MHz
realidad­depende­de­la­implementación.­Notemos con­ los­ correspondientes­ resultados­ únicos­ de
que­el­espacio­de­datos­en­algunas­implementa- funciones­por­costo,­funciones­por­relojes,­y­fun-
ciones­de­la­arquitectura­del­AVR­es­tan­pequeño ciones­ por­ unidad­ de­ potencia.­ ­ La­ figura­ 11
que­ sólo­ se­ necesita­ SPL.­ En­ este­ caso,­ el muestra­el­concepto­de­temporización­interna­del
Registro­ SPH­ no­ estará­ presente.­ La­ figura­ 9 Archivo­de­Registros.­En­un­solo­ciclo­de­reloj­se
muestra­cómo­está­conformado­el­registro­“pun- ejecuta­ una­ operación­ de­ la­ ALU­ que­ usa­ 2
tero­de­pila” operandos­de­registros,­y­el­resultado­se­almace-
na­de­vuelta­en­el­registro­de­destino.­

tIeMPo De ejeCuCIón De las InstruCCIones De­esta­manera­concluímos­con­este­manual,


en­el­que­detallamos­las­principales­característi-
Esta­ sección­ describe­ los­ conceptos­ gen- cas­ de­ los­ microcontroladores­ AVR­ de­ ATMEL,
erales­de­tiempo­de­acceso­para­la­ejecución­de describiendo­ la­ función­ de­ sus­ bloques­ princi-
las­instrucciones.­La­CPU­del­AVR­está­activada pales.­Aclaramos­que­hace­unos­años,­en­Saber
mediante­ el­ reloj­ clock­ generado­ directamente Electrónica­ (desde­ el­ número­ 244­ hasta­ el­ 262)
desde­ la­ fuente­ de­ reloj­ seleccionada­ para­ el publicamos­un­pequeño­curso­sobre­estos­micro-
chip.­No­se­usa­ninguna­división­interna­del­reloj.­ controladores­y­que­Ud.­puede­descargar­desde
La­figura­10­muestra­la­búsqueda­de­instruc- nuestra­ web:­ www.webelectronica.com.ar,
ciones­y­la­ejecución­de­las­mismas­en­paralelo haciendo­clic­en­el­ícono­password­e­ingresando
permitidas­ por­ la­ arquitectura­ de­ Harvard­ y­ el la­clave:­CursoatMel.­J

Figura 10 - Búsqueda y ejecución de instrucciones en paralelo

Figura 11 - Temporización interna del archivo de registros.

48 Microcontroladores

También podría gustarte