Refactor HubAudio architecture domains and add documentation tooling
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# ADR-001: ADAU1467 as Audio Domain Master
|
||||
# ADR-001: Audio Processor as Audio Domain Master
|
||||
|
||||
- Status: Accepted
|
||||
- Date: 2026-08-01
|
||||
@@ -9,8 +9,8 @@
|
||||
HubAudio is designed as a modular digital audio platform integrating several
|
||||
audio sources and destinations:
|
||||
|
||||
- ESP32-S3 streaming subsystem
|
||||
- Si4684 radio receiver
|
||||
- System Controller streaming subsystem
|
||||
- Radio Receiver radio receiver
|
||||
- Bluetooth RX/TX modules
|
||||
- Digital audio converters
|
||||
- Analog CODEC/DAC stages
|
||||
@@ -22,13 +22,13 @@ The system requires a central component responsible for:
|
||||
- timing synchronization
|
||||
- audio stream management
|
||||
|
||||
The ADAU1467 has been selected as the central audio processor.
|
||||
The Audio Processor has been selected as the central audio processor.
|
||||
|
||||
## Decision
|
||||
|
||||
The ADAU1467 is the master component of the HubAudio Audio Domain.
|
||||
The Audio Processor is the master component of the HubAudio Audio Domain.
|
||||
|
||||
The ADAU1467 is responsible for:
|
||||
The Audio Processor is responsible for:
|
||||
|
||||
- DSP processing
|
||||
- audio routing
|
||||
@@ -37,10 +37,10 @@ The ADAU1467 is responsible for:
|
||||
- audio clock generation
|
||||
- synchronization of external audio peripherals
|
||||
|
||||
The ADAU1467 is considered the audio domain master.
|
||||
The Audio Processor is considered the audio domain master.
|
||||
|
||||
The ESP32-S3 participates in the Audio Domain as a digital audio source. It does not act as the audio timing master or routing controller. Its role inside the audio domain is equivalent to other digital audio sources.
|
||||
The ESP32-S3 has a dual role:
|
||||
The System Controller participates in the Audio Domain as a digital audio source. It does not act as the audio timing master or routing controller. Its role inside the audio domain is equivalent to other digital audio sources.
|
||||
The System Controller has a dual role:
|
||||
|
||||
- audio source inside the Audio Domain
|
||||
system supervisor inside the Control Domain
|
||||
@@ -71,7 +71,7 @@ It operates as system supervisor and is responsible for:
|
||||
|
||||
## Rationale
|
||||
|
||||
The ADAU1467 is selected not only as a DSP processor but as the central
|
||||
The Audio Processor is selected not only as a DSP processor but as the central
|
||||
controller of the digital audio domain.
|
||||
|
||||
This decision defines the HubAudio architecture.
|
||||
|
||||
@@ -11,9 +11,9 @@ control and firmware management.
|
||||
|
||||
The main devices involved are:
|
||||
|
||||
- ESP32-S3 system controller
|
||||
- ADAU1467 audio processor
|
||||
- Si4684 radio receiver
|
||||
- System Controller system controller
|
||||
- Audio Processor audio processor
|
||||
- Radio Receiver radio receiver
|
||||
|
||||
A clear separation between system control and internal device management is
|
||||
required.
|
||||
@@ -25,9 +25,9 @@ audio transport interface.
|
||||
|
||||
The SPI architecture is divided into independent functional domains.
|
||||
|
||||
The ESP32-S3 operates as the master of the system control SPI bus.
|
||||
The System Controller operates as the master of the system control SPI bus.
|
||||
|
||||
The ADAU1467 and Si4684 expose SPI slave interfaces for external
|
||||
The Audio Processor and Radio Receiver expose SPI slave interfaces for external
|
||||
configuration and control.
|
||||
|
||||
The internal management of each device remains under the responsibility of
|
||||
@@ -37,48 +37,48 @@ the device itself.
|
||||
|
||||
System control SPI domain:
|
||||
|
||||
ESP32-S3
|
||||
System Controller
|
||||
|
||||
SPI MASTER
|
||||
|
||||
|
|
||||
+---------+---------+
|
||||
| |
|
||||
ADAU1467 Si4684
|
||||
Audio Processor Radio Receiver
|
||||
|
||||
SPI SLAVE SPI SLAVE
|
||||
|
||||
## ADAU1467 Configuration Domain
|
||||
## Audio Processor Configuration Domain
|
||||
|
||||
The ADAU1467 manages its own external configuration memory through its
|
||||
The Audio Processor manages its own external configuration memory through its
|
||||
internal SPI master interface.
|
||||
|
||||
ADAU1467
|
||||
Audio Processor
|
||||
|
||||
SPI MASTER
|
||||
|
||||
|
|
||||
|
||||
25AA1024
|
||||
Audio EEPROM
|
||||
|
||||
DSP Program / Configuration Memory
|
||||
|
||||
The ESP32-S3 controls the ADAU1467 through the external SPI interface but
|
||||
The System Controller controls the Audio Processor through the external SPI interface but
|
||||
does not directly access the DSP configuration memory during normal
|
||||
operation.
|
||||
|
||||
## Si4684 Firmware Domain
|
||||
## Radio Receiver Firmware Domain
|
||||
|
||||
The Si4684 firmware loading and configuration process is managed through
|
||||
The Radio Receiver firmware loading and configuration process is managed through
|
||||
commands exchanged on the external SPI control interface.
|
||||
|
||||
ESP32-S3
|
||||
System Controller
|
||||
|
||||
SPI MASTER
|
||||
|
||||
|
|
||||
|
||||
Si4684
|
||||
Radio Receiver
|
||||
|
||||
|
|
||||
|
||||
@@ -88,8 +88,8 @@ commands exchanged on the external SPI control interface.
|
||||
|
||||
Internal RAM
|
||||
|
||||
The ESP32-S3 controls the initialization process but does not directly access
|
||||
the internal operational memory of the Si4684.
|
||||
The System Controller controls the initialization process but does not directly access
|
||||
the internal operational memory of the Radio Receiver.
|
||||
|
||||
## Consequences
|
||||
|
||||
@@ -108,7 +108,7 @@ the internal operational memory of the Si4684.
|
||||
|
||||
## Rationale
|
||||
|
||||
The ESP32-S3 supervises the complete HubAudio system but does not replace the
|
||||
The System Controller supervises the complete HubAudio system but does not replace the
|
||||
internal controllers of specialized devices.
|
||||
|
||||
Each component remains responsible for its own functional domain.
|
||||
|
||||
@@ -10,8 +10,8 @@ HubAudio integrates multiple digital audio sources and destinations:
|
||||
|
||||
Sources:
|
||||
|
||||
- ESP32-S3 streaming subsystem
|
||||
- Si4684 radio receiver
|
||||
- System Controller streaming subsystem
|
||||
- Radio Receiver radio receiver
|
||||
- Bluetooth receiver
|
||||
- Optical digital input
|
||||
|
||||
@@ -25,7 +25,7 @@ A deterministic and scalable digital audio routing architecture is required.
|
||||
|
||||
## Decision
|
||||
|
||||
The ADAU1467 is the central routing element of the Audio Domain.
|
||||
The Audio Processor is the central routing element of the Audio Domain.
|
||||
|
||||
Each major audio device is assigned to a dedicated serial audio interface.
|
||||
|
||||
@@ -35,36 +35,36 @@ The preferred architecture is:
|
||||
One audio device = One dedicated I2S interface
|
||||
|
||||
|
||||
The ADAU1467 operates as the audio timing reference.
|
||||
The Audio Processor operates as the audio timing reference.
|
||||
|
||||
External audio devices operate as I2S slaves whenever supported.
|
||||
|
||||
## Audio Input Allocation
|
||||
|
||||
| ADAU1467 Port | Device | Function |
|
||||
| Audio Processor Port | Device | Function |
|
||||
|---|---|---|
|
||||
| SDATA_IN0 | ESP32-S3 | Network audio stream |
|
||||
| SDATA_IN1 | Si4684 | Radio audio |
|
||||
| SDATA_IN0 | System Controller | Network audio stream |
|
||||
| SDATA_IN1 | Radio Receiver | Radio audio |
|
||||
| SDATA_IN2 | DECODEC | Optical digital input |
|
||||
| SDATA_IN3 | Bluetooth RX | Wireless audio input |
|
||||
|
||||
|
||||
ESP32-S3 --------
|
||||
Si4684 ---------
|
||||
DECODEC ----------+---- ADAU1467
|
||||
System Controller --------
|
||||
Radio Receiver ---------
|
||||
DECODEC ----------+---- Audio Processor
|
||||
BT RX ---------/
|
||||
|
||||
|
||||
## Audio Output Allocation
|
||||
|
||||
| ADAU1467 Port | Device | Function |
|
||||
| Audio Processor 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
|
||||
Audio Processor
|
||||
|
||||
|
|
||||
+------------+------------+
|
||||
@@ -73,7 +73,7 @@ BT RX ---------/
|
||||
|
||||
## Clocking
|
||||
|
||||
The ADAU1467 provides the master audio timing reference.
|
||||
The Audio Processor provides the master audio timing reference.
|
||||
|
||||
The audio clock domain consists of:
|
||||
|
||||
@@ -105,4 +105,4 @@ domain.
|
||||
HubAudio prioritizes signal integrity, maintainability and deterministic
|
||||
audio behavior over maximum bus utilization.
|
||||
|
||||
The ADAU1467 acts as the central audio router of the system.
|
||||
The Audio Processor acts as the central audio router of the system.
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
HubAudio integra sottosistemi con caratteristiche elettriche molto differenti:
|
||||
|
||||
- elaborazione digitale (ESP32-S3)
|
||||
- elaborazione digitale (System Controller)
|
||||
- DSP audio
|
||||
- ricevitore radio
|
||||
- Bluetooth
|
||||
|
||||
Reference in New Issue
Block a user