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 |