2978 lines
28 KiB
Markdown
2978 lines
28 KiB
Markdown
# HubAudio
|
|
## Modular Network Audio Platform
|
|
### Hardware Architecture and Engineering Design Document
|
|
|
|
**Project:** HubAudio
|
|
**Document:** Hardware Architecture Specification
|
|
**Revision:** 0.1
|
|
**Status:** Design Phase
|
|
**Target MCU:** ESP32-S3
|
|
**Architecture:** Modular Audio Processing Platform
|
|
|
|
---
|
|
|
|
# 1. Introduction
|
|
|
|
HubAudio is a modular high-quality network audio platform designed around a central DSP audio architecture.
|
|
|
|
The goal is not to create a simple Internet radio, but a flexible audio processing system capable of integrating multiple digital audio sources:
|
|
|
|
- FM radio
|
|
- DAB/DAB+ radio
|
|
- Bluetooth audio
|
|
- Network streaming
|
|
- Future digital sources
|
|
|
|
All audio sources are converted into a common digital audio stream and processed by a dedicated DSP before being sent to the final audio output stage.
|
|
|
|
The core design philosophy is:
|
|
|
|
> Keep the audio path fully digital until the final DAC stage.
|
|
|
|
The system is designed as a professional embedded audio platform, with concepts derived from industrial and commercial audio products:
|
|
|
|
- modular hardware blocks
|
|
- independent firmware management
|
|
- device identification
|
|
- firmware update capability
|
|
- replaceable source modules
|
|
- DSP-based audio processing
|
|
|
|
|
|
---
|
|
|
|
# 2. Design Goals
|
|
|
|
## Primary objectives
|
|
|
|
The HubAudio platform shall provide:
|
|
|
|
- High quality audio processing
|
|
- Multiple independent audio sources
|
|
- Network connectivity
|
|
- Bluetooth integration
|
|
- Digital signal processing
|
|
- Expandability
|
|
- Long-term maintainability
|
|
|
|
|
|
## Audio sources
|
|
|
|
The initial supported sources are:
|
|
|
|
| Source | Device |
|
|
|-|-|
|
|
| FM/DAB+ Radio | Skyworks Si4684 |
|
|
| Bluetooth TX | FSC-BT1035 |
|
|
| Bluetooth RX | FSC-BT1026 or equivalent |
|
|
| Network Audio | ESP32-S3 |
|
|
|
|
|
|
---
|
|
|
|
# 3. System Overview
|
|
|
|
The system is composed of four main functional blocks:
|
|
|
|
HUBAUDIO
|
|
|
|
|
|
ESP32-S3
|
|
|
|
|
System control / Network / MQTT
|
|
|
|
|
+-------------------+-------------------+
|
|
| | |
|
|
| | |
|
|
Si4684 BT RX Module BT1035
|
|
FM/DAB+ A2DP Sink A2DP Source
|
|
| | |
|
|
| | |
|
|
+-------------------+-------------------+
|
|
|
|
|
|
|
I2S
|
|
|
|
|
|
|
|
|
|
ADAU1467 DSP
|
|
|
|
|
|
|
|
|
|
DAC Stage
|
|
|
|
|
|
|
|
|
|
Power Amplifier
|
|
|
|
|
|
|
|
---
|
|
|
|
# 4. System Philosophy
|
|
|
|
## Modular approach
|
|
|
|
Each functional block is considered an independent subsystem.
|
|
|
|
Modules:
|
|
+-----------------------------+
|
|
| Audio Module |
|
|
| |
|
|
| Processing IC |
|
|
| EEPROM Identification |
|
|
| Firmware Storage |
|
|
| Local configuration |
|
|
| I2S Interface |
|
|
| Control Interface |
|
|
+-----------------------------+
|
|
|
|
Every module shall contain:
|
|
|
|
- hardware identification
|
|
- revision information
|
|
- serial number
|
|
- configuration data
|
|
|
|
|
|
The identification device is:
|
|
|
|
|
|
24AA025E48T-I/OT
|
|
|
|
|
|
which provides:
|
|
|
|
- EEPROM memory
|
|
- factory programmed MAC address
|
|
- unique identification
|
|
|
|
|
|
---
|
|
|
|
# 5. Global Architecture
|
|
|
|
## Control domain
|
|
|
|
The ESP32-S3 is the system controller.
|
|
|
|
Responsibilities:
|
|
|
|
- WiFi connection
|
|
- MQTT communication
|
|
- Web interface
|
|
- OTA updates
|
|
- module discovery
|
|
- configuration management
|
|
- power sequencing
|
|
|
|
|
|
The ESP32-S3 does NOT process the main audio stream.
|
|
|
|
Audio remains outside the MCU.
|
|
|
|
---
|
|
|
|
## Audio domain
|
|
|
|
The audio domain is controlled by:
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
The DSP is the central audio router.
|
|
|
|
Responsibilities:
|
|
|
|
- equalization
|
|
- filters
|
|
- crossover
|
|
- volume control
|
|
- loudness
|
|
- audio routing
|
|
- room correction
|
|
|
|
|
|
---
|
|
|
|
# 6. Audio Data Flow
|
|
|
|
|
|
## Bluetooth reception
|
|
|
|
Example:
|
|
|
|
|
|
Smartphone
|
|
|
|
|
|
|
|
|
Bluetooth A2DP
|
|
|
|
|
|
|
|
|
BT RX Module
|
|
|
|
|
|
|
|
|
I2S
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
|
DAC
|
|
|
|
|
|
|
|
|
Amplifier
|
|
|
|
|
|
|
|
---
|
|
|
|
## Bluetooth transmission
|
|
|
|
Example:
|
|
|
|
|
|
Radio / Streaming
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
|
I2S
|
|
|
|
|
|
|
|
|
BT1035
|
|
|
|
|
|
|
|
|
Bluetooth TX
|
|
|
|
|
|
|
|
|
Headphones
|
|
|
|
|
|
|
|
---
|
|
|
|
## Radio reception
|
|
|
|
|
|
|
|
Antenna
|
|
|
|
|
|
|
|
|
Si4684
|
|
|
|
|
|
|
|
|
I2S
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
|
DAC
|
|
|
|
|
|
|
|
---
|
|
|
|
# 7. Power Architecture
|
|
|
|
The system shall use separated power domains.
|
|
|
|
|
|
Recommended domains:
|
|
|
|
|
|
|
|
VIN
|
|
|
|
|
|
|
|
|
+----------------+
|
|
|
|
|
+-- Digital 3.3V
|
|
|
|
|
| ESP32-S3
|
|
| EEPROM
|
|
| Control IC
|
|
|
|
|
|
|
|
+-- Audio 3.3V
|
|
|
|
|
| ADAU1467
|
|
| Audio modules
|
|
|
|
|
|
|
|
+-- RF supply
|
|
Si4684
|
|
Bluetooth modules
|
|
|
|
|
|
|
|
Important:
|
|
|
|
RF and audio domains must be isolated from noisy digital switching sources.
|
|
|
|
|
|
---
|
|
|
|
# 8. Firmware Storage Concept
|
|
|
|
|
|
The system supports independent firmware storage.
|
|
|
|
Example:
|
|
|
|
|
|
|
|
ESP32 Flash
|
|
|
|
|
|
|
|
|
|
+-- HubAudio Firmware
|
|
|
|
SPI Flash
|
|
|
|
|
|
|
|
|
|
+-- Si4684 firmware
|
|
|
|
SPI Flash
|
|
|
|
|
|
|
|
|
|
+-- ADAU1467 DSP program
|
|
|
|
|
|
|
|
The ESP32-S3 manages:
|
|
|
|
- firmware verification
|
|
- checksum
|
|
- update
|
|
- programming sequence
|
|
|
|
|
|
---
|
|
|
|
# 9. Update Procedure
|
|
|
|
|
|
Firmware update sequence:
|
|
|
|
|
|
ESP32 receives firmware
|
|
Disable audio modules
|
|
Power down Si4684 / ADAU1467
|
|
Program external memory
|
|
Verify checksum
|
|
Restart module
|
|
Resume operation
|
|
|
|
|
|
This avoids requiring direct programming access during normal operation.
|
|
|
|
|
|
---
|
|
|
|
# 10. Hardware Design Rules
|
|
|
|
|
|
## Clocking
|
|
|
|
I2S requires careful definition:
|
|
|
|
Possible configurations:
|
|
|
|
### Option A
|
|
|
|
ADAU1467 as I2S master.
|
|
|
|
Advantages:
|
|
|
|
- single audio clock source
|
|
- better synchronization
|
|
|
|
|
|
### Option B
|
|
|
|
Source modules as masters.
|
|
|
|
Requires:
|
|
|
|
- clock switching
|
|
- sample rate management
|
|
|
|
|
|
Preferred:
|
|
|
|
ADAU1467 master.
|
|
|
|
|
|
---
|
|
|
|
# 11. Open Engineering Points
|
|
|
|
The following points require verification during schematic phase:
|
|
|
|
|
|
## I2S topology
|
|
|
|
Need to verify:
|
|
|
|
- master/slave capability of each module
|
|
- supported sample rates
|
|
- MCLK requirement
|
|
|
|
|
|
## Bluetooth Gateway Function
|
|
|
|
The system intentionally separates:
|
|
|
|
- Bluetooth RX
|
|
- Bluetooth TX
|
|
|
|
because simultaneous A2DP RX/TX operation on a single Bluetooth module is not guaranteed.
|
|
|
|
|
|
The chosen architecture is:
|
|
|
|
|
|
|
|
BT RX Module
|
|
|
|
BT1035 TX Module
|
|
|
|
ADAU1467 routing
|
|
|
|
|
|
|
|
This provides reliable simultaneous operation.
|
|
|
|
---
|
|
# 12. ESP32-S3 System Controller
|
|
|
|
## 12.1 Overview
|
|
|
|
The ESP32-S3 is the main system controller of HubAudio.
|
|
|
|
It is responsible for:
|
|
|
|
- system initialization
|
|
- network communication
|
|
- MQTT management
|
|
- Web interface
|
|
- OTA firmware updates
|
|
- module identification
|
|
- power management
|
|
- configuration storage
|
|
- communication with audio peripherals
|
|
|
|
|
|
The ESP32-S3 is NOT part of the main audio signal chain.
|
|
|
|
The audio stream shall never pass through the MCU.
|
|
|
|
---
|
|
|
|
# 12.2 ESP32-S3 Main Interfaces
|
|
|
|
The ESP32-S3 communicates with the audio modules using:
|
|
|
|
|
|
| Function | Interface |
|
|
|-|-|
|
|
| Si4684 control | SPI |
|
|
| ADAU1467 control | I2C/SPI |
|
|
| Bluetooth modules | UART |
|
|
| EEPROM identification | I2C |
|
|
| Audio control | GPIO |
|
|
| Power management | GPIO |
|
|
|
|
---
|
|
|
|
# 12.3 Recommended ESP32-S3 Connections
|
|
|
|
|
|
## Power Supply
|
|
|
|
ESP32-S3 requires:
|
|
|
|
- 3.3V regulated supply
|
|
- low noise supply
|
|
- adequate decoupling close to pins
|
|
|
|
|
|
Recommended:
|
|
|
|
|
|
3.3V
|
|
|
|
|
|
|
+---- 10uF
|
|
|
|
|
+---- 100nF
|
|
|
|
|
ESP32-S3 VDD
|
|
|
|
|
|
|
|
Important:
|
|
|
|
The ESP32-S3 has high current peaks during WiFi transmission.
|
|
|
|
The regulator must support:
|
|
|
|
- >500mA transient capability
|
|
- low output impedance
|
|
|
|
|
|
Recommended regulators:
|
|
|
|
- TPS62162
|
|
- AP63203
|
|
- similar low noise buck converters
|
|
|
|
|
|
---
|
|
|
|
# 12.4 Important GPIO Considerations
|
|
|
|
|
|
ESP32-S3 pins have boot functions.
|
|
|
|
Avoid using boot-sensitive pins for critical peripherals.
|
|
|
|
Important signals:
|
|
|
|
|
|
## EN
|
|
|
|
Chip enable:
|
|
|
|
|
|
EN
|
|
|
|
HIGH = normal operation
|
|
LOW = reset
|
|
|
|
|
|
|
|
Recommended:
|
|
|
|
- RC reset network
|
|
- external supervisor optional
|
|
|
|
|
|
---
|
|
|
|
## UART
|
|
|
|
Recommended:
|
|
|
|
|
|
ESP32-S3 TX
|
|
|
|
|
|
|
|
Module RX
|
|
|
|
ESP32-S3 RX
|
|
|
|
|
|
|
|
Module TX
|
|
|
|
|
|
|
|
Used for:
|
|
|
|
- Bluetooth configuration
|
|
- module diagnostics
|
|
|
|
|
|
---
|
|
|
|
## I2C Bus
|
|
|
|
|
|
Shared bus:
|
|
|
|
|
|
|
|
ESP32-S3
|
|
|
|
SDA
|
|
|
|
|
+---- 24AA025E48
|
|
|
|
|
+---- ADAU1467
|
|
|
|
|
+---- sensors / expansion
|
|
|
|
SCL
|
|
|
|
|
+---- devices
|
|
|
|
|
|
|
|
Recommended pull-ups:
|
|
|
|
Typically:
|
|
|
|
2.2k - 4.7k
|
|
|
|
depending on bus length.
|
|
|
|
|
|
---
|
|
|
|
# 12.5 ESP32-S3 Firmware Architecture
|
|
|
|
|
|
Software layers:
|
|
|
|
|
|
|
|
Application
|
|
|
|
|
|
|
|
|
|
HubAudio Manager
|
|
|
|
|
|
|
+----------------+
|
|
| |
|
|
Drivers Network
|
|
|
|
|
|
|
Hardware abstraction
|
|
|
|
|
|
|
ESP32 HAL
|
|
|
|
|
|
|
|
The MCU shall manage modules as independent devices.
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
detect modules
|
|
|
|
read EEPROM
|
|
|
|
load configuration
|
|
|
|
initialize devices
|
|
|
|
start audio routing
|
|
|
|
|
|
|
|
---
|
|
|
|
# 13. Skyworks Si4684 Radio Module
|
|
|
|
|
|
## 13.1 Overview
|
|
|
|
|
|
The Si4684 is the selected radio receiver IC.
|
|
|
|
|
|
Functions:
|
|
|
|
- FM receiver
|
|
- AM receiver
|
|
- DAB/DAB+
|
|
- RDS/RBDS
|
|
- digital audio output
|
|
|
|
|
|
The device is selected because it integrates:
|
|
|
|
- RF receiver
|
|
- digital demodulation
|
|
- audio processing
|
|
- DAB stack
|
|
|
|
|
|
The Si4684 is treated as a complete radio subsystem.
|
|
|
|
|
|
---
|
|
|
|
# 13.2 Si4684 System Architecture
|
|
|
|
|
|
|
|
Antenna
|
|
|
|
|
|
|
|
|
RF Matching
|
|
|
|
|
|
|
|
|
Si4684
|
|
|
|
|
|
|
|
|
Digital Audio I2S
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
---
|
|
|
|
# 13.3 Si4684 Control Interface
|
|
|
|
|
|
The preferred interface:
|
|
|
|
SPI
|
|
|
|
|
|
Connections:
|
|
|
|
|
|
|
|
ESP32-S3 Si4684
|
|
|
|
SPI CLK -----------> SCLK
|
|
|
|
SPI MOSI ----------> SDIO
|
|
|
|
SPI CS ------------> CS
|
|
|
|
GPIO --------------> RESET
|
|
|
|
GPIO <-------------- IRQ
|
|
|
|
|
|
|
|
---
|
|
|
|
# 13.4 Important Si4684 Pins
|
|
|
|
|
|
## VDD
|
|
|
|
|
|
Requirements:
|
|
|
|
- clean 3.3V supply
|
|
- RF filtering required
|
|
|
|
|
|
Recommended:
|
|
|
|
|
|
|
|
3.3V
|
|
|
|
|
|
|
Ferrite bead
|
|
|
|
|
|
|
|
|
Si4684 VDD
|
|
|
|
|
|
|
100nF
|
|
1uF
|
|
10uF
|
|
|
|
|
|
|
|
The RF section is sensitive to noise.
|
|
|
|
|
|
---
|
|
|
|
## RESET
|
|
|
|
|
|
Active low.
|
|
|
|
|
|
Recommended:
|
|
|
|
|
|
|
|
ESP GPIO
|
|
|
|
|
|
|
|
|
RESET
|
|
|
|
|
|
|
|
|
10k pull-up
|
|
|
|
|
|
|
|
|
3.3V
|
|
|
|
|
|
|
|
The MCU must control reset during startup.
|
|
|
|
|
|
---
|
|
|
|
## IRQ
|
|
|
|
|
|
Interrupt output.
|
|
|
|
|
|
Used for:
|
|
|
|
- data ready
|
|
- command completion
|
|
- events
|
|
|
|
|
|
Connection:
|
|
|
|
|
|
|
|
Si4684 IRQ
|
|
|
|
|
|
|
|
|
ESP32 GPIO interrupt
|
|
|
|
|
|
|
|
---
|
|
|
|
# 13.5 Si4684 Audio Interface
|
|
|
|
|
|
Digital output:
|
|
|
|
|
|
|
|
Si4684
|
|
|
|
BCLK
|
|
|
|
|
LRCLK
|
|
|
|
|
DATA
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
Preferred:
|
|
|
|
- 24 bit audio
|
|
- 48kHz sample rate
|
|
|
|
|
|
---
|
|
|
|
# 13.6 Si4684 Firmware Management
|
|
|
|
|
|
Important design issue:
|
|
|
|
|
|
The Si4684 requires firmware loading.
|
|
|
|
|
|
The architecture includes:
|
|
|
|
|
|
|
|
SPI Flash
|
|
|
|
|
|
|
|
|
Si4684 firmware
|
|
|
|
|
|
|
|
|
ESP32-S3 loader
|
|
|
|
|
|
|
|
Startup sequence:
|
|
|
|
|
|
|
|
Power ON
|
|
|
|
|
|
|
|
|
ESP32 starts
|
|
|
|
|
|
|
|
|
Keep Si4684 reset
|
|
|
|
|
|
|
|
|
Load firmware
|
|
|
|
|
|
|
|
|
Release RESET
|
|
|
|
|
|
|
|
|
Initialize radio
|
|
|
|
|
|
|
|
---
|
|
|
|
# 13.7 Si4684 PCB Recommendations
|
|
|
|
|
|
RF section:
|
|
|
|
|
|
Must be physically separated from:
|
|
|
|
- DC/DC converters
|
|
- digital switching
|
|
- WiFi antenna
|
|
|
|
|
|
Recommended PCB placement:
|
|
|
|
|
|
|
|
+--------------------------+
|
|
|
|
RF AREA
|
|
|
|
Antenna
|
|
Matching
|
|
Si4684
|
|
|
|
DIGITAL AREA
|
|
|
|
ESP32
|
|
DSP
|
|
Power
|
|
|
|
+--------------------------+
|
|
|
|
|
|
|
|
---
|
|
|
|
# 13.8 Si4684 Design Risks
|
|
|
|
|
|
## Firmware availability
|
|
|
|
The firmware is proprietary.
|
|
|
|
The project must consider:
|
|
|
|
- legal firmware distribution
|
|
- firmware update method
|
|
- version control
|
|
|
|
|
|
The binary firmware shall be stored separately from source code.
|
|
|
|
|
|
---
|
|
|
|
## RF layout
|
|
|
|
The PCB RF layout is critical.
|
|
|
|
Must follow:
|
|
|
|
- antenna impedance rules
|
|
- controlled impedance traces
|
|
- ground plane continuity
|
|
|
|
|
|
---
|
|
|
|
# 13.9 Si4684 Summary
|
|
|
|
|
|
Role:
|
|
|
|
FM/DAB radio source.
|
|
|
|
|
|
Interface:
|
|
|
|
SPI + I2S.
|
|
|
|
|
|
Connection:
|
|
|
|
|
|
ESP32-S3
|
|
|
|
SPI
|
|
|
|
Si4684
|
|
|
|
I2S
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
The Si4684 is considered a replaceable radio module.
|
|
|
|
|
|
(Fine Parte 2)
|
|
|
|
|
|
---
|
|
|
|
# 14. Analog Devices ADAU1467 Audio DSP
|
|
|
|
|
|
## 14.1 Overview
|
|
|
|
|
|
The ADAU1467 is the central digital audio processing unit of HubAudio.
|
|
|
|
|
|
It belongs to the Analog Devices SigmaDSP family and is designed for high quality audio processing applications.
|
|
|
|
|
|
The DSP is responsible for:
|
|
|
|
|
|
- audio routing
|
|
- equalization
|
|
- crossover filtering
|
|
- dynamic processing
|
|
- loudness compensation
|
|
- volume control
|
|
- delay management
|
|
- room correction algorithms
|
|
|
|
|
|
The ADAU1467 represents the central audio processing hub.
|
|
|
|
|
|
---
|
|
|
|
# 14.2 Audio Architecture
|
|
|
|
|
|
All digital audio sources converge into the ADAU1467.
|
|
|
|
|
|
AUDIO SOURCES
|
|
|
|
|
|
Si4684 BT RX Network Audio
|
|
|
|
| | |
|
|
|
|
| | |
|
|
|
|
+--------------+------------------+
|
|
|
|
|
|
|
|
|
I2S
|
|
|
|
|
|
|
|
|
ADAU1467 DSP
|
|
|
|
|
|
|
|
|
+------------+------------+
|
|
|
|
| |
|
|
|
|
DAC BT1035 TX
|
|
|
|
|
|
|
|
|
|
|
Power Amplifier
|
|
|
|
|
|
14.3 Why Use a Dedicated DSP
|
|
|
|
The ESP32-S3 is not suitable for high quality audio processing.
|
|
|
|
Reasons:
|
|
|
|
operating system tasks
|
|
WiFi interruptions
|
|
unpredictable timing
|
|
insufficient deterministic audio processing
|
|
|
|
The ADAU1467 provides:
|
|
|
|
deterministic processing
|
|
hardware audio engine
|
|
low latency
|
|
professional audio quality
|
|
14.4 ADAU1467 Main Interfaces
|
|
|
|
The DSP uses:
|
|
|
|
Function Interface
|
|
Configuration I2C / SPI
|
|
Program loading SPI Flash
|
|
Audio input/output I2S/TDM
|
|
Clock MCLK
|
|
Reset GPIO
|
|
14.5 ADAU1467 Power Supply
|
|
|
|
The ADAU1467 contains sensitive analog/digital sections.
|
|
|
|
Power domains must be carefully designed.
|
|
|
|
Recommended:
|
|
|
|
|
|
3.3V_AUDIO
|
|
|
|
|
|
|
|
|
+---- DSP Digital Supply
|
|
|
|
|
|
|
|
|
+---- DSP Analog Supply
|
|
|
|
|
|
|
|
Important:
|
|
|
|
The DSP supply must be separated from:
|
|
|
|
ESP32 WiFi supply
|
|
DC/DC switching nodes
|
|
Bluetooth RF supply
|
|
14.6 Decoupling Requirements
|
|
|
|
Standard decoupling:
|
|
|
|
|
|
VDD
|
|
|
|
|
|
|
|
|
100nF ceramic
|
|
|
|
|
|
|
|
|
1uF ceramic
|
|
|
|
|
|
|
|
|
10uF bulk
|
|
|
|
|
|
|
|
Additional filtering is recommended:
|
|
|
|
|
|
3.3V
|
|
|
|
|
|
|
|
|
Ferrite bead
|
|
|
|
|
|
|
|
|
ADAU1467 supply
|
|
|
|
|
|
The ferrite bead is particularly important because DSP noise can couple into the audio path.
|
|
|
|
14.7 ADAU1467 Configuration Interface
|
|
|
|
The ESP32-S3 controls the DSP.
|
|
|
|
Preferred:
|
|
|
|
I2C Control
|
|
|
|
Connection:
|
|
|
|
|
|
ESP32-S3 ADAU1467
|
|
|
|
|
|
SDA ---------------- SDA
|
|
|
|
SCL ---------------- SCL
|
|
|
|
|
|
|
|
Used for:
|
|
|
|
volume
|
|
routing
|
|
parameter updates
|
|
runtime control
|
|
14.8 DSP Program Memory
|
|
|
|
The ADAU1467 does not permanently store the DSP program internally.
|
|
|
|
External SPI memory is required.
|
|
|
|
Architecture:
|
|
|
|
|
|
ESP32-S3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SPI Flash
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
Startup sequence:
|
|
|
|
|
|
Power ON
|
|
|
|
|
|
|
|
|
ESP32 starts
|
|
|
|
|
|
|
|
|
Program ADAU1467 memory
|
|
|
|
|
|
|
|
|
Verify checksum
|
|
|
|
|
|
|
|
|
Enable audio processing
|
|
|
|
|
|
14.9 SPI Flash Programming Strategy
|
|
|
|
The ESP32-S3 shall be able to:
|
|
|
|
erase DSP memory
|
|
program new firmware
|
|
verify CRC
|
|
restore previous version
|
|
|
|
Possible update procedure:
|
|
|
|
|
|
Receive DSP image
|
|
|
|
|
|
|
|
|
Disable ADAU1467
|
|
|
|
|
|
|
|
|
Program SPI Flash
|
|
|
|
|
|
|
|
|
Verify
|
|
|
|
|
|
|
|
|
Restart DSP
|
|
|
|
|
|
|
|
This allows field firmware updates.
|
|
|
|
14.10 Audio Interface (I2S)
|
|
|
|
The ADAU1467 is the preferred audio clock master.
|
|
|
|
Recommended architecture:
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
|
BCLK / LRCLK / MCLK
|
|
|
|
|
|
|
|
|
+-----------+-----------+
|
|
|
|
| |
|
|
|
|
Si4684 BT Modules
|
|
|
|
|
|
|
|
Advantages:
|
|
|
|
single clock domain
|
|
no asynchronous sample conversion
|
|
better audio stability
|
|
14.11 I2S Signals
|
|
|
|
Typical signals:
|
|
|
|
BCLK
|
|
|
|
Bit clock.
|
|
|
|
Carries the individual audio bits.
|
|
|
|
LRCLK
|
|
|
|
Word select clock.
|
|
|
|
Defines:
|
|
|
|
left channel
|
|
right channel
|
|
DATA
|
|
|
|
Serial audio data.
|
|
|
|
MCLK
|
|
|
|
Master clock.
|
|
|
|
Important:
|
|
|
|
Some audio devices require MCLK.
|
|
|
|
Others generate internal clocks.
|
|
|
|
Each module must be verified.
|
|
|
|
14.12 I2S Routing Problems
|
|
|
|
A critical design issue:
|
|
|
|
Multiple I2S sources cannot directly drive the same bus.
|
|
|
|
Wrong:
|
|
|
|
|
|
Si4684
|
|
|
|
|
|
|
|
|
+------------ I2S ------------ ADAU1467
|
|
|
|
BT RX
|
|
|
|
|
|
|
|
|
+------------ I2S ------------
|
|
|
|
|
|
|
|
Two masters conflict.
|
|
|
|
Correct:
|
|
|
|
|
|
Source modules
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dedicated inputs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
The ADAU1467 must provide multiple serial ports.
|
|
|
|
14.13 ADAU1467 Audio Ports
|
|
|
|
The DSP provides multiple serial interfaces.
|
|
|
|
Suggested allocation:
|
|
|
|
Port Device
|
|
Serial Input 0 Si4684
|
|
Serial Input 1 BT RX
|
|
Serial Output 0 DAC
|
|
Serial Output 1 BT1035
|
|
|
|
This avoids external I2S multiplexers.
|
|
|
|
14.14 DSP Software
|
|
|
|
The SigmaDSP project shall contain:
|
|
|
|
routing matrix
|
|
equalizer
|
|
volume control
|
|
filters
|
|
crossover
|
|
protection algorithms
|
|
|
|
Example:
|
|
|
|
|
|
Input Selector
|
|
|
|
|
|
|
|
|
Equalizer
|
|
|
|
|
|
|
|
|
Dynamic Processing
|
|
|
|
|
|
|
|
|
Volume
|
|
|
|
|
|
|
|
|
Output Router
|
|
|
|
|
|
14.15 ADAU1467 Reset
|
|
|
|
Reset must be controlled.
|
|
|
|
Recommended:
|
|
|
|
|
|
ESP32 GPIO
|
|
|
|
|
|
|
|
|
RESET
|
|
|
|
|
|
|
|
|
10k Pull-up
|
|
|
|
|
|
|
|
|
3.3V
|
|
|
|
|
|
|
|
Startup:
|
|
|
|
|
|
Hold RESET LOW
|
|
|
|
|
|
|
|
|
Configure clocks
|
|
|
|
|
|
|
|
|
Release RESET
|
|
|
|
|
|
|
|
|
Load DSP program
|
|
|
|
|
|
14.16 ADAU1467 PCB Placement
|
|
|
|
The DSP should be placed:
|
|
|
|
close to audio connectors
|
|
away from ESP32 antenna
|
|
away from DC/DC converters
|
|
|
|
Recommended:
|
|
|
|
|
|
+-----------------------------+
|
|
|
|
RF AREA
|
|
|
|
Bluetooth
|
|
Si4684
|
|
|
|
|
|
-----------------------------
|
|
|
|
|
|
AUDIO AREA
|
|
|
|
ADAU1467
|
|
DAC
|
|
|
|
|
|
-----------------------------
|
|
|
|
|
|
DIGITAL AREA
|
|
|
|
ESP32-S3
|
|
Power
|
|
|
|
|
|
+-----------------------------+
|
|
|
|
14.17 ADAU1467 Design Risks
|
|
Clock synchronization
|
|
|
|
Must verify:
|
|
|
|
MCLK requirement
|
|
sample frequency compatibility
|
|
master/slave configuration
|
|
Firmware dependency
|
|
|
|
DSP algorithm is stored externally.
|
|
|
|
Need:
|
|
|
|
version management
|
|
backup image
|
|
checksum
|
|
Noise coupling
|
|
|
|
Avoid:
|
|
|
|
digital return currents through analog ground
|
|
switching regulator near DSP
|
|
long I2S traces
|
|
14.18 ADAU1467 Summary
|
|
|
|
Role:
|
|
|
|
Central audio processing engine.
|
|
|
|
Connections:
|
|
|
|
|
|
ESP32-S3
|
|
|
|
|
|
|
|
|
I2C/SPI
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
|
I2S/TDM
|
|
|
|
|
|
|
|
|
Audio modules
|
|
|
|
|
|
|
|
The ADAU1467 defines the professional audio capability of HubAudio.
|
|
|
|
|
|
---
|
|
|
|
# 15. Bluetooth Audio Subsystem
|
|
|
|
|
|
## 15.1 Architecture Decision
|
|
|
|
|
|
The HubAudio platform intentionally separates Bluetooth reception and transmission.
|
|
|
|
|
|
The reason is reliability.
|
|
|
|
|
|
A single Bluetooth audio module capable of simultaneously handling:
|
|
|
|
- A2DP Sink
|
|
- A2DP Source
|
|
- independent Bluetooth links
|
|
- real-time audio routing
|
|
|
|
|
|
is not guaranteed in commercial modules.
|
|
|
|
|
|
Therefore the design uses two independent Bluetooth audio blocks.
|
|
|
|
|
|
Architecture:
|
|
|
|
|
|
Bluetooth Subsystem
|
|
|
|
|
|
Smartphone Headphones
|
|
|
|
| ^
|
|
|
|
| |
|
|
|
|
v |
|
|
|
|
BT RX MODULE BT1035 TX
|
|
|
|
| ^
|
|
|
|
| I2S | I2S
|
|
|
|
| |
|
|
|
|
+-----------+-------------+
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
Advantages:
|
|
|
|
|
|
- simultaneous operation
|
|
- independent firmware
|
|
- easier debugging
|
|
- modular replacement
|
|
- predictable audio routing
|
|
|
|
|
|
---
|
|
|
|
# 16. FSC-BT1035 Bluetooth Transmitter
|
|
|
|
|
|
## 16.1 Role in HubAudio
|
|
|
|
|
|
The FSC-BT1035 is used as Bluetooth Audio Transmitter.
|
|
|
|
|
|
Its function:
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
|
I2S
|
|
|
|
|
|
|
|
|
FSC-BT1035
|
|
|
|
|
|
|
|
|
Bluetooth A2DP Source
|
|
|
|
|
|
|
|
|
Headphones / Speakers
|
|
|
|
|
|
|
|
---
|
|
|
|
# 16.2 Main Features
|
|
|
|
|
|
Typical capabilities:
|
|
|
|
|
|
- Bluetooth audio transmission
|
|
- A2DP Source
|
|
- AVRCP support
|
|
- digital audio interface
|
|
- UART configuration
|
|
- embedded antenna
|
|
|
|
|
|
The module handles:
|
|
|
|
|
|
- Bluetooth stack
|
|
- codec negotiation
|
|
- RF management
|
|
|
|
|
|
The ESP32-S3 does not process Bluetooth audio.
|
|
|
|
|
|
---
|
|
|
|
# 16.3 BT1035 Connections
|
|
|
|
|
|
Important signals:
|
|
|
|
|
|
## Power
|
|
|
|
|
|
|
|
3.3V
|
|
|
|
|
|
|
|
|
BT1035 VCC
|
|
|
|
|
|
|
|
The module requires:
|
|
|
|
|
|
- clean supply
|
|
- local decoupling
|
|
- RF isolation
|
|
|
|
|
|
Recommended:
|
|
|
|
|
|
|
|
3.3V
|
|
|
|
|
|
|
|
|
Ferrite bead
|
|
|
|
|
|
|
|
|
BT1035
|
|
|
|
|
|
|
|
|
100nF
|
|
|
|
|
|
|
|
|
10uF
|
|
|
|
|
|
|
|
---
|
|
|
|
## UART Control
|
|
|
|
|
|
Connection:
|
|
|
|
|
|
|
|
ESP32-S3 BT1035
|
|
|
|
TX ---------------- RX
|
|
|
|
RX ---------------- TX
|
|
|
|
|
|
|
|
Used for:
|
|
|
|
|
|
- configuration
|
|
- status
|
|
- debugging
|
|
|
|
|
|
---
|
|
|
|
## I2S Audio Input
|
|
|
|
|
|
The BT1035 receives digital audio from the DSP.
|
|
|
|
|
|
|
|
ADAU1467 BT1035
|
|
|
|
BCLK -------------- BCLK
|
|
|
|
LRCLK ------------- LRCLK
|
|
|
|
DATA -------------- DATA IN
|
|
|
|
|
|
|
|
Important:
|
|
|
|
|
|
The clock master/slave configuration must be verified.
|
|
|
|
|
|
Preferred:
|
|
|
|
|
|
ADAU1467 = clock master.
|
|
|
|
|
|
---
|
|
|
|
# 16.4 BT1035 Firmware Considerations
|
|
|
|
|
|
Commercial Bluetooth modules often contain vendor firmware.
|
|
|
|
|
|
Important:
|
|
|
|
|
|
Verify:
|
|
|
|
|
|
- A2DP Source enabled
|
|
- I2S input mode enabled
|
|
- codec selection
|
|
- sample rate support
|
|
|
|
|
|
The module configuration shall be stored separately from ESP32 firmware.
|
|
|
|
|
|
---
|
|
|
|
# 16.5 BT1035 Operating Modes
|
|
|
|
|
|
Normal operation:
|
|
|
|
|
|
|
|
Power ON
|
|
|
|
|
|
|
|
|
UART initialization
|
|
|
|
|
|
|
|
|
Configure audio interface
|
|
|
|
|
|
|
|
|
Start Bluetooth advertising
|
|
|
|
|
|
|
|
|
Connect headphones
|
|
|
|
|
|
|
|
|
Stream audio
|
|
|
|
|
|
|
|
---
|
|
|
|
# 17. Bluetooth RX Module
|
|
|
|
|
|
## 17.1 Requirements
|
|
|
|
|
|
The receiving module must provide:
|
|
|
|
|
|
Required:
|
|
|
|
|
|
- Bluetooth Classic
|
|
- A2DP Sink
|
|
- I2S output
|
|
- UART configuration
|
|
|
|
|
|
Optional:
|
|
|
|
|
|
- AVRCP
|
|
- BLE
|
|
- codec selection
|
|
|
|
|
|
---
|
|
|
|
# 17.2 Preferred Solution
|
|
|
|
|
|
A module based on:
|
|
|
|
- FSC-BT1026
|
|
- equivalent Bluetooth Audio Receiver
|
|
|
|
|
|
Architecture:
|
|
|
|
|
|
|
|
Smartphone
|
|
|
|
|
|
|
|
|
Bluetooth A2DP
|
|
|
|
|
|
|
|
|
BT RX Module
|
|
|
|
|
|
|
|
|
I2S
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
---
|
|
|
|
# 17.3 BT RX Module Connections
|
|
|
|
|
|
## Power
|
|
|
|
|
|
Same philosophy:
|
|
|
|
|
|
|
|
3.3V
|
|
|
|
|
|
|
|
|
Filtering
|
|
|
|
|
|
|
|
|
BT RX Module
|
|
|
|
|
|
|
|
Bluetooth RF requires a clean supply.
|
|
|
|
|
|
---
|
|
|
|
## I2S Output
|
|
|
|
|
|
Connection:
|
|
|
|
|
|
|
|
BT RX ADAU1467
|
|
|
|
BCLK -----------> BCLK IN
|
|
|
|
LRCLK ----------> LRCLK IN
|
|
|
|
DATA -----------> DATA IN
|
|
|
|
|
|
|
|
---
|
|
|
|
## UART
|
|
|
|
|
|
Optional but recommended:
|
|
|
|
|
|
|
|
ESP32-S3 TX
|
|
|
|
|
|
|
|
|
BT RX RX
|
|
|
|
ESP32-S3 RX
|
|
|
|
|
|
|
|
|
BT RX TX
|
|
|
|
|
|
|
|
Used for:
|
|
|
|
|
|
- pairing control
|
|
- diagnostics
|
|
- configuration
|
|
|
|
|
|
---
|
|
|
|
# 17.4 Bluetooth RX Firmware Risks
|
|
|
|
|
|
The main risk is vendor configuration.
|
|
|
|
|
|
A module may support:
|
|
|
|
|
|
- A2DP Sink only
|
|
|
|
or:
|
|
|
|
|
|
- A2DP Sink + Source
|
|
|
|
|
|
The required mode must be confirmed before PCB release.
|
|
|
|
|
|
---
|
|
|
|
# 18. Alternative Bluetooth RX Using ESP32-WROOM-32
|
|
|
|
|
|
## 18.1 Overview
|
|
|
|
|
|
The ESP32-WROOM-32 contains Bluetooth Classic support.
|
|
|
|
|
|
Unlike ESP32-S3:
|
|
|
|
|
|
- Bluetooth Classic available
|
|
- A2DP Sink supported
|
|
|
|
|
|
Architecture:
|
|
|
|
|
|
|
|
Smartphone
|
|
|
|
|
|
|
|
|
Bluetooth A2DP
|
|
|
|
|
|
|
|
|
ESP32-WROOM-32
|
|
|
|
|
|
|
|
|
I2S
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
---
|
|
|
|
# 18.2 Advantages
|
|
|
|
|
|
Advantages:
|
|
|
|
|
|
- complete firmware control
|
|
- open development environment
|
|
- easy debugging
|
|
- same ecosystem as ESP32-S3
|
|
|
|
|
|
---
|
|
|
|
# 18.3 Disadvantages
|
|
|
|
|
|
Compared with dedicated modules:
|
|
|
|
|
|
- more firmware work
|
|
- Bluetooth stack maintenance
|
|
- higher CPU load
|
|
- more software complexity
|
|
|
|
|
|
---
|
|
|
|
# 18.4 Recommended Use
|
|
|
|
|
|
ESP32-WROOM should be considered:
|
|
|
|
|
|
- development prototype
|
|
- experimental firmware
|
|
- future custom Bluetooth module
|
|
|
|
|
|
Not the first production choice.
|
|
|
|
|
|
---
|
|
|
|
# 19. Bluetooth Clock Management
|
|
|
|
|
|
Bluetooth audio introduces clock problems.
|
|
|
|
|
|
Different devices may have:
|
|
|
|
|
|
- different sample clocks
|
|
- different oscillator accuracy
|
|
|
|
|
|
The ADAU1467 should manage:
|
|
|
|
|
|
- routing
|
|
- resampling if required
|
|
- synchronization
|
|
|
|
|
|
Possible solutions:
|
|
|
|
|
|
## Solution A
|
|
|
|
All sources synchronized to DSP clock.
|
|
|
|
|
|
Preferred.
|
|
|
|
|
|
---
|
|
|
|
## Solution B
|
|
|
|
Asynchronous sample rate conversion.
|
|
|
|
|
|
Required if modules cannot operate as slaves.
|
|
|
|
|
|
---
|
|
|
|
# 20. Bluetooth PCB Layout
|
|
|
|
|
|
RF modules require:
|
|
|
|
|
|
- antenna clearance
|
|
- ground plane
|
|
- no copper under antenna area
|
|
- separation from switching regulators
|
|
|
|
|
|
Recommended:
|
|
|
|
|
|
|
|
+--------------------+
|
|
|
|
Bluetooth Antenna
|
|
|
|
KEEP OUT AREA
|
|
|
|
Digital electronics
|
|
|
|
Power section
|
|
|
|
+--------------------+
|
|
|
|
|
|
|
|
---
|
|
|
|
# 21. Bluetooth Subsystem Summary
|
|
|
|
|
|
Final architecture:
|
|
|
|
|
|
ESP32-S3
|
|
|
|
|
|
|
|
|
+---------+---------+
|
|
|
|
| |
|
|
|
|
BT RX BT1035
|
|
|
|
A2DP Sink A2DP Source
|
|
|
|
| |
|
|
|
|
| I2S | I2S
|
|
|
|
+---------+---------+
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
This provides:
|
|
|
|
|
|
- smartphone audio reception
|
|
- Bluetooth headphone transmission
|
|
- simultaneous operation
|
|
- modular replacement
|
|
|
|
|
|
---
|
|
# 22. Module Identification System
|
|
|
|
|
|
## 22.1 Purpose
|
|
|
|
|
|
HubAudio is designed as a modular platform.
|
|
|
|
|
|
Every external module must be automatically identifiable by the main controller.
|
|
|
|
|
|
The system uses:
|
|
|
|
|
|
|
|
24AA025E48T-I/OT
|
|
|
|
|
|
|
|
as module identification memory.
|
|
|
|
|
|
---
|
|
|
|
# 22.2 24AA025E48T Overview
|
|
|
|
|
|
The device provides:
|
|
|
|
|
|
- I2C EEPROM memory
|
|
- factory programmed unique MAC address
|
|
- unique module identification
|
|
|
|
|
|
The ESP32-S3 reads the EEPROM during startup.
|
|
|
|
|
|
---
|
|
|
|
# 22.3 EEPROM Connection
|
|
|
|
|
|
Typical connection:
|
|
|
|
|
|
|
|
ESP32-S3 24AA025E48T
|
|
|
|
3.3V ---------------- VCC
|
|
|
|
GND ----------------- GND
|
|
|
|
SDA ----------------- SDA
|
|
|
|
SCL ----------------- SCL
|
|
|
|
|
|
|
|
Required:
|
|
|
|
|
|
I2C pull-up resistors.
|
|
|
|
|
|
Typical value:
|
|
|
|
|
|
|
|
2.2k - 4.7k
|
|
|
|
|
|
|
|
depending on bus capacitance.
|
|
|
|
|
|
---
|
|
|
|
# 22.4 Module Identification Structure
|
|
|
|
|
|
Example:
|
|
|
|
|
|
EEPROM:
|
|
|
|
|
|
|
|
Address 00
|
|
|
|
Module Type
|
|
|
|
01 = Radio Si4684
|
|
|
|
02 = Bluetooth RX
|
|
|
|
03 = Bluetooth TX
|
|
|
|
04 = DSP
|
|
|
|
Address 10
|
|
|
|
Hardware Revision
|
|
|
|
Address 20
|
|
|
|
Serial Number
|
|
|
|
Address 30
|
|
|
|
Configuration Data
|
|
|
|
|
|
|
|
---
|
|
|
|
# 22.5 Startup Discovery
|
|
|
|
|
|
The ESP32-S3 performs:
|
|
|
|
|
|
|
|
Power ON
|
|
|
|
|
|
|
|
|
Initialize I2C
|
|
|
|
|
|
|
|
|
Scan module bus
|
|
|
|
|
|
|
|
|
Read EEPROM
|
|
|
|
|
|
|
|
|
Identify hardware
|
|
|
|
|
|
|
|
|
Load configuration
|
|
|
|
|
|
|
|
|
Initialize drivers
|
|
|
|
|
|
|
|
The firmware does not need to know the exact board revision.
|
|
|
|
|
|
---
|
|
|
|
# 23. External SPI Memories
|
|
|
|
|
|
## 23.1 Purpose
|
|
|
|
|
|
Several components require external firmware storage.
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
- ADAU1467 DSP program
|
|
- Si4684 firmware
|
|
- future modules
|
|
|
|
|
|
---
|
|
|
|
# 23.2 General Architecture
|
|
|
|
|
|
|
|
ESP32-S3
|
|
|
|
|
|
|
|
|
SPI
|
|
|
|
|
|
|
|
|
External Flash
|
|
|
|
|
|
|
|
|
Target Device
|
|
|
|
|
|
|
|
The ESP32-S3 acts as programmer.
|
|
|
|
|
|
---
|
|
|
|
# 23.3 Firmware Update Procedure
|
|
|
|
|
|
General sequence:
|
|
|
|
|
|
|
|
Receive update package
|
|
|
|
|
|
|
|
|
Validate checksum
|
|
|
|
|
|
|
|
|
Disable target device
|
|
|
|
|
|
|
|
|
Program Flash
|
|
|
|
|
|
|
|
|
Verify
|
|
|
|
|
|
|
|
|
Restart module
|
|
|
|
|
|
|
|
---
|
|
|
|
# 24. Power Architecture
|
|
|
|
|
|
## 24.1 Design Objective
|
|
|
|
|
|
The audio system contains:
|
|
|
|
|
|
- RF circuits
|
|
- digital processors
|
|
- sensitive analog sections
|
|
|
|
|
|
Power distribution is critical.
|
|
|
|
|
|
---
|
|
|
|
# 24.2 Recommended Power Domains
|
|
|
|
|
|
|
|
Main Input
|
|
|
|
|
|
|
|
|
+----------------+
|
|
|
|
|
|
|
|
|
Digital 3.3V
|
|
|
|
|
|
|
|
|
+ ESP32-S3
|
|
|
|
+ EEPROM
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Audio 3.3V
|
|
|
|
|
|
|
|
|
+ ADAU1467
|
|
|
|
+ DAC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RF 3.3V
|
|
|
|
|
|
|
|
|
+ Si4684
|
|
|
|
+ Bluetooth
|
|
|
|
|
|
---
|
|
|
|
# 24.3 Separation Rules
|
|
|
|
|
|
Avoid:
|
|
|
|
|
|
- ESP32 WiFi current peaks disturbing audio
|
|
- DC/DC switching noise entering DSP supply
|
|
- RF noise coupling into analog paths
|
|
|
|
|
|
---
|
|
|
|
# 24.4 Recommended Filtering
|
|
|
|
|
|
For DSP:
|
|
|
|
|
|
|
|
3.3V
|
|
|
|
|
|
|
|
|
Ferrite bead
|
|
|
|
|
|
|
|
|
100nF
|
|
|
|
|
|
|
|
|
1uF
|
|
|
|
|
|
|
|
|
10uF
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
For RF modules:
|
|
|
|
|
|
|
|
3.3V
|
|
|
|
|
|
|
|
|
Ferrite bead
|
|
|
|
|
|
|
|
|
RF module
|
|
|
|
|
|
|
|
---
|
|
|
|
# 24.5 Ground Strategy
|
|
|
|
|
|
Recommended:
|
|
|
|
|
|
Single PCB ground plane.
|
|
|
|
|
|
However:
|
|
|
|
|
|
Control return currents carefully.
|
|
|
|
|
|
Avoid:
|
|
|
|
|
|
- digital currents crossing analog audio paths
|
|
- switching regulator return under DSP
|
|
|
|
|
|
---
|
|
|
|
# 25. System Boot Sequence
|
|
|
|
|
|
Complete startup:
|
|
|
|
|
|
|
|
POWER ON
|
|
|
|
|
|
|
|
|
Power regulators stable
|
|
|
|
|
|
|
|
|
ESP32-S3 reset release
|
|
|
|
|
|
|
|
|
Read EEPROM modules
|
|
|
|
|
|
|
|
|
Keep audio devices disabled
|
|
|
|
|
|
|
|
|
Initialize Si4684
|
|
|
|
|
|
|
|
|
Initialize ADAU1467
|
|
|
|
|
|
|
|
|
Initialize Bluetooth modules
|
|
|
|
|
|
|
|
|
Configure audio routing
|
|
|
|
|
|
|
|
|
Enable audio outputs
|
|
|
|
|
|
|
|
---
|
|
|
|
# 26. Audio Routing Software Model
|
|
|
|
|
|
The firmware shall expose audio sources:
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
SOURCE_RADIO
|
|
|
|
SOURCE_BT_RX
|
|
|
|
SOURCE_NETWORK
|
|
|
|
SOURCE_EXTERNAL
|
|
|
|
|
|
|
|
The DSP routing layer decides:
|
|
|
|
|
|
|
|
Selected Source
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
|
Outputs
|
|
|
|
|
|
|
|
---
|
|
|
|
# 27. PCB Placement Strategy
|
|
|
|
|
|
Recommended board organization:
|
|
|
|
|
|
|
|
+--------------------------------+
|
|
|
|
| |
|
|
| RF AREA |
|
|
| |
|
|
| Si4684 Bluetooth Modules |
|
|
| |
|
|
|
|
|
|
|
|
AUDIO AREA
|
|
|
|
ADAU1467 DAC
|
|
|
|
|
|
-------------------------------
|
|
|
|
DIGITAL AREA
|
|
|
|
ESP32-S3 Power
|
|
|
|
+--------------------------------+
|
|
|
|
|
|
---
|
|
|
|
# 28. PCB Critical Rules
|
|
|
|
|
|
## RF
|
|
|
|
|
|
Must verify:
|
|
|
|
|
|
- antenna clearance
|
|
- impedance control
|
|
- keep-out area
|
|
- connector placement
|
|
|
|
|
|
---
|
|
|
|
## I2S
|
|
|
|
|
|
Keep:
|
|
|
|
|
|
- short traces
|
|
- controlled routing
|
|
- common ground reference
|
|
|
|
|
|
Avoid:
|
|
|
|
|
|
- crossing noisy clocks
|
|
|
|
|
|
---
|
|
|
|
## SPI
|
|
|
|
|
|
For:
|
|
|
|
|
|
- Si4684
|
|
- firmware memories
|
|
|
|
|
|
Use:
|
|
|
|
|
|
- short traces
|
|
- avoid unnecessary vias
|
|
|
|
|
|
---
|
|
|
|
# 29. Initial Bill Of Materials (Architecture Level)
|
|
|
|
|
|
| Block | Component |
|
|
|-|-|
|
|
| Main MCU | ESP32-S3 |
|
|
| Radio | Si4684 |
|
|
| DSP | ADAU1467 |
|
|
| Bluetooth TX | FSC-BT1035 |
|
|
| Bluetooth RX | FSC-BT1026 or equivalent |
|
|
| Module ID | 24AA025E48T-I/OT |
|
|
| DSP memory | SPI Flash |
|
|
| Radio memory | SPI Flash |
|
|
| DAC | To be selected |
|
|
| Amplifier | To be selected |
|
|
|
|
|
|
---
|
|
|
|
# 30. Open Issues Before PCB Release
|
|
|
|
|
|
## Must verify
|
|
|
|
|
|
### ADAU1467
|
|
|
|
- exact DSP memory size
|
|
- SPI Flash type
|
|
- clock configuration
|
|
- serial port allocation
|
|
|
|
|
|
---
|
|
|
|
### Si4684
|
|
|
|
- firmware acquisition
|
|
- RF matching network
|
|
- antenna design
|
|
|
|
|
|
---
|
|
|
|
### Bluetooth
|
|
|
|
|
|
- BT1035 I2S mode
|
|
- BT RX module A2DP Sink capability
|
|
- codec support
|
|
- UART commands
|
|
|
|
|
|
---
|
|
|
|
### Power
|
|
|
|
|
|
- regulator selection
|
|
- current budget
|
|
- thermal analysis
|
|
|
|
|
|
---
|
|
|
|
# 31. Final Architecture
|
|
|
|
|
|
The final HubAudio platform:
|
|
|
|
|
|
ESP32-S3
|
|
|
|
|
|
|
|
|
+-------------------+-------------------+
|
|
|
|
| | |
|
|
|
|
Si4684 BT RX BT1035
|
|
|
|
FM/DAB+ A2DP Sink A2DP Source
|
|
|
|
| | |
|
|
|
|
+-------------------+-------------------+
|
|
|
|
|
|
|
|
|
I2S
|
|
|
|
|
|
|
|
|
ADAU1467
|
|
|
|
|
|
|
|
|
+----------+----------+
|
|
|
|
| |
|
|
|
|
DAC Bluetooth Output
|
|
|
|
|
|
|
|
|
|
|
Amplifier
|
|
|
|
|
|
---
|
|
|
|
# 32. Engineering Philosophy
|
|
|
|
|
|
HubAudio is designed as a scalable embedded audio platform.
|
|
|
|
|
|
The architecture follows these principles:
|
|
|
|
|
|
- digital audio path
|
|
- modular hardware
|
|
- replaceable subsystems
|
|
- independent firmware management
|
|
- explicit hardware identification
|
|
- professional DSP processing
|
|
|
|
|
|
The system can evolve without redesigning the complete platform.
|
|
|
|
|
|
---
|
|
|
|
# END OF DOCUMENT
|
|
|
|
Revision 0.1
|