CPU, memoria y periféricos: los bloques fundamentales
Comenzar arrow_downwardUn microcontrolador integra todo lo necesario para ejecutar programas en un solo chip.
Todo integrado: procesador, memoria y periféricos en un solo encapsulado.
Conecta CPU, memoria y periféricos. Todos comparten el mismo espacio de direcciones.
Los periféricos se acceden como posiciones de memoria. Escribir en una dirección puede encender un LED.
Diseñado para funciónar con baterías. Modos de bajo consumo integrados.
El procesador ejecuta las instrucciones de tu programa, una a una.
16 registros de 32 bits para operaciones rápidas
El Cortex-M4 incluye FPU opcional. El nRF52840 la tiene activada para cálculos con decimales.
La CPU lee la siguiente instrucción desde la memoria Flash usando el Program Counter (PC).
La CPU interpreta que operación debe realizar y que operandos necesita.
La ALU realiza la operación y guarda el resultado. El PC avanza a la siguiente instrucción.
A 64 MHz, el nRF52840 ejecuta hasta 64 millones de ciclos por segundo
Cada instrucción simple toma 1-3 ciclos
Donde vive tu código. No se borra al quitar la alimentación.
Los datos permanecen incluso sin alimentación. Tu programa sigue ahítras un reset.
La CPU puede ejecutar código directamente desde Flash (XIP - Execute In Place).
Escribir en Flash es lento (~ms) y requiere borrar sectores completos primero. No uses Flash como RAM.
~10,000 ciclos de escritura por sector. Suficiente para actualizaciones, no para logs constantes.
Donde viven las variables, la pila y los datos temporales durante la ejecución.
Variables locales, retornos de función
Memoria dinámica (malloc)
Variables globales sin inicializar
Variables globales inicializadas
Lectura y escritura en un solo ciclo de reloj. Ideal para variables que cambian frecuentemente.
Todo se pierde al quitar la alimentación. Tras un reset, la RAM contiene valores aleatorios.
256 KB parece poco, pero es suficiente si gestionas bien la memoria. Evita buffers innecesarios.
Hardware especializado que conecta el microcontrolador con el mundo exterior.
Pines configurables como entrada o salida. Controla LEDs, lee botones, genera señales digitales.
Puerto serie para debug y comunicación. Conecta con ordenadores o módulos externos.
Comunicación de alta velocidad con sensores, pantallas y memorias externas.
Conecta múltiples dispositivos con solo 2 cables. Ideal para sensores y EEPROMs.
Convierte señales analógicas a digitales. Lee sensores de temperatura, luz, etc.
Generan interrupciones periódicas, PWM para control de motores y LEDs.
Lo que hace especial al nRF52840 de Nordic Semiconductor.
El periférico estrella del nRF52840. Transceptor Bluetooth Low Energy de bajo consumo con soporte para BLE 5.0, Thread, Zigbee y protocolos propietarios.
Todo en un microcontrolador tiene una dirección. Haz clic en cada región para explorar.
Memoria no volátil donde se almacena el código del programa. La CPU ejecuta instrucciones directamente desde aquí.
Memoria volátil de acceso rápido. Aquí viven las variables, la pila y el heap durante la ejecución.
Los periféricos se controlan escribiendo y leyendo de direcciones específicas. Cada periférico tiene su rango reservado.
Registros del nucleo Cortex-M4: NVIC (interrupciones), SysTick (timer), Debug, etc.
En ARM, todos los periféricos se acceden como si fueran memoria. No hay instrucciones especiales de I/O.
Usar volátile siempre al acceder a periféricos. El compilador no debe optimizar estos accesos.
ARM Cortex-M4 con registros, ALU y ciclo fetch-decode-execute a 64 MHz.
1 MB no volátil para código. Lectura rápida, escritura lenta.
256 KB volátil para variables, pila y heap. Acceso rápido.
Todo tiene una dirección: Flash, RAM y periféricos en el mismo espacio.
"En un microcontrolador, escribir en una dirección puede encender un LED"
Memory-mapped I/O: la clave para entender el hardware embedded.
Ahora que conoces la arquitectura del nRF52840, vamos a configurar el entorno de desarrollo: nRF Connect SDK, VS Code y las herramientas de compilacion.
Continuar al Módulo 0.3 arrow_forward