Arquitectura RISC 8-bit avanzado AVR de Atmel, de alto desempeño, bajo consumo y optimizado para
compiladores C. Así mismo usa una arquitectura interna, Harvard, usando memorias y buses separados para
programa y datos. La CPU usa un pipeline (pipelining) de un nivel, es decir que mientras está ejecutando una
instrucción, la próxima instrucción está siendo buscada (pre-fetched) desde la memoria de programa. Gracias
a esta técnica de pipeline y buses separados, el microcontrolador puede ejecutar las instrucciones en un solo
ciclo de reloj.
Características principales
Tiene 131 Instrucciones potentes, la mayoría ejecutada en un solo ciclo de reloj,
un banco de 32x8 registros de propósito general, hasta 20 MIPS (Millones de
instrucciones por segundo) a 20 MHz, un multiplicador hardware on-chip de 2
ciclos, memoria de programa FLASH de 32 KBytes, programable dentro del
sistema, memoria SRAM interna de 2 KBytes, memoria EEPROM de 1 KByte, 2
Timers/Contadores de 8 bits, 1 Timer/Contador de 16 bits, 6 canales PWM, 6
canales analógicos para el ADC, 1 puerto serial USART, 1 interfaz serial SPI, 1
interfaz serial 2-Wire, compatible con I2C, 1 Timer watchdog, 1 un comparador
analógico on-chip, interrupciones, varios modos de bajo consumo.
Configuración.
Configuración de los timers del microcontrolador ATmega328p El
microcontrolador ATmega328p dispone de tres timers. Mientras
el timer1 es de 16 bits, el timer0 y el timer2 son de 8 bits. Dichos
timers son la base por la que el dispositivo de este proyecto
puede realizar tareas de forma síncrona con precisiones de
centenas de microsegundos y de forma simultánea. En este
proyecto, los timers permiten realizar de forma “simultanea” el
parpadeo del LED rgb, el muestreo de la señal del ECG y la
medición del estado de la batería. Así mismo un timer se trata de
un contador cuya entrada está conectada al reloj del
microcontrolador. Por este motivo, el timer aumenta su valor de
forma regular y, de este modo, permite medir el tiempo con una
gran precisión y ejecutar tareas en espacios de tiempos
regulares. Dado que el principio de funcionamiento es muy
simple, se explicará en este apartado la configuración para el
timer1, el timer de 16 bits del microcontrolador, siendo de forma
muy semejante la
Elementos y puertos de entrada y salida.
Posee tres puertos (B, C y D), dispone de 3 x 8 = 24 líneas de entrada/salidas
disponibles. VCC: Voltaje Digital, GND: Tierra, PORTB: Es un puerto bidireccional
de 8 bits, con resistencias pull-up internas, seleccionables para cada pin. Las
funciones alternas para los pinos del PORTB son: XTAL, SPI, Comparadores de
salida (Output Comapare) para los Timers. PORTC: Es un puerto bidireccional de
7 bits, con resistores pull-up internas, seleccionables para cada pin. Las
funciones alternas para los pinos del PORTC son: Entradas analógicas (ADC) ,
I^2C. PORTD: Es un puerto bidireccional de 8 bits, con resistencias pull-up
internas, seleccionables para cada pin. Las funciones alternas para los pinos del
PORTD son: Puerto serial USART, Interrupciones externas INT0 y INT1,
comparadores de salida para los Timers. AVcc: Es el pin de voltaje para el
conversor análogo para digital (ADC). AREF: Pin de referencia análoga para el
ADC.
Lenguajes de programación utilizados.
Maneja un lenguaje de programación ensamblador
o C, el cual es un lenguaje de tipo; tipado estático,
esto quiere decir que nosotros debemos indicar el
tipo de dato que guarda una variable.