-
Notifications
You must be signed in to change notification settings - Fork 227
Open
Description
Hi, I was having difficulties using UART communication between P4 and C6 with my custom firmware and after some debugging I initially suspected DMA interference or electrical noise from XCLK, but testing confirmed the issue is purely software-related (RTC GPIO reconfiguration).
Environment
- Development Kit: (ESP32-P4-EYE)
- ESP-IDF Version: v5.5.1
- BSP Version: espressif/esp32_p4_eye from esp-dev-kits (commit 602c810)
- Affected Component:
bsp_p4_eye_init()inesp32_p4_eye.c - Hardware Setup:
- ESP32-P4 (main processor)
- ESP32-C6 (coprocessor for WiFi/Bluetooth communication via UART2)
Problem Description
When using the ESP32-P4-EYE board with an ESP32-C6 coprocessor communicating via UART, calling bsp_p4_eye_init() resets the C6, breaking UART communication.
The issue is caused by this line in esp32_p4_eye.c:368:
rtc_gpio_init(BSP_C6_EN_PIN); // GPIO 9This reconfigures the C6's enable pin (GPIO 9), causing the C6 to reset and lose its initialized state (WiFi connection, network stack, etc.).
Impact
This affects any application that:
- Uses the BSP (
bsp_p4_eye_init()) to initialize the board - Relies on ESP32-C6 coprocessor for network connectivity
- Needs the C6 to remain running after P4 initialization
Symptoms:
- C6 stops responding to UART commands after
bsp_p4_eye_init() - UART communication works perfectly in isolated tests
- C6 must be re-initialized after P4 BSP init, losing connection state
Steps to Reproduce
- Setup: Connect ESP32-C6 to ESP32-P4 via UART2 (TX: GPIO35, RX: GPIO36)
- C6 Firmware: Initialize WiFi and wait for connection
- P4 Firmware:
- Wait for C6 to signal ready (e.g., "C6_READY" via UART)
- Call
bsp_p4_eye_init()
- Observe: C6 stops responding, UART communication fails
Metadata
Metadata
Assignees
Labels
No labels