Este es un curso de microprocesadores, arquitectura y programación. Se cubren conocimientos sobre arquitectura de microprocesadores, modelos de programación y programación en lenguaje ensamblador. Se utiliza un microcontrolador como referencia de implementación del modelo ISA para procesadores incrustados y se aprende el uso de herramientas de desarrollo como IDE, simuladores y sistemas de desarrollo.
Parte I
Arquitectura de procesadores y modelo ISA del 9S12
1. Procesadores Incrustados.
1.1. Introducción
1.2. Modelo de la Arquitectura ISA
1.2.1. Operaciones
1.2.2. Operandos
1.2.3. Almacenamiento
1.2.4. Modos de direccionamiento.
1.2.5. Manejo de Interrupciones y excepciones
1.2.6. Clasificación de los Modelos ISA
2. Desarrollo de Aplicaciones
2.1. Microcomputadores, microprocesadores, microcontroladores. SoC.
2.2. Selección de un microcontrolador
2.3. Proceso de desarrollo
2.4. Procesadores incrustados Freescale de NXP
2.4.1. Familias de Microcontroladores
2.4.2. Familia HC12/S12
2.4.3. Recursos de desarrollo.
3. Modelo ISA del 9S12. Parte I
3.1. Modelo de programación.
3.2. Registro de Banderas.
3.3. Organización de Memoria.
3.4. Formato de las instrucciones en ensamblador.
3.5. Tipos de Instrucciones.
3.6. Instrucciones de Movimiento y manipulación de datos.
3.7. Operaciones lógicas y de bit
3.8. Instrucciones de pruebas de datos.
3.9. Ciclo de Ejecución de Instrucciones
4. Modelo ISA del 9S12. Parte 2
4.1. Modos de direccionamiento.
4.1.1. Direccionamiento Inherente
4.1.2. Direccionamiento Inmediato.
4.1.3. Direccionamiento Directo y Extendido.
4.1.4. Direccionamiento Indexado.
4.1.5. Direccionamiento relativo
4.2. Estructuras de Programación (Secuencial, Iterativa, Selección y Modular).
4.3. Instrucciones de salto y ramificación.
4.3.1. Instrucciones de Salto Incondicional.
4.3.2. Instrucciones de Salto Condicional
4.3.3. Instrucciones de Salto Condicional Largo.
4.3.4. Casos especiales BRSET y BRCLR.
5. Diseño de Programas y herramientas de desarrollo.
5.1. Diagramas de Flujo. Ejemplos.
5.2. Tipos de Lenguajes de Programación
5.3. Ensamblaje de Programas.
5.3.1. Archivo de Listado .LST
5.3.2. Archivo Objeto .S19
5.4. Directivas de Ensamblador.
5.5. Ensamblado de programas: Un ejemplo
5.6. IDE Assembler
5.7. El Simulador SimHCS12.
5.8. Ejemplo ORDENE 3.
5.9. Tarjeta Dragon 12
5.10 Debug 12 de Freescale
6. Modelo ISA del 9S12. Parte III
6.1. Números binarios con y sin signo.
6.1.1. Números sin signo en base 2.
6.1.2. Números con signo en base 2.
6.1.3. Representación de números con signo en base 2.
6.1.4. Distinción de números con y sin signo.
6.2. Operaciones Artimeticas con signo
6.3. Instrucciones Aritméticas.
6.4. Conversión Binario a BCD.
7. Estructura de Programación Modular: Subrutinas.
7.1. La pila: Almacenamiento temporal de datos.
7.2. Instrucciones de salto y retorno de subrutina.
7.3. Paso de parámetros a Subrutinas.
7.3.1. Por registros internos de la CPU
7.3.2. Por direccionamiento directo a memoria.
7.3.3. Por direccionamiento indirecto a memoria.
7.3.4. Por Pila
7.3.5. Implícitamente.
7.4. Instrucciones LEA
7.5 Subrutinas del Debug 12
Parte II
Periféricos del 9S12
8. Estructuras de Entrada/Salida: Los puertos paralelos.
8.1. E/S mapeada a memoria y por instrucción (acceso directo).
8.2. Registros de Datos, Control y Estatus.
8.3. Capacidades de periféricos del S12
8.4. GPIO y PIM (Port Integration Module) del S12.
8.5. Módulo GPIO en Puertos Periféricos
8.6. Módulo GPIO en Puertos Core
8.7. Funciones adicionales y uso de GPIO en modo pulling
8.8. Ejemplo de GPIO por polling con la Dragon 12+
9. Sistema de Reloj y Excepciones.
9.1. Sistema de Reloj.
9.2. Excepciones del sistema
9.2.1. Prioridad de excepciones de Reset y No Mascarables
9.2.2 Interrupciones: Proceso de Atención
9.2.2.1. Interrupciones No Mascarables.
9.2.2.2. Trampas (Traps) e Interrupciones por Software (SWI).
9.2.2.3. Interrupciones Mascarables.
9.2.2.4. Tabla de Vectores de Excepciones.
9.2.2.5. Prioridad de Interrupciones mascarables
9.2.2.6. Procedimiento de Atención a Interrupciones
9.2.2.7. Interrupción externa Mascarable. Ejemplo con el Simulador
9.2.2.8. Interrupción del Reloj de Tiempo Real (RTI).
9.2.3. Excepciones de Reestablecimiento (Reset).
9.2.3.1. Clock Monitor Reset.
9.2.3.2. COP Reset.
9.2.4. PIO con Sincrconización
9.2.4.1. Estructuras de I/O condicional con Strobes.
9.2.4.2.Estructuras de I/O condiconal con Handshaking
9.2.4.3. Key Wakeups.
9.3 Programación por Máquinas de Estado. Ejemplo: Leer_PB
9.4 Lectura de Teclados matriciales
10. El módulo de Timer
10.1 Módulo Timer
10.2 Contador de Tiempo
10.3 Salida por comparación (Output Compare)
10.4 El caso especial del Canal 7
10.5 Captura de Entrada
10.6 Acumulador de Pulsos
10.7 Manejo de Pantallas
10.7.1 Pantallas Multiplexadas
10.7.2 Pantallas autocontenidas
11. Módulo de Conversión Analógica Digital.
11.1 Operación de los Convertidores A/D
11.2 Tipos de Convertidores A/D
11.3 Convertidores A/D de 9S12
11.4 Registros de los ATD
11.5 Ejemplo de conversión A/D
11.6 Disparo externo de ATD
11.7 Puerto ATD como entradas digitales
12. Comunicación Serial Asincrónica. Interfaz SCI
12.1 Conceptos de la Comunicación Serial.
12.2 La interfaz de Comunicación Serie (SCI)
12.3 Configuración de la Interfaz SCI
12.4 Operación de la Interfaz SCI
12.5 Interfaz de capa físcia: Estándares RS232/RS485
12.6 Comunicación serial con el terminal Putty
13. Comunicación serial Sincrónica: Interfaces SPI, IIC
13.1 Principio de operación de la comunicación sincrónica.
13.2 Interfaz Serial Sincrónica (SPI)
13.2.1. La interfaz de hardware SPI
13.2.2. Interfaz SPI del 9S12
13.2.3. Configuración básica SPI del 9S12
13.2.4. Configuración del formato de transferencia
13.2.5. Operación en modo bidireccional
13.2.6. El LTC1661
13.2.7. Ejemplo: Generador diente de sierra
13.3. Interfaz Inter-Integrated Communication (IIC)
13.3.1. Interfaz de hardware IIC
13.3.2. Principio de operación del bus IIC
13.3.3. Configuración de la interfaz IIC del 9S12
13.3.4 RTC para IIC: el DS1307
POR DEFINIR