Memorias en Computadoras y Microcontroladores. Arquitectura PIC

Tipos de memorias, comparativas, ejemplos prácticos y arquitectura de microcontroladores PIC.

💡 Memorias y Arquitectura PIC

Explora los tipos de memoria

RAM (Memoria de Acceso Aleatorio)
Volátil, muy rápida, almacena datos temporales. Tipos: SRAM (caché), DRAM (RAM principal). Ejemplo: Arduino UNO tiene 2 KB de SRAM.

Tabla comparativa de memorias

TipoVolatilidadReprogramableVelocidadCiclos de EscrituraEjemplo de Uso
RAMVolátilMuy rápidaIlimitadosMemoria temporal
ROMNo volátilNo--Firmware
EPROMNo volátilSí (con UV)Media~1,000Desarrollo
EEPROMNo volátilSí (eléctrico)Lenta~100,000Configuraciones
FlashNo volátilSí (eléctrico)Rápida>1,000,000Programas

Arquitectura y Memoria en PIC

GamaCaracterísticasEjemploAplicación
BajaLimitados periféricos, bajo costo.PIC10FJuguetes, controles simples.
MediaMemoria moderada, periféricos estándar.PIC16F84AElectrónica doméstica, proyectos educativos.
AltaMayor memoria, periféricos avanzados (USB, Ethernet).PIC18FAutomatización industrial, IoT.

Los PIC usan arquitectura Harvard (buses separados para datos e instrucciones).

Ejemplo práctico con Arduino (EEPROM vs. Flash)

#include <EEPROM.h>
void setup() {
  EEPROM.write(0, 123);  // Guarda '123' en dirección 0 de EEPROM
  int valor = EEPROM.read(0);  // Lee el valor
}
void loop() {}

Flash almacena el programa (no se modifica en ejecución). EEPROM almacena datos persistentes (ej: configuración).

Ejemplo práctico: Encender un LED con un botón en Wokwi (PIC16F84A)

1. Componentes a usar en Wokwi

  • 1 x PIC16F84A
  • 1 x LED
  • 1 x Resistencia (220Ω para el LED)
  • 1 x Pulsador (Pushbutton)
  • 1 x Resistencia (10kΩ para pull-down del botón)

2. Conexiones sugeridas

[Botón]---[10kΩ]---GND
   |
  RA0 (pin 17)

RB0 (pin 6)---[220Ω]---[LED]---GND
  • El botón conecta RA0 a VCC cuando se presiona (usa el editor visual de Wokwi para conectar).
  • El LED conecta RB0 a GND a través de la resistencia.

3. Código ensamblador para PIC16F84A

; Configurar GPIO
BSF STATUS, RP0   ; Ir al Banco 1
MOVLW 0x01        ; RA0 como entrada (botón)
MOVWF TRISA       
MOVLW 0x00        ; RB0 como salida (LED)
MOVWF TRISB       
BCF STATUS, RP0   ; Volver al Banco 0

; Bucle principal
LOOP:
    BTFSS PORTA, 0  ; ¿Botón presionado?
    GOTO APAGAR     
    BSF PORTB, 0    ; Enciende LED
    GOTO LOOP
APAGAR:
    BCF PORTB, 0    ; Apaga LED
    GOTO LOOP

¿Cómo ejecutar código PIC en Wokwi? (Paso a paso)

  1. Abre el simulador PIC en Wokwi (ver abajo).
  2. Arrastra los componentes y realiza las conexiones como se indica arriba.
  3. Haz clic en "Edit Code", borra el código de ejemplo y pega el código ensamblador.
  4. Haz clic en "Start Simulation" y prueba el botón: el LED debe encenderse solo cuando el botón está presionado.

Simulador online PIC en Wokwi

Puedes probar y ejecutar los códigos de los ejemplos prácticos en línea usando el simulador de Wokwi:

Si el simulador no carga correctamente, abre el siguiente enlace en una nueva pestaña: Wokwi Arduino Simulator

Conclusión

  • RAM es esencial para el rendimiento en tiempo de ejecución.
  • ROM/Flash almacenan programas de manera permanente.
  • EEPROM es ideal para datos configurables.
  • La Flash domina en dispositivos modernos por su equilibrio entre velocidad, costo y durabilidad.
  • Los PIC son versátiles y se usan desde proyectos simples hasta industriales.
  • Su arquitectura Harvard y bancos de memoria optimizan el rendimiento.
  • GPIO, timers e interrupciones son esenciales para aplicaciones embebidas.