Cómo crear definiciones de placa para hardware personalizado
Comenzar arrow_downwardEscenarios en los que necesitas crear tu propia definición de placa.
Una carpeta con archivos de configuración que describen tu hardware.
El SDK proporciona todo excepto la definición de tu placa.
Archivos obligatorios y opcionales de una board definition.
Metadatos: nombre legible, vendor, lista de SoCs soportados, variantes y revisiones.
Selecciona el SoC correcto (SOC_NRF52833_QIAA, etc.) cuando se elige esta placa.
Devicetree de la placa: incluye el DTSI del SoC y define LEDs, botones, periféricos.
Mapea señales de periféricos (UART TX/RX, SPI MOSI/MISO) a pines físicos del chip.
Kconfig defaults: habilita drivers necesarios, configura opciones típicas de la placa.
Valores por defecto condicionales: solo aplican cuando la placa está seleccionada.
El archivo de metadatos que identifica tu placa.
boards/vendor/.ns = TrustZone Non-Secure, xip = Execute-in-place.myboard/nrf52833 o myboard/nrf52833/ns para la variante non-secure.
Archivos de configuración del sistema operativo.
Este archivo indica qué SoC específico usa la placa. El sufijo (QIAA, QFAA) indica el package y variante.
Habilita drivers y features que siempre se necesitan en esta placa. Evita repetir estas opciones en cada proyecto.
{board}_{soc}_defconfig para que el build system lo encuentre automáticamente.
Describe el hardware específico de tu placa: includes y nodo raíz.
Incluye el DTSI del SoC (define periféricos base) y el pinctrl de la placa (asignación de pines).
Define qué periférico usa Zephyr para consola, shell, flash, etc. Son aliases del sistema.
Definición de LEDs, botones y habilitación de periféricos.
Compatibles estándar de Zephyr para LEDs y botones conectados a GPIO.
Habilita un periférico definido en el DTSI del SoC. Sin esto, queda deshabilitado.
Mapea señales de periféricos a pines físicos del chip.
A diferencia de otros microcontroladores, los nRF permiten mapear casi cualquier periférico a casi cualquier pin.
Configuración de pines para UART e I2C.
Agrupa pines con configuración similar. TX y RX van en grupos separados porque RX necesita pull-up.
Habilita resistencia pull-up interna en el pin. Común para RX y señales I2C.
Opciones para ubicar tu board definition.
Mantiene las definiciones separadas del proyecto y del SDK.
La definición vive junto con el código de la aplicación.
nrf-connect.boardRoots en settings.json con la ruta a tu directorio de boards.
Usa el asistente de nRF Connect for VS Code.
Conceptos clave para crear definiciones de placa personalizadas.
Carpeta con board.yml, devicetree, Kconfig y pinctrl que describe tu hardware.
Board → SoC → Family → Series → CPU → Arch. Solo defines el nivel Board.
NRF_PSEL() mapea señales de periféricos a pines físicos del SoC.
"Una buena definición de placa es la base de un producto robusto."
Invierte tiempo en definir correctamente tu hardware desde el principio. Facilita el desarrollo, testing y mantenimiento a largo plazo.
Cómo actualizar el firmware de forma segura en dispositivos desplegados.