Hello everyone,
We are currently developing an 8-node phase-coherent WiFi CSI (Channel State Information) channel sounder using the ESP32-C5 for academic MIMO propagation research.
To maintain phase coherence across all receiver nodes and eliminate inter-node Carrier Frequency Offset (CFO), we must share a common frequency reference. According to Espressif’s ESP-Techpedia documentation, the “esp-crab” project handles multi-antenna RF phase synchronization via a common crystal.
However, we have run into a critical hardware roadblock, and the hardware design files (schematics, BOM) for the esp-crab example are missing from Espressif’s repository [https://github.com/espressif/esp-csi/tree/master/examples/esp-crab\].
The Problem: We are attempting a master/slave clock topology, but the slave ESP32-C5 microcontrollers fail to boot when driven by the shared clock source.
Because the reference schematics are unavailable, we are flying blind regarding the specific hardware requirements for external clocking on this chip. We have also opened an issue on GitHub (Issue #259 on espressif/esp-csi) but are hoping someone in the community or the DigiKey engineering team might have experience with this.
Our specific questions are:
-
Boot Requirements: Are there specific eFuse configurations, strapping pin states, or input voltage swing requirements on
XTAL_Pto allow the ESP32-C5 to boot successfully without a dedicated crystal? -
Pin Treatment: What is the proper hardware treatment of the
XTAL_PandXTAL_Npins on the slave chips? (e.g., shouldXTAL_Nbe left floating, AC-coupled to GND, or actively driven?) -
Internal Oscillator: How does the internal Pierce oscillator behave when driven externally, and does it need to be explicitly disabled to prevent startup hangs?
-
Topology: Is a dedicated clock fanout buffer strictly required to scale this reliably to an 8-node setup, or can the master drive them directly with appropriate impedance matching?
If anyone has successfully implemented a shared clock architecture on the ESP32-C5 (or similar ESP32-C series) or has insights into the undocumented boot requirements for external clocking, your guidance would be greatly appreciated. We are finalizing our custom PCB design and this is our last major hurdle.
Thank you in advance!