0% encontró este documento útil (0 votos)
21 vistas107 páginas

Arquitectura de Microcontroladores: Tecnológico Nacional de México

Cargado por

edgar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas107 páginas

Arquitectura de Microcontroladores: Tecnológico Nacional de México

Cargado por

edgar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Arquitectura de microcontroladores

Tecnológico Nacional de México


Instituto Tecnológico de Toluca
Ingeniería Mecatrónica

Microcontroladores
UNIDAD 1

José Manuel García Hernández


Febrero de 2019

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontrolador

“Circuito integrado o chip que incluye en su interior las tres unidades


funcionales de una computadora: CPU, memoria y unidades de E/S, es decir, se
trata de una computadora en un solo circuito integrado, aunque de limitadas
prestaciones y que normalmente se dedica a resolver una tarea específica”.

“Un microcontrolador es un microprocesador optimizado utilizado para


controlar equipos electrónicos”.

El principal uso de un microcontrolador es controlar la operación de


dispositivos basándose en un programa almacenado en su memoria de
programa interna, dicho programa no cambia durante el tiempo de vida útil
del dispositivo. Típicamente el microcontrolador realiza sus funciones
instalado al interior de los dispositivos que controla, por esto algunas veces
recibe el nombre de controlador embebido (embedded controller)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019 2


Microcontrolador
CPU Sistema Cerrado
Periféricos

3
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
Que puede incluir un Microcontrolador?
 Unidad Central
procesamiento (CPU)
 Random Access
Memory) (RAM)
 Read Only
Memory(ROM)
 Puertos de
entrada/salida
 Temporizadores y
contadores
 Controlador de
interrupciones
 Convertidor Analógico
a Digital (ADC)
 Convertidor Digital a
analógico (DAC)
 Puerto Serial
 Watch Dog Timer
 Circuito Oscilador
 Brown-out detection
(BOD)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Diferencia entre Microcontrolador y Microprocesador

uP uC

 Capacidad de procesamiento
 Ámbito de aplicación
 Capacidad de adecuación a las necesidades
específicas del usuario (abierto vs cerrado)

https://i0.wp.com/www.vlsifacts.com/wp-content/uploads/2015/08/Microprocessor-Vs-Microcontroller.png

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Aplicaciones de los uC

https://www.vlsifacts.com/different-applications-microcontroller/

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Aplicaciones de los uC

https://www.elprocus.com/different-microcontrollers-used-in-automobiles/
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
Aplicaciones de los uC

https://spaziodecora.mx/wp-content/uploads/2017/05/domotica_3.jpg

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Aplicaciones de los uC

En la actualidad la aplicación de los microcontroladores ha


evolucionado a la utilización de diversas tarjetas comerciales y su
respectiva programación en lenguajes de alto nivel, así como la
utilización de “middleware”.

 Hardware
 Software
 Firmware
 Middleware

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Aplicaciones de los uC
Middleware o lógica de intercambio de información entre aplicaciones
("interlogical") es un software que asiste a una aplicación para
interactuar o comunicarse con otras aplicaciones, o paquetes de
programas, redes, hardware y/o sistemas operativos. Éste simplifica
el trabajo de los programadores en la compleja tarea de generar las
conexiones y sincronizaciones que son necesarias en los sistemas
distribuidos

Microcontrolador
Sensores

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Aplicaciones de los uC

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Arquitecturas computacionales utilizadas en los uC

Sistema
Abierto

Arquitectura típica de un sistema digital basado en microprocesador

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Arquitecturas computacionales utilizadas en los uC

Sistema
Cerrado

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Arquitecturas computacionales utilizadas
en los uC
Arquitectura Von Neumann

Arquitectura Harvard

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Arquitectura de cómputo Clásica (Von Neumann)
La arquitectura clásica de un sistema de cómputo es la que fue definida
en 1945 por uno de los mejores matemáticos de la historia. John Von
Neumann, que propuso que la CPU estuviera conectada a una única
memoria dónde se guardaran conjuntamente instrucciones (programas)
y datos (con los cuales operan estos programas). Además existía un
módulo de entradas y salidas para permitir la comunicación de la
máquina con los periféricos externos que maneja el usuario.

John von Neumann (1903 - 1957)


Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
Arquitectura de cómputo Clásica (Von Neumann)

Debido a que en este tipo de arquitectura la CPU está conectada a una


memoria única que contiene las instrucciones del programa y los datos, el
tamaño de la palabra de la memoria de instrucciones está determinado por el
ancho del bus de datos de la CPU. Por lo anterior, un microprocesador de 8
bits, con un bus de 8 bits que lo conecta con la memoria, cuando deba acceder
a una instrucción o dato de más de un byte de longitud, deberá realizar más de
un acceso a la memoria.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Arquitectura de cómputo Clásica (Von Neumann)
El bus único de este tipo de arquitectura limita la velocidad de operación del
microprocesador, ya que no se puede buscar una nueva instrucción, antes de que finalicen
las transferencias de datos que pudieran resultar de la instrucción anterior. Las dos
principales limitaciones de esta arquitectura tradicional son :

a) Que la longitud de las instrucciones está limitada por el bus de datos de la memoria, por
lo tanto el microprocesador debe hacer varios accesos a memoria para buscar
instrucciones complejas.

b) Que la velocidad de operación (o ancho de banda de operación) está limitada por el


efecto de cuello de botella que significa un bus único para datos e instrucciones que impide
superponer ambos tiempos de acceso.

Mover el dato 6A (hex) al registro A

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Arquitectura de cómputo Clásica (Von Neumann)

Ejemplo de arquitectura
Von Neumann
Microcontrolador
8051

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Arquitectura de cómputo Harvard
La arquitectura Harvard, consiste en un esquema en el que la CPU está
conectada a dos memorias por intermedio de dos buses separados. Una de
las memorias contiene solamente las instrucciones del programa, y es
llamada Memoria de Programa. La otra memoria solo almacena los datos y es
llamada Memoria de Datos. Ambos buses son totalmente independientes y
pueden ser de distintos anchos.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Arquitectura de cómputo Harvard
Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced
Instrucción Set Computer), el set de instrucciones y el bus de la memoria de
programa pueden diseñarse de manera tal que todas las instrucciones tengan
una sola posición de memoria de programa de longitud. Además, como los
buses son independientes, la CPU puede estar accediendo a los datos para
completar la ejecución de una instrucción, y al mismo tiempo estar leyendo la
próxima instrucción a ejecutar.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Arquitectura de cómputo Harvard
Se puede observar claramente que las principales ventajas de esta
arquitectura son:

a) Que el tamaño de las instrucciones no está relacionado con el de


los datos, y por lo tanto puede ser optimizado para que cualquier
instrucción ocupe una sola posición de memoria de programa,
logrando así mayor velocidad y menor longitud de programa.

b) Que el tiempo de acceso a las instrucciones puede superponerse


con el de los datos, logrando una mayor velocidad de operación.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Arquitectura de cómputo Harvard

PIC
ARQUITECTURA
HARVARD

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Ciclos de Operación de un uP

Ciclo de reloj.- Periodo de la señal de reloj

Ciclo máquina.- Es la duración de una operación de lectura o escritura de la


memoria o de búsqueda (Fetch) de una instrucción, se mide en ciclos de reloj.

Ciclo de instrucción.- Es el tiempo total, medido en números de períodos de reloj,


de duración de un ciclo de búsqueda más uno de ejecución de la instrucción
teniendo en cuenta los sucesivos accesos a memoria en el caso de ser una
instrucción de más de un byte. Un ciclo de instrucción está compuesto por uno o
varios ciclos de máquina (M1, M2, M3, M4), dependiendo del tipo de instrucción. Se
denomina M1 al ciclo de búsqueda, pues siempre es el primero de cada ciclo de
instrucción. Los ciclos de máquina más comunes son: Fetch, Memory Read,
Memory Write, I/O Read, I/O Write, etc.
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
Ciclos de Operación de un uP

Ejemplo (8085)

STA 0325H; Almacena el contenido del acumulador en la localidad especificada por el operando (16 bits)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Tipos de microcontroladores
Con relación a la filosofía de diseño de la CPU, particularmente el “set” de
instrucciones, típicamente existen microcontroladores del tipo:
CISC
(Complex Instruction Set Computer), es un tipo de diseño de CPU con un
conjunto de instrucciones que se caracteriza por ser muy amplio y permitir
operaciones complejas entre operandos situados en la memoria o en los
registros internos. La microprogramación es una característica importante y
esencial de casi todas las arquitecturas CISC. Las instrucciones complejas
son decodificadas internamente y ejecutadas con una serie de
microinstrucciones almacenadas en una ROM interna. Para esto se requieren
de varios ciclos de reloj (al menos uno por microinstrucción).

RISC
(Reduced Instruction Set Computer), Computadora con Conjunto de
Instrucciones Reducidas) es un tipo de diseño de CPU generalmente utilizado
en microprocesadores o microcontroladores que utiliza Instrucciones de
tamaño fijo. Debido a que se tiene un conjunto de instrucciones simplificado,
las mismas se pueden implantar por hardware (alambradas) directamente en la
CPU, lo cual elimina el microcódigo y la necesidad de decodificar instrucciones
complejas. Reducción del conjunto de instrucciones a instrucciones básicas
simples, con las que se pueden implantar todas las operaciones complejas

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Ejemplo microcontrolador CISC (8051)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Ejemplo microcontrolador CISC (8051) A4

¡255 instrucciones!
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
Ejemplo microcontrolador CISC (8051)

En general un ciclo de instrucción necesitará uno o más ciclos máquina,


dependiendo de dos condiciones:

1.- Código de operación (OPCODE)

Por ejemplo, la instrucción INC A tiene 1 byte de instrucción y necesita 1


ciclo máquina. La instrucción INC DPTR (Registro de 16 bits), también
tiene 1 byte de instrucción pero necesita 2 ciclos máquina y la
instrucción MUL AB, necesita 4 ciclos máquina y ocupa 1 byte de
memoria.

2.- El número de bytes en memoria de programa

Por ejemplo, la instrucción MOV A, #data (dato de 8 bits) tiene 2 bytes


de instrucción y necesita 1 ciclo máquina. En cambio la instrucción MOV
direct, #data, consta de 3 bytes y necesita 2 ciclos máquina.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Ejemplo microcontrolador RISC (16F84)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Ejemplo microcontrolador RISC (16F84)

¡35
instrucciones!

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Tipos de microcontroladores

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Principales fabricantes de uCs

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Tipos de microcontroladores
Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology
Inc. El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro,
aunque generalmente se utiliza como Peripheral Interface Controller (controlador de interfaz
periférico). Microchip proporciona un entorno de desarrollo freeware llamado MPLAB que
incluye un simulador software y un ensamblador. Otras empresas desarrollan
compiladores C y BASIC.

Los microcontroladores PIC se subdividen según la capacidad de su procesador, su memoria


y componentes auxiliares en cuatro grandes gamas:

Gama baja
Gama media (PIC16Cxx) (12 bit)
Gama Alta (PIC17Cxx) (16 bit)
Gama mejorada (PIC18xx)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Tipos de microcontroladores
PICAXE es una familia de microcontroladores basada en PICs. Los
PICAXE son esencialmente PICs, con firmware preprogramado
(intérprete BASIC). Una de las características únicas del
sistema PICAXE es que los programas pueden descargarse
directamente al microcontrolador mediante un cable conectado al
mismo, por lo tanto no se requiere el uso de equipos
programadores/eliminadores de alto costo. Además, el software es
fácil de utilizar y gratuito

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Tipos de microcontroladores

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Tipos de microcontroladores
Microprocesador/microcontrolador 8051

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Inserción de tema de la unidad 4 (comunicación serie)
Debido a la necesidad de utilizar la plataforma de ARDUINO, es necesario
en este punto introducir el tema de “Comunicación Serial” (tema de U4)

Comunicación Serial – U4

uC
Específico

ARDUINO

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Que puede incluir un Microcontrolador?
 Unidad Central
procesamiento (CPU)
 Random Access
Memory) (RAM)
 Read Only
Memory(ROM)
 Puertos de
entrada/salida
 Temporizadores y
contadores
 Controlador de
interrupciones
 Convertidor Analógico
a Digital (ADC)
 Convertidor Digital a
analógico (DAC)
 Puerto Serial
 Watch Dog Timer
Los periféricos de un microcontrolador se  Circuito Oscilador
programan y operan mediante REGISTROS  Brown-out detection
(BOD)
INTERNOS DEL propio microcontrolador, los
cuales están ubicados en su memoria RAM
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
Que puede incluir un Microcontrolador?
Cuando se requiere el uso en particular de un periférico incluido en un
microcontrolador, se deben buscar en las hojas de datos del microcontrolador
los REGISTROS ASOCIADOS con dicho periférico, los cuales pueden ser uno
o varios registros. Usualmente el SET de instrucciones del microcontrolador
reconoce los NOMBRES de los registros de los periféricos, por lo cual cuando
se escribe un programa, bastará con escribir el nombre (alias) de los registros
con los que se desea trabajar. En algunos microcontroladores, puede hacerse
referencia a los registros asociados con sus periféricos mediante su
DIRECCIÓN en memoria RAM
Ejemplo: registro internos asociados a la
operación y programación de los TIMERS de
la familia de uC 8051

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Que puede incluir un Microcontrolador?
Entradas/salidas digitales
Representan la conexión con el mundo digital, añaden al uC la capacidad de
interpretar y mostrar señales binarias externas, su capacidad en manejo de
corriente dependerá del tipo de uC. Algunas veces se tiene la opción de configurar
resistencias internas de entrada como “Pull Up” o “Pull Down”.

Modelo conceptual

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Que puede incluir un Microcontrolador?
Oscilador interno/externo
Al igual que un uP, un uC necesita de una señal de reloj que sincronice todo el
sistema compensando los retardos de los diferentes módulos. Los uC contienen
internamente un generador de reloj el cual puede necesitar de un cristal externo
o puede estar basado en un PLL para generar la señal sin necesidad de
componentes externos, también dependiendo de la exactitud requerida, algunos
uC contienen internamente un oscilador RC.

PLL - PHASE LOOP LOCKED - Lazo Enganchados en Fase.- Es un circuito que permite que una señal de referencia externa,
controle la frecuencia y la fase de un oscilador.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Que puede incluir un Microcontrolador?
Oscilador interno/externo
Un aspecto interesante de un oscilador como periférico de un microcontrolador,
es que la CPU puede mediante la modificación de ciertos registros, variar la
frecuencia de sus propios periféricos, de esta manera es posible controlar por
programación la velocidad y potencia consumida de los diferentes periféricos

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Que puede incluir un Microcontrolador?
Oscilador interno/externo

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Que puede incluir un Microcontrolador?

CIRCUITO DE “POWER ON RESET”

Después de un RESET, en un uC algunos registros


se precargan a su valor por default.
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
¿Que puede incluir un Microcontrolador?
Brown-out detection (BOD)
Muchos microcontroladores contienen un circuito de detección de
“apagones” o Brown-out detection (BOD), el cual monitorea la fuente de
alimentación y compara su voltaje con un valor fijo, si el voltaje disminuye
por abajo de un nivel determinado, el microcontrolador será reinicializado
y mantenido en esta condición hasta que el voltaje alcance su nivel
normal.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 201945


¿Que puede incluir un Microcontrolador?
Convertidor Analógico a Digital (ADC)
La conversión analógica-digital es el proceso
por el cual una magnitud analógica se
convierte a un formato digital, para un uC
representa el medio de interacción con el
mundo analógico.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


¿Que puede incluir un Microcontrolador?
Convertidor Digital a Analógico (DAC)
Un convertidor Digital/Analógico toma un valor representado en código
digital (binario, BCD, etc.) y lo convierte en un valor analógico de voltaje o
corriente que es proporcional al valor digital.

 Control digital de
velocidad para motores
 Filtros digitales
 Etc.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


¿Que puede incluir un Microcontrolador?
Watch Dog
 Los sistemas embebidos deben incluir la capacidad
de soportar las posibles anomalías de hardware y
software, es decir deben contar con la robustez de
operación suficiente.
 En muchos casos, los sistemas embebidos deben
operar en completo aislamiento, sin la intervención
de operador alguno.
 Los sistemas embebidos deben contar con una
forma de reinicialización (reset) manual, pero esto
no será aplicable para sistemas remotos.

 Un watch dog es un dispositivo hardware de


temporización que genera un reset del sistema o una
operación similar despues que un determinado intervalo
de tiempo ha transcurrido.
 Un watch dog puede ser externo al uC o ser un periférico
interno.
 Para prevenir un reset del watch dog, el programa de
aplicación periódicamente debe reinicializarlo, antes de
que finalice su intervalo de tiempo, esta acción se conoce
como “patear al perro” (kicking the dog)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


¿Que puede incluir un Microcontrolador?

Watch Dog

“Pateando” al perro

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


¿Que puede incluir un Microcontrolador?
BUS I2C

I²C es un bus síncrono de comunicaciones serie. Su nombre viene de Inter-


Integrated Circuit (Circuitos Inter-Integrados). La versión 1.0 surgió en el año 1992
y la versión 2.1 en el año 2000, su diseñador es Philips. La velocidad estándar es
de 100Kbits por segundo, también permite velocidades de 400Kbit/s. Es un bus
muy usado en la industria, principalmente para comunicar microcontroladores y
sus periféricos en sistemas embebidos (Embedded Systems).
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
¿Que puede incluir un Microcontrolador?
BUS USB
 USB son las siglas de Universal Serial Bus y es un bus para periféricos de
computadoras surgido en 1996.
 USB es un estandar diseñado para eliminar los inconvenientes que surgen al
conectar periféricos a las computadoras.
 Es un estandar para buses externos que soporta transferencias de hasta 480 Mbps.
Un solo puerto USB puede utilizarse para conectar hasta 127 dispositivos como
ratones, modems, y teclados. USB también soporta instalación “Plug-and-Play” y “hot
plugging”. USB desplazó completamente a los puertos seriales y paralelos.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


¿Que puede incluir un Microcontrolador?
BUS SPI
El SPI (del inglés Serial Peripheral
Interface) es un protocolo de
comunicación síncrona de 4 hilos,
presentado por Motorola en 1982, su
función principal es la transferencia de
datos entre circuitos integrados en equipos
electrónicos.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


¿Que puede incluir un Microcontrolador?
SPI vs I2C

Cabe mencionar que la comunicación entre dispositivos mediante


estos buses está planeada, más no limitada a nivel tarjeta.
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
¿Que puede incluir un Microcontrolador?
Timers/Counters

En un uC las funciones de
temporizador (timer) y contador
consisten básicamente en la
cuenta de eventos mediante un
Diferencia entre un timer (a) y un contador (b)
registro de propósito especial

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


¿Que puede incluir un Microcontrolador?

Timers/Counters

Contador

https://www.mikroe.com/ebooks/pic-microcontrollers-programming-in-assembly

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


¿Que puede incluir un Microcontrolador?

Módulos de captura y comparación

Registro de captura

Timer/counter

https://www.mikroe.com/ebooks/pic-microcontrollers-programming-in-assembly

Captura:
 Captura el valor del timer/counter
Bits de configuración
del evento para cuando ocurre un evento externo (en
capturar CCPx)
 Respalda el valor del contador a un
registro especial (CCPR1)
 Genera una interrupción
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
¿Que puede incluir un Microcontrolador?

Módulos de captura y comparación

Registro de captura

Timer/counter

https://www.mikroe.com/ebooks/pic-microcontrollers-programming-in-assembly

Compara:
 Poner un valor en un registro especial
 Cuando el valor del contador sea
igual al valor del registro especial
(CCPR2) genera una interrupción o
una señal de salida (en CCPx)
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
¿Que puede incluir un Microcontrolador?
Modulador de Ancho de Pulso PWM
Un modulador de ancho de pulso (PWM por sus siglas en inglés), opera
modulando el ciclo de trabajo de una señal cuadrada. El ciclo de trabajo de una
señal cuadrada es el porcentaje de tiempo que permanece en alto, relativo el
tiempo que permanece en bajo

Aplicaciones PWM
 Control digital de velocidad
para motores DC
 Control de válvulas
 Control de intensidad
luminosa
 Etc.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


¿Que puede incluir un Microcontrolador?
Puerto Serial (USART)
UART son las siglas de Universal Asynchronous Receiver Transmitter

Recordar que los microcontroladores típicamente cuentan con tres


puertos de comunicación serial:

• I2C
• SPI (Serial Peripheral Interface)
• USART
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
¿Que puede incluir un Microcontrolador?

Puerto Serial (USART)

CPU
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
¿Que puede incluir un Microcontrolador?
Comparador Analógico
Un comparador analógico es un dispositivo que compara dos valores analógicos
e indica en su salida cual de los dos valores comparados es el más grande. En
electrónica es basicamente un amplificado sin retroalimentación (muy alta
ganancia). Caundo la la entrada positiva es más grande, la salida se satura a su
alimentación positiva (uno lógico) y cuando la entrada negativa es más grande la
salida se satura a su alimentación negativa (cero lógico)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


¿Que puede incluir un Microcontrolador?
Comparador Analógico
Un comparador analógico como periférico de un microcontrolador aprovecha la
posibilidad de configuración mediante registros por parte de la CPU, de esta
forma es posible por programación elegir entre varias entradas y recursos
analógicos disponibles en el mismo uC, así como generar interrupciones.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


CASO DE ESTUDIO DEL CURSO
Microcontrolador ATMEGA328

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontroladores AVR
Los AVR son una familia de microcontroladores RISC del fabricante
estadounidense Atmel. La arquitectura de los AVR fue concebida por
dos estudiantes en el Norwegian Institute of Technology y
posteriormente refinada y desarrollada en Atmel Norway (1996), la
empresa subsidiaria de Atmel. Los AVR sean hecho muy populares
debido a su diseño simple y su facilidad de programación, cuentan con
una CPU de arquitectura Harvard.

http://www.boiledbeans.net/2013/11/21/whose-risc-processor/

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontrolador ATMEGA328
La familia de microcontroladores AVR es muy numerosa, incluye
más de 70 dispositivos que comparten el núcleo, pero difieren en
recursos.

Entre familias, se puede utilizar el mismo SET de instrucciones???


Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
Microcontroladores AVR

¿ Que significa AVR?


 De acuerdo con ATMEL, AVR no tiene un significado, es
solo un nombre.
 Algunos autores aseguran que se trata del acrónimo de
Advanced Virtual Risc.
 Casualmente, los diseñadores de los AVR se llaman:
Alf Egil Bogen and Vegard Wollan ¿AlfVegardRisk?
http://www.edaboard.com/thread19325.html

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontroladores AVR
Características principales
 Alto desempeño combinado con bajo consumo de potencia
 Tecnología de memoria FLASH mejorada
 Arquitectura HARVARD y set de instrucciones RISC
 Ciclo máquina de un ciclo de reloj
 Rangos de operación de 1.8 -5.5 VCD
 Arquitectura diseñada para lenguaje C
 Capacidad de programación en sistema, “debugging” y
verificación.
 Variedad de herramientas de desarrollo disponibles

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontroladores AVR
COMPARATIVO

Comparativo de varios uCs ejecutando un programa con


la misma funcionalidad

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontroladores AVR

HARDVARD?

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontroladores AVR
Los microcontroladores AVR pueden clasificarse en
cuatro grupos principales:

Familia de AVR clásica (AT90Sxxxx)


Esta es la familia original, la cual gradualmente ha sido
reemplazada por nuevos chips.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontroladores AVR
Familia Mega AVR (ATmegaxxxx)
Esta es la familia más popular y comprende microcontroladores con más
de 120 instrucciones y variedad de periféricos

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontroladores AVR
Familia Tiny AVR (ATtinyxxxx)
Como su nombre lo indica, los microcontroladores de esta familia
cuentan con encapsulados pequeños en comparación con otras familias,
las aplicaciones de bajo costo y consumo utilizarán esta familia. El set
de instrucciones es limitado.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontroladores AVR
Familia AVR de propósito especial
Esta familia de microcontroladores se puede considerar como un sub-set
de otros grupos, pero con características especiales para aplicaciones
específicas como USB, CAN, ZIGBEE, ETHERNET, etc.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Microcontroladores
AVR

74
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
ATMEGA328P

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Maximum Frequency vs. VCC

La disipación de potencia se incrementa con la frecuencia de


operación…

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


ATMEGA328P

Típicamente las terminales de un microcontrolador tienen más de


una función. La programación de un microcontrolador está
orientada a utilizar sus recursos internos, esto incluye la
interacción con el mundo exterior, para la realización de una tarea
específica definida por el usuario.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


ATMEGA328P
AVR CPU CORE
Tipos de memoria

Memoria de
programa?
Memoria de
datos?

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


MODELO DE PROGRAMACIÓN
Para programar adecuadamente un uC es necesario conocer su
modelo de programación. Se entiende por modelo de programación al
conjunto de registros accesibles por el usuario que junto al set de
instrucciones y los modos de direccionamiento constituyen las
herramientas imprescindibles para el programador.

+ + Programación
adecuada del
uC

Registros del uC Set de instrucciones Modos de


del uC direccionamiento
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
¿Modos de direccionamiento?
Cuando Las instrucciones operan sobre datos, surge la pregunta ¿y
los datos dónde están? La respuesta a esta pregunta se responde
con los modos de direccionamiento de cada microprocesador, los
cuales son parte integral de cada set de instrucciones, permiten
especificar la fuente o destino de los datos de diferentes maneras.

Instrucción

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Mapa de memoria ATMEGA328
El mapa de memoria de un microcontrolador es un diagrama que indica
el tamaño, tipo y distribución de las memorias disponibles en el mismo
microcontrolador. Los mapas de memoria de un microcontrolador se
obtienen de su hoja de datos

Datos NO volátiles

Programa Datos volátiles


Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
Memoria de programa del ATMEGA328
El ATMEGA328 contiene 32Kbytes de memoria FLASH para almacenar su
programa. Debido a que sus instrucciones son de 16 o 32 bits, la memoria
FLASH está organizada como una memoria de 16K x 16. La misma memoria está
dividida en la sección de boot loader y la sección de programa de aplicación

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Memoria de programa del ATMEGA328
Read-While-Write Self-Programming Adicional a la sección de aplicación y
bootloader, existe otra division en la
memoria de programa, la cual se
divide en dos secciones fijas

Read-While-Write
(RWW) section

No-Read-While-Write
(NRWW) section

La diferencia entre las dos secciones de la memoria de programa es que la sección NRWW es
accesible mientras se actualiza la sección RWW. No es posible accesar la sección RWW
mientras la misma se actualiza. Cuando se actualiza la sección NRWW la CPU se detiene.
Entiéndase “accesar” como ejecutar código en la memoria referida y “actualizar” como escritura
de la memoria.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Memoria SRAM de Datos
La memoria SRAM en el ATmega328P se divide en varios grupos

Recordar que la memoria


EEPROM también es una
Registros de memoria de datos
acceso rápido

Registros
asociados a
los periféricos

Control de
Registros periféricos
asociados a
los periféricos
(extendidos)

RAM de
propósito
general
Endurance of at least 100,000
write/erase cycles

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Memoria de Datos
Los registros de la CPU se utilizan para operar y configurar periféricos así como
para almacenar datos temporalmente. Para programar en lenguaje ensamblador
es necesario conocer la arquitectura y los registros de la CPU. Los AVR cuentan
con 32 registros de propósito general (GPRs) de 8 bits que se utilizan como
medios de almacenamiento de acceso rápido por parte de la CPU.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Memoria de Datos
La ALU de alto desempeño de los AVR opera en conexión directa con los 32
registros de propósito general, los cuales pueden considerarse como el
equivalente al acumulador en la arquitectura de una CPU orientada a acumulador.
Las operaciones aritméticas entre los GPRs o entre un registro I/O y un dato se
ejecutan en un solo ciclo de reloj. Las operaciones de la ALU se dividen en tres
categorias: aritméticas, lógicas y orientadas a bit.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Memoria SRAM de Datos

Los 32 registros de
acceso rápido y los
registros I/O tienen
direcciones para ser
tratados como
SRAM de propósito
general

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registro de Estado
El registro de estado contiene
información acerca del
resultado de la instrucción
aritmética o lógica más
reciente, esta información
puede utilizarse para alterar el
flujo del programa y se
actualiza en cada operación de
la ALU

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registro de Estado

Al ejecutarse esta instrucción ¿se generará


alguna bandera en el registro SREG?

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registros I/O

OFFSET

Los registros I/O se emplean para la


configuración y el control de recursos
internos, así como para conocer su estado.
Por ejemplo, en este espacio están los
registros para el manejo de los Puertos de
Entrada/Salida

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registros I/O

Los registros I/O pueden ser manejados como


memoria RAM de propósito general (direcciones
0x20 - 0x5F) aunque es menos eficiente su
acceso.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registros I/O
Los registros I/O en el rango 0x00 - 0x1F son accesibles por bit. Para modificarse,
con instrucciones SBI y CBI o para evaluarse, a través de las instrucciones SBIS
(Skip If Bit is Set) y SBIC (Skip If Bit is Clear).

0x00

….
0x1F

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registros I/O Extendidos

Algunos microcontroladores
AVR con más periféricos
incluidos necesitan más
espacio para la configuración y
el control de estos recursos
internos extras. En el
ATMEGA328P, el espacio I/O
extendido tiene la misma
función que el espacio de los
registros I/O y aunque en su
mayoría está sin uso, el
espacio está disponible para
compatibilidad con otras
versiones de la familia AVR.

El espacio para los registros I/O Extendidos es de 160


localidades.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Escribiendo los registros asociados a los periféricos

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Escribiendo los registros asociados a los periféricos

Sets PB5 (the LED on


Arduino Pro Mini) to
output and toggles it in an
infinite loop.

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registros Apuntadores
Seis de los 32 registros de la SRAM
pueden ser usados como apuntadores de
16 bits para instrucciones que utilizan
direccionamiento indirecto en el espacio de
datos. Estos registros se denominan X, Y y
Z.

El registro Z también puede usarse como


apuntador a la memoria de programa.

“Arquitectura Optimizada para ejecutar


código C compilado”

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registro Program Counter
Típicamente los
microcontroladores
AVR tienen un registro
Contador de Programa Program Counter

(PC) de 16 bits, el cual


contiene la dirección
de la SIGUIENTE
instrucción a ejecutar

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registro Stack Pointer

STACK
POINTER

DIRECCIÓN DE
RETORNO???

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registro Stack Pointer
Una pila (stack en inglés) es una lista o
estructura de datos que permite
almacenar y recuperar datos y en la que
el modo de acceso a sus elementos
puede ser de tipo LIFO (del inglés last in
first out, es decir, "último en entrar,
primero en salir") o de tipo FIFO (First In
First Out). En los uCs y uPs la pila se
implementa en un bloque de memoria
RAM, el cual PUEDE ser reubicado por
el programador

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registro Stack Pointer
Los microcontroladores AVR cuentan con un registro Stack Pointer
de 16 bits, el cual siempre apunta a la siguiente localidad disponible
para almacenar un dato en la pila. La pila de los AVR opera con una
arquitectura LIFO. En los AVR existen dos instrucciones para alterar
DIRECTAMENTE el contenido de la pila, PUSH y POP

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Registro Stack Pointer

http://www.avr-tutorials.com/general/avr-microcontroller-stack-operation-and-stack-pointer
Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019
Registro Stack Pointer

ATmega8535
AVR Microcontroller

RAMEND es una
constante que
representa la última
localidad de la RAM
del microcontrolador
en cuestión

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Offset
(SRAM)

Resumen de
Registros
SRAM
(1)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Resumen de
Registros
SRAM
(2)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Resumen
de
Registros
SRAM
(3)

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


Herramientas de Desarrollo

Microcontroladores

Utilización de tarjetas
ARDUINO con
AVRSTUDIO 7

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019


FIN DE LA PRESENTACIÓN
UNIDAD 1

GRACIAS POR SU ATENCIÓN

Microcontroladores José Manuel García Hernández Agosto – Diciembre 2019

También podría gustarte