• No se han encontrado resultados

C: Ban de ra de Aca rreo.

In document SEM299Atmel Arduino (página 48-51)

M iCroControladores a tMel

Bit 0 C: Ban de ra de Aca rreo.

Es­te­ bit­ in­di­ca­ un­ aca­rreo­ en­ una­ ope­ra­ción arit­mé­ti­ca­o­ló­gi­ca.

re gIs tros DePro Pó sI toge ne ral

El­ Ar­chi­vo­ de­ Re­gis­tros­ se­ op­ti­mi­za­ pa­ra­ el con­jun­to­ de­ ins­truc­cio­nes­ RISC­ me­jo­ra­do­ del AVR.­A­fin­de­lo­grar­el­de­sem­pe­ño­y­la­fle­xi­bi­li­dad re­que­ri­das,­el­Ar­chi­vo­de­Re­gis­tros­so­por­ta­los­si­- guien­tes­es­que­mas­de­E/S:

• Un ope ran do de sa li da de 8 bits y una en tra -

da de re sul ta dos de 8 bits.

• Dos ope ran dos de sa li da de 8 bits y una en -

tra da de re sul ta dos de 8 bits.

• Dos ope ran dos de sa li da de 8 bits y una en -

tra da de re sul ta dos de 16 bits.

• Un ope ran do de sa li da de 16 bits y una en -

tra da de re sul ta dos de 16 bits.

La­fi­gu­ra­7­mues­tra­la­es­truc­tu­ra­de­los­32­re­- gis­tros­ de­ tra­ba­jo­ de­ pro­pó­si­to­ ge­ne­ral­ de­ la CPU.

La­ ma­yo­ría­ de­ las­ ins­truc­cio­nes­ que­ ope­ran en­el­Ar­chi­vo­de­Re­gis­tros­tie­nen­ac­ce­so­di­rec­to

G

enerAlidAdes y

c

ArAcTerísTicAs de los

M

icroconTrolAdores

A

TMel

a­ to­dos­ los­ re­gis­tros,­ y­ la­ ma­yo­ría­ de­ ellas­ son 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 le­asig­na­una­di­rec­ción­de­me­mo­ria­de­Da­tos,­las cua­les­se­ma­pean­di­rec­ta­men­te­en­las­pri­me­ras 32­po­si­cio­nes­del­Es­pa­cio­de­Da­tos­del­usua­rio. Aun­que­no­se­im­ple­men­tan­fí­si­ca­men­te­co­mo­po­- si­cio­nes­ de­ me­mo­ria­ de­ SRAM,­ es­ta­ or­ga­ni­za­- ción­ de­ me­mo­ria­ pro­por­cio­na­ una­ gran­ fle­xi­bi­li­- dad­en­el­ac­ce­so­de­los­re­gis­tros,­ya­que­los­re­- gis­tros­ apun­ta­do­res­ X,­ Y­ y­ Z­ pue­den­ apun­tar­ a cual­quier­re­gis­tro­del­ar­chi­vo.

losre gIs trosX, y yz

Los­re­gis­tros­R26..R31­tie­nen­al­gu­nas­fun­cio­- nes­ adi­cio­na­les­ a­ su­ uso­ de­ pro­pó­si­to­ ge­ne­ral. Es­tos­son­pun­te­ros­de­di­rec­cio­nes­de­16­bits­pa­- ra­ el­ di­rec­cio­na­mien­to­ in­di­rec­to­ del­ es­pa­cio­ de da­tos.­Los­3­re­gis­tros­X,­Y­y­Z­de­di­rec­cio­na­mien­- to­in­di­rec­to­se­de­fi­nen­co­mo­se­des­cri­be­en­la­fi­- gu­ra­8.­En­los­dis­tin­tos­mo­dos­de­di­rec­cio­na­mien­- to­es­tos­re­gis­tros­de­di­rec­cio­nes­tie­nen­fun­cio­nes ta­les­co­mo­des­pla­za­mien­to­fi­jo,­in­cre­men­to­au­to­- má­ti­co­y­de­cre­men­to­au­to­má­ti­co. Puntero DePIla

La­ Pila­ se­ usa­ principalmente­ para­ guardar datos­ temporarios,­ guardar­ variables­ locales­ y guardar­ direcciones­ de­ regreso­ después­ de­ las interrupciones­y­de­las­llamadas­a­subrutinas.­El Registro­ del­ Puntero­ de­ Pila­ siempre­ apunta­ al tope­de­la­Pila.­La­Pila­se­implementa­creciendo de­posiciones­de­memoria­más­altas­a­más­bajas. Esto­implica­que­el­comando­PUSH­disminuye­el Puntero­de­Pila.­

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 en­la­SRAM­de­datos­debe­ser­definido­por­el­pro- grama­antes­de­que­se­ejecute­cualquier­llamada a­subrutina­o­se­habilite­cualquier­interrupción.­El Puntero­ de­ Pila­ debe­ ponerse­ en­ un­ punto­ por encima­de­0x60;­se­decrementa­en­1­cuando­se pone­un­dato­en­la­Pila­con­la­instrucción­PUSH, y­ se­ decrementa­ en­ 2­ cuando­ se­ pone­ la­ direc- ción­de­regreso­en­la­Pila­con­llamada­a­subruti- na­o­interrupción.­Se­incrementa­en­1­cuando­se extrae­un­dato­de­la­Pila­con­la­instrucción­POP, y­se­incrementa­en­2­cuando­se­extrae­un­dato­de la­Pila­con­regreso­de­subrutina­RET­o­regreso­de Figura 8 - Registros de propósito general X, Y y Z.

M

AnuAles

T

écnicos

:

interrupción­RETI.­­El­Puntero­de­Pila­del­AVR­se implementa­como­2­registros­de­8­bits­en­el­espa- cio­de­E/S.­El­número­de­bits­que­se­usan­en­la realidad­depende­de­la­implementación.­Notemos que­el­espacio­de­datos­en­algunas­implementa- ciones­de­la­arquitectura­del­AVR­es­tan­pequeño que­ sólo­ se­ necesita­ SPL.­ En­ este­ caso,­ el Registro­ SPH­ no­ estará­ presente.­ La­ figura­ 9 muestra­cómo­está­conformado­el­registro­“pun- tero­de­pila”

tIeMPo DeejeCuCIón De lasInstruCCIones

Esta­ sección­ describe­ los­ conceptos­ gen- erales­de­tiempo­de­acceso­para­la­ejecución­de las­instrucciones.­La­CPU­del­AVR­está­activada mediante­ el­ reloj­ clock­ generado­ directamente desde­ la­ fuente­ de­ reloj­ seleccionada­ para­ el chip.­No­se­usa­ninguna­división­interna­del­reloj.­

La­figura­10­muestra­la­búsqueda­de­instruc- ciones­y­la­ejecución­de­las­mismas­en­paralelo permitidas­ por­ la­ arquitectura­ de­ Harvard­ y­ el

concepto­de­Archivo­de­Registros­de­acceso­rápi- do.­ Este­ es­ el­ concepto­ básico­ de­ arquitectura “pipeline”­ para­ obtener­ hasta­ 1­ MIPS­ por­ MHz con­ los­ correspondientes­ resultados­ únicos­ de funciones­por­costo,­funciones­por­relojes,­y­fun- ciones­ por­ unidad­ de­ potencia.­ ­ La­ figura­ 11 muestra­el­concepto­de­temporización­interna­del Archivo­de­Registros.­En­un­solo­ciclo­de­reloj­se ejecuta­ una­ operación­ de­ la­ ALU­ que­ usa­ 2 operandos­de­registros,­y­el­resultado­se­almace- na­de­vuelta­en­el­registro­de­destino.­

De­esta­manera­concluímos­con­este­manual, en­el­que­detallamos­las­principales­característi- cas­ de­ los­ microcontroladores­ AVR­ de­ ATMEL, describiendo­ la­ función­ de­ sus­ bloques­ princi- pales.­Aclaramos­que­hace­unos­años,­en­Saber Electrónica­ (desde­ el­ número­ 244­ hasta­ el­ 262) publicamos­un­pequeño­curso­sobre­estos­micro- controladores­y­que­Ud.­puede­descargar­desde nuestra­ web:­ www.webelectronica.com.ar, haciendo­clic­en­el­ícono­password­e­ingresando la­clave:­CursoatMel.­J

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

normalmente asociamos al vúmetro como un instrumento decorativo que da una indica- ción de la potencia que está generando un amplificador; sin embargo el uso de este aparato puede extenderse a un sin fin de aplicaciones, en las que se requiere tener una medida de la potencia puesta en juego en

un circuito. en este artículo proponemos el armado de algunos circuitos sencillos, tanto con compuertas digitales como con circuitos integrados de usos específicos.

Por:Luis Horacio rodríguez - e-mail: [email protected]

IntroduccIón

El vúmetro fue desarrollado originalmente en 1939 por Bell Labs para 
la medición y la normaliza- ción de los niveles en las líneas telefónicas.
Actualmente suelen incluirse en equipos de audio para mostrar un 
nivel de señal en unidades de volumen.

Básicamente un vúmetro es un medidor de volu- men. Hoy en día, existen vúmetros construidos de muchas formas diferentes, podemos encontrarlos analógicos, otros a base de LEDs normalmente ver- des, amarillos y rojos e, incluso, representando las unidades de volumen en forma de barra en una pan- talla LCD.

VúmetrocmoS

Los VU de LED se pueden elaborar siguiendo diferentes técnicas. Por ejemplo, el uso de transisto- res individuales para la excitación de los LEDs puede aumentar bastante la complejidad del montaje y su

tamaño y por ello se suele preferir el empleo de cir- cuitos integrados.

Por medio de un circuito integrado CMOS, propo- nemos el armado de un sensible VUmetro del tipo “barra móvil” para 4 LEDs, fácilmente expansible a 8. Con el proyecto indicado tendremos una escala de LED que se puede acoplar prácticamente a cualquier aparato de sonido, tiene pocos componentes, un costo bastante accesible y puede ser armado hasta por principiantes.

Se trata de un proyecto muy interesante y de excelente desempeño que utiliza un integrado digital común de costo bastante bajo (mucho menos que los dedicados especiales para “bargraph” o barras de LEDs) y que exige mucho menos componentes exter- nos que una versión transistorizada.

El proyecto básico se hace para la excitación de 4 LEDs a partir de un canal de cualquier sistema de audio, exigiendo alrededor de 200mW para su exci- tación, pero su ampliación a 8 LEDs es simple y se pueden aplicar potencias mayores, hasta más de 100 watt al circuito con la simple utilización de un resistor (Rx) de valor apropiado.

M

Monta jeonta je

Vúmetros

In document SEM299Atmel Arduino (página 48-51)