|
|
@@ -52,35 +52,30 @@ component.
|
|
|
|
|
|
## Hardware target
|
|
|
|
|
|
-Starting point is DatanoiseTV's reference pinout for the **ESP32-P4-NANO**
|
|
|
-board — confirm/update against whatever board this actually gets deployed on:
|
|
|
+Target board: **Waveshare ESP32-P4-ETH**
|
|
|
+([product](https://www.waveshare.com/esp32-p4-eth.htm) ·
|
|
|
+[wiki](https://www.waveshare.com/wiki/ESP32-P4-ETH)). Ethernet via IP101 GRI
|
|
|
+PHY (RMII); onboard ES8311 codec + amplifier + microphone + 8Ω speaker
|
|
|
+connector; 32 MB PSRAM, 32 MB NOR flash. Pins below are confirmed against the
|
|
|
+board's published pinout / ESPHome device profile and are mirrored in
|
|
|
+`main/board_config.h`.
|
|
|
|
|
|
| Function | GPIO | Notes |
|
|
|
|---|---|---|
|
|
|
-| Ethernet MDC | 31 | |
|
|
|
+| Ethernet MDC | 31 | IP101 GRI, PHY addr 1 |
|
|
|
| Ethernet MDIO | 52 | |
|
|
|
-| Ethernet REF_CLK | 50 | External 50MHz crystal |
|
|
|
+| Ethernet REF_CLK | 50 | 50 MHz reference |
|
|
|
| Ethernet PHY_RST | 51 | |
|
|
|
-| I2S MCLK | 13 | 18.432MHz via APLL |
|
|
|
-| I2S BCLK | 36 | (onboard: 12) |
|
|
|
-| I2S LRCLK | 33 | (onboard: 10) |
|
|
|
-| I2S DOUT | 32 | (onboard: 9) |
|
|
|
-| I2S DIN | 11 | Codec ADC input |
|
|
|
-| PA Enable | 53 | Active high |
|
|
|
-| I2C SCL / SDA | 8 / 7 | ES8311 control |
|
|
|
-
|
|
|
-Ethernet PHY: IP101 GRI via RMII. Onboard codec: ES8311 + NS4150B amp.
|
|
|
-
|
|
|
-> **Unresolved — confirm against the actual board.** The I2S rows above are
|
|
|
-> not internally consistent. BCLK/LRCLK/DOUT (36/33/32) are the *external
|
|
|
-> DAC* pins from the upstream example, while DIN (11) is the *onboard ES8311*
|
|
|
-> ADC pin — the upstream example's active config actually uses DIN=21 for an
|
|
|
-> external ADC. Decide whether this build targets the **onboard ES8311**
|
|
|
-> (MCLK 13, BCLK 12, LRCLK 10, DOUT 9, DIN 11) or an **external DAC/ADC**
|
|
|
-> (MCLK 13, BCLK 36, LRCLK 33, DOUT 32, DIN 21), then make the table,
|
|
|
-> `main/board_config.h`, and the ES8311 vs. external assumption in
|
|
|
-> `main/main.c` all agree. Current `board_config.h` mirrors the table above
|
|
|
-> verbatim (external data pins + onboard DIN) and is therefore a placeholder.
|
|
|
+| I2S MCLK | 13 | 18.432 MHz via APLL |
|
|
|
+| I2S BCLK | 12 | bit clock |
|
|
|
+| I2S LRCLK | 10 | word/frame clock |
|
|
|
+| I2S DOUT | 9 | data out → ES8311 DAC |
|
|
|
+| I2S DIN | 11 | data in ← ES8311 ADC / mic |
|
|
|
+| PA Enable | 53 | active high (speaker amp) |
|
|
|
+| I2C SCL / SDA | 8 / 7 | ES8311 control (addr 0x18) |
|
|
|
+
|
|
|
+Fixed EMAC RMII data pins (not software-configurable, listed for reference):
|
|
|
+TXD0/1 = 34/35, RXD0/1 = 30/29, TX_EN = 49, CRS_DV = 28.
|
|
|
|
|
|
## Repo layout
|
|
|
|
|
|
@@ -103,15 +98,14 @@ idf.py flash monitor
|
|
|
```
|
|
|
|
|
|
`components/aes67` is vendored in (from `aes67-esp32p4`, Apache-2.0) and
|
|
|
-`main/` wires it up via `main/board_config.h`. Not yet build-verified in this
|
|
|
-environment — needs an ESP-IDF v5.5+ toolchain and, before flashing, the
|
|
|
-pinout confirmation noted above.
|
|
|
+`main/` wires it up via `main/board_config.h` (pins confirmed for the
|
|
|
+Waveshare ESP32-P4-ETH). Not yet build-verified — needs an ESP-IDF v5.5+
|
|
|
+toolchain.
|
|
|
|
|
|
## Roadmap
|
|
|
|
|
|
- [x] Fork `aes67-esp32p4`'s `components/aes67` in as the starting point
|
|
|
-- [ ] Confirm pinout against actual target hardware (see note above — I2S rows
|
|
|
- are inconsistent and `board_config.h` is a placeholder)
|
|
|
+- [x] Confirm pinout against actual target hardware (Waveshare ESP32-P4-ETH)
|
|
|
- [ ] Build-verify with ESP-IDF v5.5+ (`idf.py set-target esp32p4 build`)
|
|
|
- [ ] Get AES67 send/receive verified against real Dante gear in AES67 mode
|
|
|
- [x] Write clean-room Dante protocol notes (`docs/dante-protocol-notes.md`)
|