Title: Arquitectura: Procesador
Title: Arquitectura
Body: Von Neuman vs. Hardvard
CISC vs. RISC
Tamaño/variedad de las instrucciones
Velocidad: clock; 8/16/32 bits
Title: Arquitectura
Body: de las instrucciones
Por stack
Por acumulador
Dos direcciones
Tres direcciones
Title: Arquitectura
Body: Modos de direccionamiento
Title: Memoria
Body: 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.
Title: Memoria: Tipo físicos
Title: Memoria: Atención
Body: S/DRAM: sin limite de escrituras
EEPROM: 100.000 ciclos de borrado
Flash: 10.000 ciclos de borrado
Title: Memoria: Direccionamiento
Body: 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
Title: Memoria: Direccionamiento
Body: Separado
Title: Memoria: Direccionamiento
Body: Continuo
Title: Memoria: ejercicio
Body: 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?
Title: Digital I/O
Body: 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.
Title: Digital I/O
(Gp:) pin 1 del port B
Módulo de Interrupción 1 – entrada 5
Pin Tx de puerto serie
Conversor AD canal 5
Title: Digital I/O
Body: 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.
Title: Digital I/O
Title: Digital I/O
Title: Digital I/O
PTBDD = 0x80; // initialize PTB7 as output
PTBD = 0; // initialize PTB to 0
PTBD_PTBD7 = ~PTBD_PTBD7; // invert the output
(Gp:) 1 0 0 0 0 0 0 0
Ejemplo:
(Gp:) bit 7
(Gp:) bit 0
Title: Digital I/O
Body: PORT Register: de preferencia debe escribirse con operaciones de escritura de bit, si estan disponibles
Caso contrario usar : Read-Modify-Write con cuidado.
Title: Digital Input
Body: La entrada se muestrea con cada pulso (flanco ascendente normalmente) del clock, lo que ocasiona “metaestabilidad”:
Title: Digital Input
Body: Normalmente incorporan un Schmitt-trigger.
Para reducir la “metaestabilidad” se introducen “sincronizadores”
Title: Digital Input
Body: 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).
Title: Digital Output
Body: 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
Title: Analog I/O
Body: Conversión DIGITAL a ANALOGICA:
Usando un modulador de ancho de pulso
Title: Conversión DIGITAL a ANALOGICA:
Body: Por redes del tipo R-2R. Para r bits sería:
Title: Conversión Analógica-Digital (CAD)
Body: Comparador: determina si V1 >V2 y arroja 1, ó 0 en caso contrario.
Title: Conversión Analógica-Digital (CAD)
Body: Conversion de valor
Title: Conversión Analógica-Digital (CAD)
Body: La velocidad de muestreo determina la máxima frecuencia posible de muestrear (fmax
Página anterior | Volver al principio del trabajo | Página siguiente |