Collegamenti

Secondo le specifiche delle schede ricevute il 21/10/2026.

È lo schema di riferimento per costruire il dispositivo. Il firmware attuale (branch main) non lo segue ancora del tutto: le differenze sono nel confronto con il firmware attuale.

Schema a blocchi: lo smartphone via Bluetooth e la sorgente AUX tramite jack TRRS e ADC PCM1808 entrano nell'ESP32, che pilota il DAC PCM5102A, il relè di selezione dell'uscita verso il jack e le casse, e il display OLED SSD1322

1. PCM5102A – Uscita audio

PCM5102AESP32
VIN5V
GNDGND
BCKGPIO 26
LCKGPIO 33
DINGPIO 21

Il pin SCK del modulo non compare nello schema: resta non collegato, come nel montaggio attuale, e il PCM5102A ricava il clock interno dal BCK.

2. PCM1808 – Ingresso audio

PCM1808ESP32
VCC5V
GNDGND
BCKGPIO 26
LRCKGPIO 33
DOUTGPIO 35

3. Display OLED SSD1322 – SPI 4 fili

SSD1322ESP32
VCC3V3
GNDGND
SCK / CLKGPIO 18
SDA / MOSIGPIO 23
CSGPIO 5
DCGPIO 19
RSTGPIO 4

4. Jack TRRS – Ingresso audio

JackPCM1808
LLIN
RRIN
GNDAGND
MICnon collegato

5. Relè DPDT – Selezione uscita audio

RelèCollegamento
COM1Jack uscita L
COM2Jack uscita R
NC1PCM5102A L
NC2PCM5102A R
NO1Audio pass-through L
NO2Audio pass-through R
INGPIO 27 (proposto)
VCC5V (se compatibile)
GNDGND

A relè non eccitato (contatti NC) il jack di uscita riceve il DAC PCM5102A; con il relè eccitato riceve il segnale di pass-through.

Riepilogo GPIO ESP32

GPIOFunzione
GPIO 4OLED RST
GPIO 5OLED CS
GPIO 18OLED SCK
GPIO 19OLED DC
GPIO 21PCM5102A DIN
GPIO 23OLED MOSI
GPIO 26I²S BCK condiviso
GPIO 27Comando relè (proposto)
GPIO 33I²S LRCK condiviso
GPIO 35PCM1808 DOUT

Note tecniche

I²S condiviso tra ADC e DAC

  • PCM1808 e PCM5102A usano gli stessi BCK (GPIO 26) e LRCK (GPIO 33): l'ESP32 genera i clock e i due convertitori lavorano alla stessa frequenza di campionamento e con lo stesso formato. Quando tornerà il Bluetooth A2DP (di solito a 44,1 kHz), anche l'ADC girerà alla frequenza della sorgente Bluetooth.
  • Un pin può essere pilotato da una sola periferica, quindi i due driver I²S master separati del firmware attuale non vanno bene su questi pin. Le strade possibili sono una sola porta (I2S_NUM_0) in full duplex, con I2S_MODE_TX | I2S_MODE_RX, data_out_num = 21 e data_in_num = 35, oppure TX master e RX slave sugli stessi BCK/LRCK. La prima è la più semplice.
  • GPIO 35 è solo ingresso e non ha pull-up/pull-down interni: va bene per DOUT del PCM1808 (dati verso l'ESP32).

Clock di sistema del PCM1808

Lo schema non indica il pin SCKI (nel modulo SCK) del PCM1808. Il PCM1808 non funziona senza un clock di sistema a 256, 384 o 512 volte la frequenza di campionamento, sincrono con BCK e LRCK. Nel firmware attuale arriva dall'MCLK dell'ESP32 su GPIO 0. Sull'ESP32 l'MCLK può uscire solo su GPIO 0, 1 o 3, e GPIO 1 e 3 sono la seriale USB: GPIO 0 resta l'unica scelta. Nello schema è libero (il DC del display non è più su GPIO 0, come nel vecchio firmware A2DP).

Pin di configurazione del PCM1808

Lo schema non cita nemmeno MD0, MD1, FMT e il pin 3,3 V del modulo. Nel cablaggio usato finora con il firmware attuale sono così: MD0, MD1 e FMT a GND (PCM1808 slave, formato I²S), 3.3V a 3V3 e +5V a 5V.

Display

  • Rispetto al vecchio firmware A2DP il DC passa da GPIO 0 a GPIO 19 e il reset non è più fisso a 3V3 ma su GPIO 4. Con U8g2 il costruttore diventa U8G2_SSD1322_NHD_256X64_F_4W_HW_SPI u8g2(U8G2_R0, /*cs=*/ 5, /*dc=*/ 19, /*reset=*/ 4);.
  • SCK e MOSI sono i pin VSPI di default dell'ESP32 (18 e 23), quindi si può usare lo SPI hardware.

Relè

  • Il GPIO non può alimentare la bobina di un relè: serve un modulo relè con transistor di pilotaggio e diodo (o un transistor e un diodo di ricircolo esterni).
  • "VCC 5V (se compatibile)": con un modulo a 5 V bisogna verificare che l'ingresso IN commuti con i 3,3 V dell'ESP32 e se è attivo alto o attivo basso.
  • GPIO 27 non è un pin di strapping: all'avvio il relè resta a riposo e l'uscita è quella del DAC.
  • Commutare il relè con l'audio presente può produrre un "clic": conviene mettere in muto l'uscita (in firmware o con il pin XSMT del PCM5102A) durante il cambio.

Jack TRRS

Nei jack TRRS la posizione di GND e MIC cambia tra lo standard CTIA (MIC sul manicotto) e OMTP (GND sul manicotto): va verificato quale polo è GND sul jack usato prima di collegarlo ad AGND.

Pin di strapping

Lo schema non usa più GPIO 2 e 15 (BCK e LRCK del PCM1808 nel firmware attuale), che sono pin di strapping. Restano GPIO 5 (CS del display, a riposo alto, compatibile con l'avvio) e GPIO 0 (verso SCKI del PCM1808, che è un ingresso ad alta impedenza e non porta GPIO 0 basso all'avvio, quindi non forza la modalità download).

Confronto con il firmware attuale

src/main.cpp sul branch main usa questi pin (dettagli nella pagina del firmware attuale):

SegnaleSchemaFirmware attuale
PCM5102A BCK / LRCK / DINGPIO 26 / 33 / 21GPIO 26 / 33 / 21 (uguali)
PCM1808 BCKGPIO 26 (condiviso)GPIO 2 (IN_BCK)
PCM1808 LRCKGPIO 33 (condiviso)GPIO 15 (IN_LRCK)
PCM1808 DOUTGPIO 35GPIO 16 (IN_DOUT)
PCM1808 SCKI (MCLK)non indicatoGPIO 0 (IN_MCLK)
Porte I²Suna, BCK/LRCK condivisidue master: I2S_NUM_0 RX e I2S_NUM_1 TX
Display SSD1322GPIO 18, 23, 5, 19, 4non presente
RelèGPIO 27non presente

Per seguire lo schema il firmware deve passare a un I²S condiviso (vedi le note tecniche), spostare il PCM1808 su GPIO 26/33/35 e aggiungere display e relè.

Punti aperti

Da chiarire con chi ha fornito le specifiche:

  1. Pin SCKI del PCM1808: confermare GPIO 0.
  2. MD0, MD1, FMT e alimentazione 3,3 V del modulo PCM1808.
  3. Da dove arriva il segnale "Audio pass-through" sui contatti NO del relè (per esempio direttamente dal jack di ingresso).
  4. GPIO 27 per il relè è "proposto": confermarlo, insieme al modulo relè (tensione, livello logico, attivo alto o basso).
  5. Standard (CTIA o OMTP) del jack TRRS di ingresso.
  6. Massa del jack di uscita: lo schema collega solo L e R tramite il relè, va indicato dove va il GND del jack (per esempio ad AGND del PCM5102A).