177 lines
5.4 KiB
Markdown
177 lines
5.4 KiB
Markdown
# HubAudio — SPI Bus Map
|
|
|
|
**Progetto:** HubAudio
|
|
**Revisione:** definitiva
|
|
**Data:** 2026-08-23
|
|
|
|
## SPI Bus Architecture
|
|
|
|
HubAudio utilizza un bus SPI principale con ESP32-S31-WROOM-3 come master.
|
|
|
|
Il bus principale condivide:
|
|
|
|
- `SPI_SCLK`
|
|
- `SPI_MOSI`
|
|
- `SPI_MISO`
|
|
|
|
Ogni slave dispone di una propria linea Chip Select (`CS`).
|
|
|
|
---
|
|
|
|
## SPI Main Bus
|
|
|
|
| IC | Dispositivo | Ruolo | CS |
|
|
|---|---|---|---|
|
|
| U5 | XTAC5212IRGER | Audio Codec | `SPI_CODEC_CS` |
|
|
| U34 | MCP23S17-E/ML | Device Manager A | `SPI_DEV_MAN_A_CS` |
|
|
| U36 | MCP23S17-E/ML | Device Manager B | `SPI_DEV_MAN_B_CS` |
|
|
| U18 | ADAU1467WBCPZ300R | Audio DSP | `SPI_ADAU1467_CS` |
|
|
| U12 | Si4684-A10-GM | Radio | `SPI_SI4684_CS` |
|
|
| U10 | W25Q128JVS | Flash | `SPI_W25Q128_CS` |
|
|
| U30 | SC16IS740IPW,128 | UART Bridge | `SPI_UART_CS` |
|
|
|
|
### Shared SPI Signals
|
|
|
|
| Segnale | Funzione |
|
|
|---|---|
|
|
| `SPI_SCLK` | SPI Clock |
|
|
| `SPI_MOSI` | Master Out / Slave In |
|
|
| `SPI_MISO` | Master In / Slave Out |
|
|
|
|
Il master SPI è l'**ESP32-S31-WROOM-3 (U11)**.
|
|
|
|
Le linee `SPI_SCLK`, `SPI_MOSI` e `SPI_MISO` sono condivise tra gli slave
|
|
del bus principale.
|
|
|
|
Le linee `CS` sono indipendenti e vengono utilizzate per selezionare
|
|
un singolo slave alla volta.
|
|
|
|
---
|
|
|
|
## Chip Select
|
|
|
|
| CS | Slave |
|
|
|---|---|
|
|
| `SPI_CODEC_CS` | U5 — TAC5212 |
|
|
| `SPI_DEV_MAN_A_CS` | U34 — MCP23S17 |
|
|
| `SPI_DEV_MAN_B_CS` | U36 — MCP23S17 |
|
|
| `SPI_ADAU1467_CS` | U18 — ADAU1467 |
|
|
| `SPI_SI4684_CS` | U12 — Si4684 |
|
|
| `SPI_W25Q128_CS` | U10 — W25Q128JVS |
|
|
| `SPI_UART_CS` | U30 — SC16IS740 |
|
|
|
|
---
|
|
|
|
# Private SPI Buses
|
|
|
|
Alcuni dispositivi dispongono di una memoria SPI dedicata e non fanno
|
|
parte del bus SPI principale dell'ESP32.
|
|
|
|
## ADAU1467 — Private SPI
|
|
|
|
| Master | Slave | Dispositivo |
|
|
|---|---|---|
|
|
| U18 | U24 | 25AA1024-I/SM |
|
|
|
|
**Master:** ADAU1467
|
|
**Slave:** 25AA1024 SPI EEPROM
|
|
|
|
La memoria U24 utilizza il bus SPI privato dell'ADAU1467.
|
|
|
|
U24 **non** è uno slave del bus SPI principale dell'ESP32 e pertanto non
|
|
possiede una linea `CS` appartenente al namespace `SPI_*` del bus principale.
|
|
|
|
---
|
|
|
|
## Si4684 — Private SPI
|
|
|
|
| Master | Slave | Dispositivo |
|
|
|---|---|---|
|
|
| U12 | U27 | W25Q16JW |
|
|
|
|
**Master:** Si4684
|
|
**Slave:** W25Q16JW SPI Flash
|
|
|
|
La memoria U27 utilizza il bus SPI privato del Si4684.
|
|
|
|
U27 **non** è uno slave del bus SPI principale dell'ESP32 e pertanto non
|
|
possiede una linea `CS` appartenente al namespace `SPI_*` del bus principale.
|
|
|
|
---
|
|
|
|
# SPI Topology
|
|
|
|
```text
|
|
ESP32-S31-WROOM-3
|
|
U11
|
|
│
|
|
┌─────────────┼─────────────┐
|
|
│ │ │
|
|
SPI_SCLK SPI_MOSI SPI_MISO
|
|
│ │ │
|
|
┌─────────┴─────────────┴─────────────┴─────────┐
|
|
│ SPI MAIN BUS │
|
|
│ │
|
|
├── U5 TAC5212 ← SPI_CODEC_CS │
|
|
├── U34 MCP23S17 ← SPI_DEV_MAN_A_CS │
|
|
├── U36 MCP23S17 ← SPI_DEV_MAN_B_CS │
|
|
├── U18 ADAU1467 ← SPI_ADAU1467_CS │
|
|
├── U12 Si4684 ← SPI_SI4684_CS │
|
|
├── U10 W25Q128JVS ← SPI_W25Q128_CS │
|
|
└── U30 SC16IS740 ← SPI_UART_CS │
|
|
│
|
|
└────────────────────────────────────────────────┘
|
|
|
|
|
|
PRIVATE SPI BUS PRIVATE SPI BUS
|
|
ADAU1467 Si4684
|
|
U18 U12
|
|
│ │
|
|
│ SPI │ SPI
|
|
▼ ▼
|
|
U24 25AA1024 U27 W25Q16JW
|
|
SPI Slave Summary
|
|
Bus Master Slave Device
|
|
Main SPI ESP32 U11 U5 TAC5212
|
|
Main SPI ESP32 U11 U34 MCP23S17
|
|
Main SPI ESP32 U11 U36 MCP23S17
|
|
Main SPI ESP32 U11 U18 ADAU1467
|
|
Main SPI ESP32 U11 U12 Si4684
|
|
Main SPI ESP32 U11 U10 W25Q128JVS
|
|
Main SPI ESP32 U11 U30 SC16IS740
|
|
Private SPI ADAU1467 U18 U24 25AA1024
|
|
Private SPI Si4684 U12 U27 W25Q16JW
|
|
Design Rules
|
|
SPI_SCLK, SPI_MOSI e SPI_MISO del bus principale sono condivisi tra
|
|
tutti gli slave del bus.
|
|
Ogni slave del bus principale deve avere una propria linea CS.
|
|
Deve essere attivo un solo CS alla volta durante una transazione SPI.
|
|
U24 e U27 non appartengono al bus SPI principale.
|
|
U24 è controllata direttamente dall'ADAU1467.
|
|
U27 è controllata direttamente dal Si4684.
|
|
I Chip Select dei bus privati non devono essere confusi con i CS
|
|
del bus SPI principale dell'ESP32.
|
|
La nomenclatura SPI_*_CS identifica esclusivamente le linee Chip Select
|
|
del bus SPI principale.
|
|
Main SPI Chip Select Map
|
|
SPI_CODEC_CS → U5 TAC5212
|
|
SPI_DEV_MAN_A_CS → U34 MCP23S17
|
|
SPI_DEV_MAN_B_CS → U36 MCP23S17
|
|
SPI_ADAU1467_CS → U18 ADAU1467
|
|
SPI_SI4684_CS → U12 Si4684
|
|
SPI_W25Q128_CS → U10 W25Q128JVS
|
|
SPI_UART_CS → U30 SC16IS740
|
|
Stato
|
|
|
|
SPI principale: 7 slave.
|
|
|
|
SPI privato ADAU1467: 1 slave.
|
|
|
|
SPI privato Si4684: 1 slave.
|
|
|
|
Totale dispositivi SPI: 9.
|
|
|
|
Master SPI principale: ESP32-S31-WROOM-3.
|
|
|
|
Master SPI privati: ADAU1467 e Si4684.
|