← Inicio
Tecnologías y plataformas
Lenguajes de programación, plataformas de hardware, buses y herramientas — la elección sigue los requisitos del proyecto, no mis preferencias.
Esta página ofrece una visión compacta de las tecnologías con las que trabajo. La lista no es exhaustiva — nombra las plataformas, lenguajes y herramientas frecuentes en mis proyectos o que considero especialmente relevantes para el desarrollo embebido. Si su plataforma específica no aparece aquí, no significa necesariamente falta de experiencia; en proyectos embebidos los conceptos suelen trasladarse a otras plataformas en cuanto la tarea queda clara.
Lenguajes
1. Lenguajes de programación y HDL
Elección del lenguaje según la tarea: próximo al hardware y eficiente en recursos en C o ensamblador, orientado a objetos en C++, lógica FPGA en VHDL y SystemVerilog, herramientas y análisis en Python.
- C — lenguaje principal para firmware de microcontrolador, de bare-metal a FreeRTOS
- C++ — para aplicaciones embebidas más complejas con estructuras de objeto, conforme a MISRA si se requiere
- Ensamblador — bajo restricciones extremas, para drivers de hardware, código de arranque e ingeniería inversa
- VHDL — diseños FPGA con fuerte claridad estructural
- SystemVerilog — desarrollo FPGA moderno, testbenches, verificación
- Verilog — descripción FPGA clásica
- Python — automatización de pruebas, scripts, análisis de datos, backends web
- Kotlin — para aplicaciones Android de acompañamiento a dispositivos embebidos
- JavaScript / HTML / CSS — frontends web e interfaces de configuración
MCU
2. Plataformas de microcontrolador
Experiencia con todas las plataformas de microcontrolador establecidas en el mercado embebido — del ARM Cortex de alto rendimiento al chip Atmel optimizado en coste, como microcontrolador desnudo o como plataforma de placa tipo Arduino o BeagleBone.
- ARM Cortex-M — la plataforma estándar para requisitos medios
- ARM Cortex-A — cuando se requiere Linux o más potencia de cálculo
- ESP32 — aplicaciones embebidas con Wi-Fi/Bluetooth
- Atmel / Microchip AVR — p. ej. familia ATmega para proyectos sensibles al precio
- Arduino — prototipado rápido, docencia y demostraciones
- BeagleBone — plataforma ARM Cortex-A con Linux para aplicaciones más exigentes
- Microcontroladores con memoria mínima — bare-metal, sin RTOS (proyecto Stihl como ejemplo, véase referencias)
- más plataformas a petición
FPGA
3. Plataformas FPGA
Desarrollo FPGA de la especificación a la verificación. Énfasis en productos Xilinx, familiarizado con las cadenas de herramientas modernas y los métodos de verificación.
- Xilinx Artix-7 — FPGAs eficientes en coste para tareas de control y procesamiento de señal
- Xilinx Zynq — plataforma combinada ARM+FPGA para sistemas complejos
- Vivado — cadena de herramientas para síntesis, implementación y programación
- Icarus Verilog / Verilator — simuladores open source para iteración rápida
- Testbenches en SystemVerilog — verificación estructurada de diseños FPGA
Bus
4. Buses y protocolos de comunicación
Experiencia con buses establecidos en los entornos de automoción, industrial y embebido — desde la implementación próxima al hardware al diagnóstico.
- CAN / CAN FD — estándar de automoción e industrial
- MOST — bus de infoentretenimiento con experiencia del proyecto Audi (véase referencias)
- Ethernet / EtherCAT — comunicación industrial en tiempo real
- SPI / I²C / UART — interfaces estándar para sensores y periféricos
- UDS (ISO 14229) — protocolo de diagnóstico para unidades de control
- WebSocket / MQTT — para conexiones IoT y nube
RTOS
5. Sistemas operativos de tiempo real y frameworks
Elección de la arquitectura de software según los requisitos del proyecto — desde bare-metal en microcontroladores limitados a sistemas operativos de tiempo real multinúcleo completos.
- Bare-metal — cuando memoria y determinismo importan
- FreeRTOS — estándar de facto para RTOS en microcontrolador
- Arquitecturas multinúcleo — reparto de tareas entre varios núcleos
- Linux embebido — en plataformas tipo BeagleBone, cuando las aplicaciones lo aprovechan
Herramientas
6. Herramientas, frameworks de prueba e IDEs
Las herramientas son medios. Trabajo con lo que conviene al proyecto — y me familiarizo rápidamente con cadenas de herramientas desconocidas si son relevantes para el proyecto.
- Vector CANoe / CAPL — estándar para pruebas de automoción y simulación de bus
- LabView — software de medida y control
- Robot Framework — automatización de pruebas de extremo a extremo
- Bancos HIL — hardware-in-the-loop para pruebas integradas de sistema
- Pulsonix — herramienta de esquemático y diseño PCB
- Vivado — cadena de herramientas FPGA Xilinx
- Git / GitLab — control de versiones y revisión de código
- Wireshark — análisis de red y bus
Web/App
7. Tecnologías web y de app (software de acompañamiento)
Cuando los dispositivos embebidos necesitan una interfaz de configuración, un panel o una aplicación móvil, también puedo entregar el software de acompañamiento.
- JavaScript / HTML / CSS — frontends web
- Chart.js — visualización de datos en navegador
- Python / Flask — backends web
- Node.js — componentes de servidor
- Socket.IO / WebSocket / MQTT — transmisión de datos en tiempo real
- Kotlin — aplicaciones Android para dispositivos embebidos
- APIs REST — interfaces estandarizadas entre embebido y nube
Lo que no aparece en esta lista
Esta página nombra las tecnologías frecuentemente utilizadas — no es un catálogo completo. Si su plataforma, lenguaje o herramienta no figura aquí, sigue mereciendo la pena hablarlo. En desarrollo embebido, lo que importa al final no es tanto qué cadena de herramientas concreta se conoce, sino con qué rapidez se adopta una nueva y con qué profundidad se entienden los conceptos subyacentes.