introducción a los microcontroladores · ejemplos de bootloading: x86 bios (rom) etapa 1 (512...
TRANSCRIPT
![Page 1: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/1.jpg)
MICROCONTROLADORES
![Page 2: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/2.jpg)
MICROCONTROLADORES
Introducción
Arquitectura
Memoria
I/O Digital
Interrupciones
I/O Analógica
Timers/PWM
Interfaces y Otros Periféricos
![Page 3: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/3.jpg)
INTRODUCCIÓN
Ejemplo. Se quiere:
Leer periódicamente una temperatura
Prender y apagar un calefactor
Mostrar en un display la temperatura
Permitir al usuario ajustar la temperatura
Posibilidad de actualizar la funcionalidad con un
interfase serie
![Page 4: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/4.jpg)
INTRODUCCIÓN
Diseño discreto. Se requiere: Un microprocesador
20 líneas de I/O (2 chips de 16 c/u)
1 Interfaz serie (1 chip)
1 Timer (1 chip)
Memoria SRAM (para variables)
Memoria Flash (para programa)
Memoria EEPROM (para constantes)
![Page 5: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/5.jpg)
INTRODUCCIÓN
Diseño
discreto.
![Page 6: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/6.jpg)
INTRODUCCIÓN
Diseño
Integrado.
ATmega16 (atmel)
![Page 7: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/7.jpg)
INTRODUCCIÓN
Uso de los microcontroladores
Microondas, Lavarropas, Televisores, ...
Automóviles, aviones, barcos
Teléfonos
Automatización industrial
Pequeños dispositivos ad-hoc
...
![Page 8: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/8.jpg)
INTRODUCCIÓN
![Page 9: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/9.jpg)
OFERTA DE MICROCONTROLADORES
Estructurada por “familias” y “subfamilias”.
Por ejemplo, cada familia tiene el mismo núcleo del
procesador (su código será compatible):
8051,PIC,HC,ARM
O son familias orientadas a la aplicación
O por performance (de diferente tipo)
![Page 10: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/10.jpg)
OFERTA DE MICROCONTROLADORES
![Page 11: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/11.jpg)
OFERTA DE MICROCONTROLADORES
![Page 12: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/12.jpg)
OFERTA DE MICROCONTROLADORES
Año: 2014
![Page 13: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/13.jpg)
OFERTA DE MICROCONTROLADORES
![Page 14: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/14.jpg)
ARQUITECTURA
![Page 15: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/15.jpg)
ARQUITECTURA
![Page 16: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/16.jpg)
ARQUITECTURA
![Page 17: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/17.jpg)
ARQUITECTURA
![Page 18: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/18.jpg)
ARQUITECTURA
![Page 19: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/19.jpg)
ARQUITECTURA
![Page 20: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/20.jpg)
ARQUITECTURA: PROCESADOR
![Page 21: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/21.jpg)
ARQUITECTURA
Von Neuman vs. Hardvard
CISC vs. RISC
Tamaño/variedad de las instrucciones
Velocidad: clock; 8/16/32 bits
![Page 22: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/22.jpg)
ARM – CORTEX-M
Cortex-M
Arquitectura de la
Memoria
Arquitectura
ARM
Cortex-M0 Von Neumann ARMv6-M
Cortex-M0+ Von Neumann ARMv6-M
Cortex-M1 Von Neumann ARMv6-M
Cortex-M3 Harvard ARMv7-M
Cortex-M4 Harvard ARMv7E-M
Cortex-M7 Harvard ARMv7E-M
![Page 23: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/23.jpg)
SISTEMAS EMBEBIDOS
Dos alternativas:
“BARE METAL”
Sobre un Sistema Operativo
básico (administrador de tareas)
de tiempo real (QNX, FreeRTOS, …)
genérico (Linux, Android, Windows, …)
![Page 24: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/24.jpg)
SISTEMAS EMBEBIDOS: BOOTLOADING
Un”bootloader” es una pieza de código que se puede
encargar de:
Inicializar el harware en forma básica
Cargar la aplicación o el sistema operativo en la memoria tomándolo de una
flash, la red u otro medio no-volatile
Ejecución de la Aplicación
Puede no haber “bootloader” o este estar implícito en el
proceso de arranque de la CPU
Puede haber “bootloaders” para completar el proceso de
“bootloading”
![Page 25: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/25.jpg)
EJEMPLOS DE BOOTLOADING: X86
BIOS
(ROM)
Etapa 1
(512 bytes de algún dispositivo
de almacenamiento)
Etapa 2
(el bootloader propiemente
dicho)
El Sistema Operativo
(Kernel
del Filesystem)
![Page 26: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/26.jpg)
EJEMPLOS DE BOOTLOADING:
ARM TI OMAP3 CON LINUX
ROM Code
(en la CPU)
X-loader / U-Boot 1
U-Boot 2
Linux Kernel
Inicializa la RAM y trata de encontrar una imagen ejecutable en varios lugares y la carga en SRAM o RAM
Corre en la SRAM, inicializa la DRAM, el controlador NAND or MMC y carga en la RAM la siguiente etapa y la ejecuta.
Corre en la RAM. Inicializar algún harware (red,USB, etc.). Carga el kernel y lo ejecuta
Toma el control del sistema completamente. (los “bootloaders” ya no existen)
![Page 27: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/27.jpg)
EJEMPLOS DE BOOTLOADING:
MCS08- BAREMETAL
De la hoja de datos:
“…
3.3 Run Mode
Run is the normal operating mode for the MC9S08LC60 Series. This mode is selected upon the MCU exiting reset if the BKGD/MS pin is high. In this mode, the CPU executes code from internal memory with execution beginning at the address fetched from memory at 0xFFFE:0xFFFF after reset.
…”
![Page 28: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/28.jpg)
MEMORIA
Registros (memoria de corto plazo):
Pequeña (relativamente)
Almacenamiento temporario p/CPU
Memoria de datos
Relativamente Grande
Almacena datos mientras el MCU funciona
Memoria de programa
Relativamente Grande
De preferencia, mantiene el programa incluso con el MCU apagado.
![Page 29: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/29.jpg)
MEMORIA: TIPO FÍSICOS
![Page 30: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/30.jpg)
MEMORIA
S/DRAM: sin limite de escrituras
EEPROM: 100.000 ciclos de borrado
Flash: 10.000 ciclos de borrado
![Page 31: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/31.jpg)
MEMORIA: DIRECCIONAMIENTO
Separado:
Cada tipo físico se direcciona por separado (por ejemplo, usando diferentes registros índices)
Hay direcciones repetidas
Contínuo:
Se accede siempre igual y la logica interna accede a la memoria que corresponde
No hay direcciones repetidas
![Page 32: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/32.jpg)
MEMORIA: DIRECCIONAMIENTO
Separado
![Page 33: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/33.jpg)
MEMORIA: DIRECCIONAMIENTO
Continuo
![Page 34: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/34.jpg)
MEMORIA: EJERCICIO
For (i=100;i>=0;i--)
Inadvertidamente i es almacenada en EEPROM
Inadvertidamente i esta implementada como unsigned
Como la EEPROM es lenta, cada iteración lleva, digamos, 10 ms
¿Que pasa al conectar el MCU?:
el programa se cuelga
Me doy cuenta, digamos, a los 10 segundos
Empiezo a “debuggear” el programa (pero no apago el MCU)
¿En cuanto tiempo me quedo sin microcontrolador?
![Page 35: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/35.jpg)
ENTRADA/SALIDA DIGITAL
![Page 36: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/36.jpg)
DIGITAL I/O
Implementadas por pines de conexión directa al exterior:
Los MCU tienen en general de 8 a 32 pines (o más).
Se agrupan en “ports” de a 8 pines.
En general, los pines se pueden configurar como entrada o salida
La lógica puede ser positiva o negativa.
Los pines pueden tener otras funciones alternativas.
![Page 37: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/37.jpg)
DIGITAL I/O •pin 1 del port B •Módulo de Interrupción 1 - entrada 5 •Pin Tx de puerto serie
•Conversor AD canal 5
![Page 38: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/38.jpg)
DIGITAL I/O
Los pines se controlan mediante 3 registros:
Data Direction Register (DDR): hay uno por cada
puerto y cada bit determina la dirección de un pin.
Port Register (PORT): uno por cada puerto y cada bit
controla el estado del puerto (si es de salida)
Port Input Register (PIN): uno por cada puerto y cada
bit da el estado de su respectivo pin, esté este
configurado como entrada o salida.
![Page 39: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/39.jpg)
DIGITAL I/O
(del manual de referencia del MCU)
![Page 40: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/40.jpg)
DIGITAL I/O
![Page 41: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/41.jpg)
DIGITAL I/O
![Page 42: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/42.jpg)
DIGITAL I/O
PTBDD = 0x80; // initialize PTB7 as output
PTBD = 0; // initialize PTB to 0
PTBD_PTBD7 = ~PTBD_PTBD7; // invert the output
1 0 0 0 0 0 0 0
Ejemplo: bit 7 bit 0
![Page 43: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/43.jpg)
DIGITAL I/O
PORT Register: de preferencia debe
escribirse con operaciones de escritura de
bit, si estan disponibles
Caso contrario usar : Read-Modify-Write
con cuidado.
![Page 44: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/44.jpg)
DIGITAL INPUT
La entrada se muestrea con cada pulso (flanco
ascendente normalmente) del clock, lo que ocasiona
“metaestabilidad”:
![Page 45: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/45.jpg)
DIGITAL INPUT
Normalmente incorporan un Schmitt-trigger.
Para reducir la “metaestabilidad” se introducen
“sincronizadores”
![Page 46: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/46.jpg)
DIGITAL INPUT
Cancelación de ruidos
Resistencias de pull-up/down en las entradas: puede
(debe) programarse su conexión/desconexión (a
veces mediante el registro PORT).
![Page 47: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/47.jpg)
DIGITAL OUTPUT
Apenas el DDR setea un pin como salida, el MCU
excita el pin de acuerdo al contenido del registro
PORT correspondiente.
Cuidado con los cortocircuitos
Orden de seteo de DDR y PORT
![Page 48: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/48.jpg)
PROTECCIÓN DE ENTRADAS Y SALIDAS
Conexión directa: problemas habituales
Aislación galvánica
![Page 49: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/49.jpg)
INTERRUPCIONES
![Page 50: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/50.jpg)
INTERRUPCIONES
Un programa sin uso de interrupiones (polling):
¿inconvenientes?
Procesar
Producir
salidas
. . .
do_init();
. . .
for (;;) {
do_inputs();
do_some_process();
set_outputs()
}
Inicializa-
ciones
Leer
entradas
![Page 51: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/51.jpg)
INTERRUPCIONES
Con interrupciones:
Pueden no existir
Procesar
Producir
salidas
. . .
do_init();
. . .
interrupts_on;
for (;;) {
do_some_process();
set_outputs()
}
Atender
evento 1
Atender
evento 2
Atender
evento n. . .
Inicializa-
ciones
![Page 52: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/52.jpg)
INTERRUPCIONES
Las interrupciones se generan cuando cambia un
“estado”.
Permiten la reacción ante eventos
Restricciones de tiempo real
Polling vs. Interrupts
Interrupt Service Routine (ISR)
![Page 53: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/53.jpg)
INTERRUPCIONES
Control de Interrupciones
Interrupt Enable (IE): bit que se setea para habilitar al controlador que llame a la ISR cuando se produce el evento.
Interrupt Flag (IF): lo setea el MCU cuando se produce el evento. Se limpia automatica o manualmente.
Interrupt mode (IM): mas de un bit para indicar si la interrupcion se produce por flanco ascendente, descendente, , etc.
Global Interrupt Enable.
![Page 54: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/54.jpg)
INTERRUPCIONES
Control de Interrupciones
Inhabilitar las interrupciones no implica perder
eventos.
Cuidado al limpiar la IF
Normal Interrupts and NMI
![Page 55: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/55.jpg)
INTERRUPCIONES
Interrupt Vector Table: es una tabla donde se indica
para cada interrupción en donde se encuentra la
ISR que la atiende.
Puede contener la dirección de la primera
instrucción de la ISR respectiva o una instrucion
jump (JSR) a la ISR (depende el MCU)
![Page 56: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/56.jpg)
INTERRUPCIONES: IVT
En el Atmega128 (Atmel):
![Page 57: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/57.jpg)
MC
9S
08
QG
8
(Fre
esca
le)
![Page 58: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/58.jpg)
INTERRUPCIONES
Prioridades: fijas o variables
Dentro de una ISR se puede establecer cuales
interrupciones se permiten (sin hacerlo “a mano”
vía los IE)
Cancelación de ruidos
Eventos internos
![Page 59: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/59.jpg)
INTERRUPCIONES
Pasos que ocurren ante una interrupción:
1. MCU setea la IF (esté o no habilitada la interrupción)
2. Se termina la instrucción en curso o si el MCU está en
estado “sleep”, se despierta.
3. Se identifica la ISR considerando los IE y la
interrupcion de mas alta prioridad (si hay mas de un IF
seteado).
4. Se llama a la ISR (... y ya pasó un tiempito)
![Page 60: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/60.jpg)
INTERRUPCIONES
KBI1P2
El controlador de interrupciones 1 (KBI1) tiene 8 entradas conectadas a determinados puertos
Ejemplo:
![Page 61: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/61.jpg)
INTERRUPCIONES
Registros de control (ubicación en la memoria)
Son 3
dirección mnemónicos de funcion de cada bit
![Page 62: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/62.jpg)
INTERRUPCIONES
![Page 63: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/63.jpg)
![Page 64: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/64.jpg)
INTERRUPCIONES
Mapeo a variables:
![Page 65: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/65.jpg)
INTERRUPCIONES
Ejemplo inicialización:
void InitKBI() { /*KBI1 Init*/ KBI1SC_KBIE = 0; // Mask KBI1 interrupts KBI1ES_KBEDG3 = 0; // KBI1P3 internal pull-up, falling edge/low level KBI1ES_KBEDG2 = 0; // KBI1P2 internal pull-up, falling edge/low level KBI1PE_KBIPE3 = 1; // Enable KBI1P3 interrupts KBI1PE_KBIPE2 = 1; // Enable KBI1P2 interrupts KBI1SC_KBIMOD = 0; // Detect edges only KBI1SC_KBACK = 1; // Clear possible false interrupts KBI1SC_KBIE = 1; // Enable KBI1 interrupts } //end InitKBI
![Page 66: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/66.jpg)
Atención de la interrupción
INTERRUPCIONES
![Page 67: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/67.jpg)
INTERRUPCIONES Calificador: dice que la función es una subrutina de interrupción
Número de vector que debe atender esta rutina
![Page 68: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/68.jpg)
INTERRUPCIONES Calificador: dice que la función es una subrutina de interrupción
Número de vector que debe atender esta rutina
Alternativa:
Se le puede definir al linker (archivo .prm) que guarde la direccion de la funcion directamente:
VECTOR ADDRESS 0xFFDA KBIx-ISR
Y entonces la sintaxis queda:
interrupt void KBIx_ISR(void) { ...
![Page 69: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/69.jpg)
INTERRUPCIONES
En el main:
![Page 70: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/70.jpg)
INTERRUPCIONES
![Page 71: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/71.jpg)
INTERRUPCIONES
Polling vs. Interrupts
Siempre hay que analizar la situación puntual, pero en general, usar interrupciones cuando:
Los eventos son infrecuentes
Hay mucho tiempo entre eventos
El cambio de estado es importante
Quiero detectar impulsos cortos
Hay eventos generados por hardware (no hay rebotes o picos)
Hay muy poco para hacer así que conviene estar en modo sleep
![Page 72: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/72.jpg)
INTERRUPCIONES
Conviene “polear” cuando:
El operador es humano
No se requiere una temporización precisa
El estado es mas importante que el cambio
Los “impulsos” duran mucho
Hay ruido en la señal
Hay cosas para hacer en el main (pero no demasiado)
![Page 73: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/73.jpg)
MICROCONTROLADORES
Introducción
Arquitectura
Memoria
I/O Digital
Interrupciones
I/O Analógica Timers/PWM
Interfaces y Otros Periféricos
![Page 74: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/74.jpg)
ENTRADA/SALIDA ANALOGICA
![Page 75: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/75.jpg)
ANALOG I/O
Conversión DIGITAL a ANALOGICA:
Usando un modulador de ancho de pulso
![Page 76: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/76.jpg)
CONVERSIÓN DIGITAL A ANALOGICA:
Por redes del tipo R-2R. Para r bits sería:
REPASO
![Page 77: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/77.jpg)
CONVERSIÓN DIGITAL A ANALOGICA:
Por redes del tipo R-2R. Para r bits sería:
REPASO
![Page 78: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/78.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
(CAD)
Comparador: determina si V1 >V2 y arroja 1, ó 0 en caso contrario.
![Page 79: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/79.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
(CAD)
Conversión de valor
Codificación Muestreo
![Page 80: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/80.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
(CAD)
La velocidad de muestreo determina la máxima
frecuencia posible de muestrear (fmax<fs/2).
Además, hay que tener en cuenta el tiempo que
puede llevar la conversión.
Y como la conversión lleva tiempo: para asegurar la
estabilidad se usa una etapa de retención (sample-
hold)
![Page 81: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/81.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
(CAD)
Métodos mas comunes de Conversión Analógica-
Digital:
Integrador de simple/doble rampa
Directa (flash)
Seguidor (Tracking)
Aproximaciones sucesivas
Sigma-Delta
![Page 82: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/82.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
(CAD)
Directa (flash): muy rápida (1 bit time); muy cara
Este modo de conversión rápido es utilizado en algunos MCU y por lo general, no hay mas de 1 o 2 canales “rápidos”.
![Page 83: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/83.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
(CAD)
Seguidor (tracking): muy lenta (2r bit times) y
variable; barata.
![Page 84: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/84.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
(CAD)
Aproximaciones sucesivas: velocidad media y fija en
r+1
Este es el modo mas utilizado
![Page 85: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/85.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
(CAD)
Control del CAD
Habilitación
Tensión de Referencia
Entrada Salida (registro)
Conversion Complete
Start Conversion
![Page 86: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/86.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
(CAD)
Los MCU pueden tener varios CADs, con normalmente de 8 a
12 bits de precisión.
Cada CAD puede atender hasta16 o más entradas (canales).
Los canales se multiplexan (aumentan los tiempos).
Autoincremento: al leer un canal, se pasa al siguiente y se
efectúa un SC automáticamente.
Existe el “modo contínuo” y de disparos sucesivos mediante el
RTC
Una conversión puede “dispararse” por eventos como un
timer, una variación de una entrada digital o una señal externa.
![Page 87: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/87.jpg)
CAD: EJEMPLO DE CARACTERÍSTICAS EN
UN MCU Linear successive approximation algorithm with 12 bits resolution.
Up to 28 analog inputs.
Output formatted in 12-, 10- or 8-bit right-justified format.
Single or continuous conversion (automatic return to idle after single conversion).
Configurable sample time and conversion speed/power.
Conversion complete flag and interrupt.
Input clock selectable from up to four sources.
Operation in wait or stop3 modes for lower noise operation.
Asynchronous clock source for lower noise operation.
Selectable asynchronous hardware conversion trigger.
Automatic compare with interrupt for less-than, or greater-than or equal-to,
programmable value.
![Page 88: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/88.jpg)
CAD: EJEMPLO DE IMPLEMENTACIÓN EN
UN MCU Estado, control y configuración
reloj
multiplexor
comparador
![Page 89: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/89.jpg)
CAD: EJEMPLO DE UN REGISTRO DE
CONFIGURACIÓN
![Page 90: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/90.jpg)
// Configures ADC peripheral (ADC clock = 6.25MHz)
// Bus clock as clock source, 12-bit conversión and divisor=4
ADCCFG = 0x44;
0 1 0 0 0 1 0 0
![Page 91: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/91.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
![Page 92: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/92.jpg)
CONVERSIÓN ANALÓGICA-DIGITAL
![Page 93: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/93.jpg)
TIMERS / PWM
![Page 94: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/94.jpg)
TIMERS
Son contadores que suben o bajan con cada pulso
de reloj.
El valor actual se lee de un registro o se setea en el
mismo.
Cuidado al acceder a timers con longitud de
registro mayor a la palabra del MCU
![Page 95: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/95.jpg)
TIMERS
Los timers generalmente generan una interrupción cuando hacen overflow
Esto sirve para generar señales o eventos peródicos (con acotada precisión)
Pueden tener una señal de clock independiente del MCU. Con ella se incrementa la cuenta.
![Page 96: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/96.jpg)
TIMERS
Prescaler
Es otro contador (de 8 o 10 bits) que trabaja
contra el clock y produce una salida que es la
que entra al timer.
Se logra una extension de tiempos a medir por
la division del prescaler. Ejemplo:
8 bit timer, clock de 1 Mhz -> cuenta máxima 255 uS
con una resolución de 1 uS
8 bit timer, clock de 1 Mhz, prescaler en 1024 ->
cuenta máxima 260 ms con una resolución de 1 ms.
![Page 97: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/97.jpg)
TIMERS
Otras fuentes de cuenta:
Pulsos externos
Cristal externo: generlamente de 32.768 KHz que implementa otro RTC independiente en el MCU
Timestamp (input capture) Puede setearse un evento para que automáticamente se copie el
valor del contador en un registro de captura. Ejemplo: cuando un comparador cambia, tomar la cuenta.
Disparo de salida (output compare) Se setea el timer una cuenta y cuando se alcanza,
automáticamente se levanta una salida, o similar.
![Page 98: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/98.jpg)
TIMERS
![Page 99: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/99.jpg)
TIMERS
Ejemplo de registros (un solo timer)
Este timer es muy versátil y trabaja tambien como PWM
![Page 100: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/100.jpg)
![Page 101: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/101.jpg)
TIMERS
![Page 102: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/102.jpg)
TIMERS
![Page 103: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/103.jpg)
TIMERS
Ejemplo de uso simple:
Clock=BUSclk=>8 Mhz
![Page 104: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/104.jpg)
MODULACIÓN DE ANCHO DE PULSO
(PWM)
Es un timer que genera una señal periódica de
salida con período y ciclo de trabajo configurables
![Page 105: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/105.jpg)
MODULACIÓN DE ANCHO DE PULSO
(PWM)
Además de su uso como CDA, los PWM se
usan para controlar ABS en autos, niveles de
iluminación en LCDs, control de motores,
etc.
![Page 106: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/106.jpg)
TIMERS Y PWM
![Page 107: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/107.jpg)
INTRODUCCIÓN A LOS
MICROCONTROLADORES
Introducción
Arquitectura
Memoria
I/O
Interrupciones
Timers
Interfaces y Otros Periféricos
![Page 108: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/108.jpg)
INTERFACES Y OTROS PERIFÉRICOS
SCI (UART)
Generalmente los módulos generan interrupciones (fin
de transmisión, recepción, etc.)
De las SCI del MCU se pueden generar con
componentes externos interfases físicas RS232, RS422,
RS485, etc.
USART (sincrónica)
Agrega un hilo para sincronismo, el cual es generado por
una de las partes
Si se usa como UART, el pin se puede usar como I/O
![Page 109: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/109.jpg)
INTERFACES Y OTROS PERIFÉRICOS
Comunicación serie asincrónica: SCI (UART)
Provee una (o mas) interfaces de comunicación asincrónica serie
(UART) por medio de dos hiloas (Tx y Rx)
Parámetros comunes: full o half duplex, data bits, parity bits, stop
bits, baud rate
![Page 110: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/110.jpg)
SCI
Muestreo del receptor
![Page 111: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/111.jpg)
SCI
Baud Rate = BUSCLK/(16XBR)
Configuración y control
Estado
Dato a transmitir o recibido (dos registros)
![Page 112: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/112.jpg)
COMUNICACIÓN SERIE ASINCRÓNICA
Interfaces Físicas para SCI
Interface EIA RS-232 Hasta 25 v
Hasta -25 v
![Page 113: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/113.jpg)
COMUNICACIÓN SERIE ASINCRÓNICA
Interface EIA RS-232
Cableado: de 3 a 10 hilos
Longitud máxima por standard: 15m o 2500 pF
(@9600bps)
Susceptible al ruido
Baud Rate (bps) Longitud (aprox.)
56000 2,5
38400 3,7
19200 7,5
9600 15
4800 30
2400 60
![Page 114: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/114.jpg)
COMUNICACIÓN SERIE ASINCRÓNICA
Interface EIA RS-422 / 485
Transmisión diferencial (líneas balanceadas)
Distancia: hasta 1200 m y hasta 10 Mbps
EIA-422: simple multi-drop: sólo un driver y hasta 10
receptores
EIA-485: multi-point hasta 32 tranceivers en la línea (a
veces hasta 128).
![Page 115: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/115.jpg)
COMUNICACIÓN SERIE ASINCRÓNICA
Circuito RS-422
![Page 116: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/116.jpg)
COMUNICACIÓN SERIE ASINCRÓNICA
Circuito RS-485 half duplex
![Page 117: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/117.jpg)
COMUNICACIÓN SERIE ASINCRÓNICA
Configuración RS-485 full duplex
![Page 118: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/118.jpg)
COMUNICACIÓN SERIE ASINCRÓNICA
Configuración RS-485 Master/Slave
![Page 119: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/119.jpg)
INTERFACES Y OTROS PERIFÉRICOS
SPI (Serial Peripheral Interface bus) de Motorola
Full duplex (un bit por bit-time)
Para comunicación serie mediante 4 hilos basada en master-
slave
MOSI: Master Out – Slave In
MISO: Master In – Slave out
SCK: System Clock, generado por el master
SS: Slave select..
Velocidad de decenas de megabits/s. Distancia de algunos
centímetros a algunos metros.
Protocolo en general dependiente de cada esclavo (intercambio de
tramas)
![Page 120: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/120.jpg)
SPI (SERIAL PERIPHERAL INTERFACE)
![Page 121: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/121.jpg)
SPI (SERIAL PERIPHERAL INTERFACE)
Conexión independiente y daisy chained de
esclavos
SS: Slave select. Si hay mas de una linea, con un decodificador externo se pueden atender 2n slaves
![Page 122: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/122.jpg)
SPI (SERIAL PERIPHERAL INTERFACE)
![Page 123: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/123.jpg)
SPI (SERIAL PERIPHERAL INTERFACE)
![Page 124: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/124.jpg)
SPI (SERIAL PERIPHERAL INTERFACE)
Ejemplo de protocolo de lectura
simple de un acelerómetro digital
![Page 125: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/125.jpg)
INTERFACES Y OTROS PERIFÉRICOS
IIC (I2C - Inter-IC bus) de Phillps/NXP
Bus sincrónico half duplex de dos hilos: SCL y SDA
Opera en modo master-slave, (permitiendo
múltiples masters, con detección de colisiones).
No hay límites al numero de dispositivos a conectar
(capacidad total en el bus < 400pF)
![Page 126: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/126.jpg)
IIC (I2C - INTER-IC)
IIC (I2C - Inter-IC bus) de Phillps/NXP
Orientado a 8 bits
Opera mediante el intercambio de tramas en
distancias cortas.
De 100 Kbps hasta 3.4 y 5 Mbps,
Cada nodo (uno debe ser master, por lo menos)
tiene una dirección UNICA de 7 o 10 bits
Rol temporal Rol temporal
![Page 127: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/127.jpg)
IIC (I2C - INTER-IC)
![Page 128: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/128.jpg)
IIC (I2C - INTER-IC)
Definiciones
Transmisor: el dispositivo que envía datos al bus
Receptor: el dispositivo que recibe datos desde el
bus.
Master: el dispositivo que inicia una transferencia,
genera el clock y termina la transferecnia.
Slave: el dispositivo direccionado por un master.
![Page 129: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/129.jpg)
IIC (I2C - INTER-IC)
Ejemplo de modo de trabajo
Supongamos que el microcontrolador A quiere enviarle
informacion al B
1. el microcontrolador A (master), direccion al B (slave)
2. el microcontrolador A (master-transmisor), envía datos al B(slave-
receptor)
3. el microcontrolador A termina la transferencia.
Si el microcontrolador A quiere recibir información del B
1. el microcontrolador A (master) direcciona al B (slave)
2. el microcontrolador A (master-receptor) recibe datos de B
3. el microcontrolador A termina la transferencia
Ver codigo de ejemplo
![Page 130: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/130.jpg)
INTERFACES Y OTROS PERIFÉRICOS
One-Wire de Dallas Semiconductor (Maxim) Solo un cable: datos (incluso sin alimentación)
Orientado al bit con velocidad de 15Kbps
Se usan GIO pins que puedan ser “open drain”
USB Componentes (roles): Host y Device (hubs y function)
4 hilos (V(5v), Data+, Data-, Ground)
De 1.5Mbps (USB1.0) a 10Gbps (USB3.1)
Ethernet Implementación de 10/100/1000* Ethernet MAC con PHY
Para conexiones a redes de area local estándar
CAN (Controller Area Network) de Bosh y Flexcan Originalmente diseñado para su uso en automoviles y ahora extendido a
otras areas, permite la comunicación por bus en 1 Mbps hasta 40 m. mediante “broadcast”.
![Page 131: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/131.jpg)
INTERFACES Y OTROS PERIFÉRICOS
Módulos de criptografía
Stack TCP/IP (para módulos ethernet)
IEEE 1149.1 Test Access Port (JTAG)
DMA Timers
QSPI (Queued SPI)
EzPort, para programar la memoria flash interna desde flash externas en forma directa
LCD controllers
...
![Page 132: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/132.jpg)
INTERFACES Y OTROS PERIFÉRICOS
![Page 133: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/133.jpg)
OTRAS CARACTERÍSTICAS
RTC (Real Time Counters)
Watchdog
Consumo: reduccion de tensión, frecuencia y modo
sleep
Reset, POR y BOR
External, Internal (software) Reset
Keyboard interrupts
![Page 134: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/134.jpg)
ARQUITECTURA
![Page 135: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/135.jpg)
![Page 136: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/136.jpg)
MC9S08LC60
![Page 137: Introducción a los Microcontroladores · EJEMPLOS DE BOOTLOADING: X86 BIOS (ROM) Etapa 1 (512 bytes de algún dispositivo de almacenamiento) Etapa 2 (el bootloader propiemente dicho)](https://reader030.vdocuments.site/reader030/viewer/2022021705/5b67346e7f8b9ab63a8e0f92/html5/thumbnails/137.jpg)
MCF52235