Mapa mental de arquitectura de microcontroladores modernos (PIC18F4550), toda la información fue tomada de la siguiente fuente:
[1] Microchip Technology Inc., PIC18F2455/2550/4455/4550 Data Sheet: 28/40/44-Pin, High-Performance, Enhanced Flash, USB Microcontrollers with nanoWatt Technology, 2006. [Online]. Available: https://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf
Como los dispositivos con arquitectura Harvard, las memorias
de datos y de programa utilizan buses separados; esto permite
el acceso simultaneo a los dos espacios de memoria.
Conjunto de instrucciones
RISC
75 instrucciones estándar, ampliables a 83 con las
instrucciones extendidas habilitadas.
Pipeline
Un 'Ciclo de Instrucción' consta de cuatro ciclos Q: Q1 a Q4. La búsqueda (fetch) y ejecución
(execute) de instrucciones están en Pipeline" de tal manera que la búsqueda de
instrucciones toma un ciclo de instrucción, mientras que la decodificación (decode) y
ejecución toman otro ciclo de instrucción. Sin embargo, debido al Pipeline, cada instrucción
se ejecuta efectivamente en un solo ciclo. Si una instrucción causa un cambio en el contador
de programa (program counter) (por ejemplo, GOTO), entonces se requieren dos ciclos para
completar la instrucción.
Memoria
Memoria de
programa
Annotations:
De 32 Kbytes
RAM de
datos
Annotations:
2 Kbytes
EEPROM de
datos
Annotations:
256 Bytes
La EEPROM de datos, para fines prácticos, puede considerarse
como un periférico, ya que se direcciona y accede a través de
un conjunto de registros de control.
Periféricos Embebidos
Interrupciones
20 fuentes de
interrupción
Temporizadores
Incluye 4 temporizadores (Timer0 a Timer3)
Módulos Capture/Compare/PWM
Incluye CCP(Capture/Compare/PWM) y ECCP
(Enhanced Capture/Compare/PWM)
Comunicaciones
serial
Incluye MSSP (SPI, I2C) y USART mejorado.
USB 2.0
ADC
De 10 bits, 13
canales
Watchdog Timer (WDT)
El WDT es controlado por la fuente INTRC. Cuando se activa el WDT, también se activa la fuente de
reloj. El periodo nominal del WDT es de 4 ms y tiene la misma estabilidad que el oscilador INTRC.
Configuración del Reloj
Modos del oscilador
Annotations:
Los usuarios pueden programar la configuración de los bits FOSC3:FOSC0 para seleccionar uno de estos modos.
Oscilador de resonadores de cristal/cerámica
En los modos de oscilador HS, HSPLL, XT y XTPLL, se
conecta un cristal o resonador cerámico a los pins
OSC1 y OSC2 para establecer la oscilación.
Annotations:
También se puede utilizar un reloj externo cuando el microcontrolador está en modo de oscilador HS. En este caso, el pin OSC2/CLKO se deja abierto.
Entrada de reloj
externo
Los modos de oscilador EC, ECIO, ECPLL y ECPIO
requieren una fuente de reloj externa conectada al
pin OSC1. No se requiere tiempo de arranque del
oscilador tras un reinicio o tras salir del modo de
reposo.
Annotations:
En los modos de oscilador EC y ECPLL, la frecuencia del oscilador dividida entre 4 está disponible en el pin OSC2.
Los modos de oscilador ECIO y ECPIO funcionan como los modos EC y ECPLL, excepto que el pin OSC2 se convierte en un pin de entrada/salida de propósito general adicional. El pin de entrada/salida se convierte en el bit 6 de PORTA (RA6).
Multiplicador de frecuencia
PLL
Se proporciona específicamente para aplicaciones USB con osciladores de baja velocidad y
también se puede utilizar como fuente de reloj del microcontrolador. El PLL está habilitado en
los modos del oscilador HSPLL, XTPLL, ECPLL y ECPIO. Está diseñado para producir un reloj de
referencia fijo de 96 MHz a partir de una entrada fija de 4 MHz. La salida puede dividirse y
utilizarse tanto para el USB como para el reloj central del microcontrolador.
Annotations:
Como el PLL tiene una entrada y una salida de frecuencia fija, hay ocho opciones de preescalado para adaptar la frecuencia de entrada del oscilador al PLL. También hay una opción de postescalado separada para derivar el reloj del microcontrolador del PLL. Esto permite que el periférico USB y el microcontrolador utilicen la misma entrada de oscilador y funcionen a velocidades de reloj diferentes. A diferencia del postescalador para los modos XT, HS y EC, las opciones disponibles son 1/2, 1/3, 1/4 y 1/6 de la salida PLL. Los modos HSPLL, ECPLL y ECPIO hacen uso del oscilador del modo HS para frecuencias de hasta 48 MHz. El preescalador divide la entrada del oscilador hasta en 12 para producir el impulso de 4 MHz para el PLL. El modo XTPLL sólo puede utilizar una frecuencia de entrada de 4 MHz que acciona el PLL directamente.
Manejo de Puertos
Puertos
A-E
PORTA es un puerto de entrada/salida bidireccional de 8 bits.
PORTB es un puerto de entrada/salida bidireccional de 8 bits
PORTC es un puerto de entrada/salida bidireccional de 7 bits.
PORTD es un puerto de entrada/salida bidireccional o un Puerto Paralelo de Streaming (SPP) de 8
bits. Este puerto tiene búferes de entrada TTL cuando el módulo SPP está habilitado.
PORTE es un puerto de entrada/salida bidireccional de 4 bits.
Configuración de
entradas/salidas
Registro TRIS, registro de dirección de datos. Mediante este registro se configuran cada una de las
líneas de entrada/salida del puerto como Entrada (bit correspondiente a 1) o como SALIDA (bit
correspondiente a 0).
Registro PORT, lee los niveles de los pines en el dispositivo. Mediante este registro se puede leer el
estado de los pines y se puede establecer el valor de salida.
LAT controla el valor de salida de los pines para evitar
problemas con lecturas y escrituras simultáneas.