docs: aggiornati ADR 002 e 003 per SPI e audio routing

This commit is contained in:
2026-08-01 21:53:34 +02:00
parent 9699d8441c
commit 30f2656c85
2 changed files with 149 additions and 18 deletions
+40 -17
View File
@@ -23,18 +23,19 @@ audio transport interface.
## Decision ## Decision
The SPI architecture is divided into independent domains. The SPI architecture is divided into independent functional domains.
The ESP32-S3 operates as the master of the system control SPI bus. The ESP32-S3 operates as the master of the system control SPI bus.
The ADAU1467 and Si4684 expose SPI slave interfaces for external configuration. The ADAU1467 and Si4684 expose SPI slave interfaces for external
configuration and control.
Each device maintains its own internal SPI master domain for accessing local The internal management of each device remains under the responsibility of
memories or peripherals. the device itself.
## Architecture ## Architecture
System control bus: System control SPI domain:
ESP32-S3 ESP32-S3
@@ -47,8 +48,10 @@ System control bus:
SPI SLAVE SPI SLAVE SPI SLAVE SPI SLAVE
## ADAU1467 Configuration Domain
ADAU1467 local memory: The ADAU1467 manages its own external configuration memory through its
internal SPI master interface.
ADAU1467 ADAU1467
@@ -57,37 +60,57 @@ ADAU1467 local memory:
| |
25AA1024 25AA1024
DSP Configuration Memory
DSP Program / Configuration Memory
Si4684 local memory: The ESP32-S3 controls the ADAU1467 through the external SPI interface but
does not directly access the DSP configuration memory during normal
operation.
Si4684 ## Si4684 Firmware Domain
The Si4684 firmware loading and configuration process is managed through
commands exchanged on the external SPI control interface.
ESP32-S3
SPI MASTER SPI MASTER
| |
Firmware Memory Si4684
|
Internal Firmware Loader
|
Internal RAM
The ESP32-S3 controls the initialization process but does not directly access
the internal operational memory of the Si4684.
## Consequences ## Consequences
### Positive ### Positive
- Clear ownership of every SPI bus - Clear ownership of every SPI interface
- No bus contention between devices
- Reduced electrical loading - Reduced electrical loading
- Independent firmware management - Independent device initialization
- Easier debugging - Easier debugging and validation
### Negative ### Negative
- Multiple SPI peripherals are required - Multiple control interfaces are required
- Firmware coordination is required between domains - Firmware update procedures must coordinate different device domains
## Rationale ## Rationale
The ESP32-S3 supervises the system but does not replace the internal The ESP32-S3 supervises the complete HubAudio system but does not replace the
controllers of specialized devices. internal controllers of specialized devices.
Each component remains responsible for its own functional domain. Each component remains responsible for its own functional domain.
The control plane and the audio plane remain architecturally separated.
@@ -0,0 +1,108 @@
# ADR-003: I2S Audio Routing Architecture
- Status: Accepted
- Date: 2026-08-01
- Decision Type: Audio Architecture
## Context
HubAudio integrates multiple digital audio sources and destinations:
Sources:
- ESP32-S3 streaming subsystem
- Si4684 radio receiver
- Bluetooth receiver
- Optical digital input
Destinations:
- Analog audio output through CODEC/DAC
- Bluetooth transmission
- Optical digital output
A deterministic and scalable digital audio routing architecture is required.
## Decision
The ADAU1467 is the central routing element of the Audio Domain.
Each major audio device is assigned to a dedicated serial audio interface.
The preferred architecture is:
One audio device = One dedicated I2S interface
The ADAU1467 operates as the audio timing reference.
External audio devices operate as I2S slaves whenever supported.
## Audio Input Allocation
| ADAU1467 Port | Device | Function |
|---|---|---|
| SDATA_IN0 | ESP32-S3 | Network audio stream |
| SDATA_IN1 | Si4684 | Radio audio |
| SDATA_IN2 | DECODEC | Optical digital input |
| SDATA_IN3 | Bluetooth RX | Wireless audio input |
ESP32-S3 --------
Si4684 ---------
DECODEC ----------+---- ADAU1467
BT RX ---------/
## Audio Output Allocation
| ADAU1467 Port | Device | Function |
|---|---|---|
| SDATA_OUT0 | CODEC/DAC | Analog audio output |
| SDATA_OUT1 | Bluetooth TX | Wireless audio output |
| SDATA_OUT2 | ENCODEC | Optical digital output |
| SDATA_OUT3 | Reserved | Future expansion |
ADAU1467
|
+------------+------------+
| | |
CODEC BTTX ENCODEC
## Clocking
The ADAU1467 provides the master audio timing reference.
The audio clock domain consists of:
- MCLK
- BCLK
- LRCLK
All connected audio peripherals must operate synchronized to this clock
domain.
## Consequences
### Positive
- Deterministic audio timing
- Simple routing model
- Independent audio channels
- Easier debugging
- Future expansion capability
### Negative
- Higher pin usage
- More PCB routing resources required
- Peripheral selection must consider I2S slave capability
## Rationale
HubAudio prioritizes signal integrity, maintainability and deterministic
audio behavior over maximum bus utilization.
The ADAU1467 acts as the central audio router of the system.