Files
HubAudio/docs/architecture/HubAudio-SPI-Architecture.md
T

5.4 KiB

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

                         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.