Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Depuración del sistema dual-core Arduino Portenta H7 con Segger J-Link

Componentes y suministros

Arduino Portenta H7×1
Placa Breakout Arduino Portenta H7×1
Sonda de depuración Segger J-Link×1
Adaptador Cortex M Segger×1

Aplicaciones y servicios online

Descripción del proyecto

El Arduino Portenta H7 ofrece una potente arquitectura dual-core: un Cortex-M7 a 480 MHz y un Cortex-M4 a 240 MHz. Los dos núcleos pueden ejecutar firmware independiente y comunicarse mediante memoria compartida o semáforos.

Depurar ambos núcleos simultáneamente requiere una interfaz SWD dedicada y un depurador que soporte sesiones multi-target. En esta guía mostramos cómo usar un Segger J-Link para conectar a cada núcleo, configurar el entorno de desarrollo, y ejecutar un ejemplo blink simple que demuestra el control independiente del LED de cada núcleo.

Configuración de hardware

  1. Monta el Portenta H7 en su placa breakout. La placa expone un header de 20 pines estilo MIPS que conecta a los pines SWD de ambos núcleos.
  2. Conecta un conversor MIPS de 20 pines al header del breakout para separar las señales de depuración.
  3. Cablea el conversor al Segger J-Link según el diagrama de pinout abajo. Si prefieres una solución personalizada, usa conectores de paso 0.05 pulgadas y sigue el cableado de ejemplo mostrado en la segunda imagen.
Depuración del sistema dual-core Arduino Portenta H7 con Segger J-Link
Depuración del sistema dual-core Arduino Portenta H7 con Segger J-Link

Configuración de software

  1. Instala el Arduino IDE (descarga desde sitio web Arduino).
  2. Instala Microsoft Visual Studio (2017, 2019 o 2022) y la extensión Visual Micro (instrucciones completas en el sitio de Visual Micro).
  3. Añade el paquete Arduino Mbed OS Portenta Boards vía Visual Micro Explorer o el Board Manager en Arduino IDE.
  4. Reemplaza el driver USB en la Interfaz 0 del Segger J-Link con el driver WinUSB usando Zadig. Un video tutorial corto está enlazado abajo.

Vamos a programar

Prepara dos proyectos separados, uno para cada núcleo. Los siguientes ejemplos Blink encienden un LED diferente en cada núcleo y pueden depurarse independientemente.

Importante: En el proyecto M7 llama a bootM4() al inicio de setup() para asegurar que ambos núcleos estén activos.

Configuración de depuración: Núcleo M7

Abre el sketch M7 en Visual Studio, ve a Debug > Hardware y selecciona Segger J-Link Debugger (no la versión NoOpenOCD). Compila y sube el sketch al núcleo M7.

Depuración del sistema dual-core Arduino Portenta H7 con Segger J-Link

Configuración de depuración: Núcleo M4

Abre el sketch M4, elige Debug > Hardware, y selecciona Segger J-Link Debugger (NoOpenOCD). Compila y sube al núcleo M4.

Iniciar el depurador

Primero lanza una sesión de depuración para el sketch M7 usando Debug > Attach to Process. Repite el mismo paso para el sketch M4. Ahora puedes establecer puntos de ruptura en cualquiera de los proyectos, pausar, paso a paso, o continuar independientemente —cada núcleo responde a sus propios comandos.

Depuración del sistema dual-core Arduino Portenta H7 con Segger J-Link

Video tutorial

Mira una demostración paso a paso en YouTube:

Depuración Portenta H7 Dual-Core con Segger J-Link

Enlaces útiles

Código

Código Blink Núcleo M4

// Blink en el núcleo M4 del Portenta
void setup() { 
  pinMode(LED_BLUE, OUTPUT); 
} 
void loop() { 
  digitalWrite(LED_BLUE, HIGH); 
  delay(1000); 
  digitalWrite(LED_BLUE, LOW); 
  delay(1000); 
}

Código Blink Núcleo M7

// Blink en el núcleo M7 del Portenta
void setup() { 
  bootM4(); // Activar el núcleo M4 
  pinMode(LED_RED, OUTPUT); 
} 
void loop() { 
  digitalWrite(LED_RED, HIGH); 
  delay(1000); 
  digitalWrite(LED_RED, LOW); 
  delay(1000); 
}

Esquemáticos

Cómo conectar los pines SWD en la Breakout Board al Segger J-Link:

Depuración del sistema dual-core Arduino Portenta H7 con Segger J-Link

Proceso de manufactura

  1. Construye un Spybot controlado por Bluetooth con Arduino
  2. FlickMote: Mando IR por gestos para Smart Home
  3. TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
  4. Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
  5. Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
  6. Soluciones de Alimentación Optimizadas para Proyectos Arduino
  7. Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
  8. Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso
  9. Construye un volante joystick personalizado con Arduino para gaming
  10. Construye una Máquina CNC Totalmente Funcional con Arduino Nano R3
  11. Arduino lanza Portenta H7: Board IoT industrial‑grade debuta en CES