Files

8.3 KiB
Raw Permalink Blame History

HubAudio — MCP23S17 GPIO Distribution

Progetto: HubAudio
Revisione: definitiva
Data: 2026-08-22


Distribuzione GPIO

IC PORTA GPIO Segnale Direzione Pull
U34 A GPA0 SI4684_RESET OUT UP
U34 A GPA1 SI4684_SMODE OUT -
U34 A GPA2 SI4684_ANT_SEL OUT -
U34 A GPA3 SI4684_INT IN -
U34 A GPA4 ADAU1467_RESET OUT UP
U34 A GPA5 ADAU1467_SELFBOOT OUT/STRAP UP
U34 A GPA6 RESERVED -
U34 A GPA7 MIC_SOURCE_SELECT OUT -
U34 B GPB0 MIC_DETECT IN UP
U34 B GPB1 LINE_IN_DETECT IN UP
U34 B GPB2 LINE_OUT_DETECT IN UP
U34 B GPB3 JACK_DETECT IN UP
U34 B GPB4 BQ25896_INT IN UP
U34 B GPB5 BQ25896_PG# IN UP
U34 B GPB6 BQ27441_GPOUT IN UP
U34 B GPB7 TPS63020_PG IN UP
U36 A GPA0 BT1035_RESET OUT -
U36 A GPA1 BT1035_SYSCTRL OUT DOWN
U36 A GPA2 UART_RESET OUT UP
U36 A GPA3 UART_INT IN -
U36 A GPA4 ETH_RST# OUT UP
U36 A GPA5 ANALOG_POWER_EN OUT -
U36 A GPA6 ETHERNET_POWER_EN OUT -
U36 A GPA7 BQ25896_PSEL OUT -
U36 B GPB0 INA228_ANALOG_ALERT IN UP
U36 B GPB1 INA228_DIGITAL_ALERT IN UP
U36 B GPB2 TEMP_PWR_ALERT IN UP
U36 B GPB3 TEMP_ESP32_ALERT IN UP
U36 B GPB4 TEMP_ETH_ALERT IN UP
U36 B GPB5 TEMP_CODEC_ALERT IN UP
U36 B GPB6 RESERVED -
U36 B GPB7 RESERVED -

Pull-up / Pull-down

Pull-UP

Le seguenti linee hanno pull-up esterno:

  • SI4684_RESET
  • ADAU1467_RESET
  • ADAU1467_SELFBOOT
  • MIC_DETECT
  • LINE_IN_DETECT
  • LINE_OUT_DETECT
  • JACK_DETECT
  • BQ25896_INT
  • BQ25896_PG#
  • BQ27441_GPOUT
  • TPS63020_PG
  • UART_RESET
  • ETH_RST#
  • INA228_ANALOG_ALERT
  • INA228_DIGITAL_ALERT
  • TEMP_PWR_ALERT
  • TEMP_ESP32_ALERT
  • TEMP_ETH_ALERT
  • TEMP_CODEC_ALERT

Per le linee open-drain/status viene utilizzato come valore nominale:

10 kΩ

In particolare:

  • BQ27441_GPOUT → 10 kΩ
  • TPS63020_PG → 10 kΩ
  • INA228_ANALOG_ALERT → 10 kΩ
  • INA228_DIGITAL_ALERT → 10 kΩ
  • BQ25896_INT → 10 kΩ
  • BQ25896_PG# → 10 kΩ
  • TEMP_PWR_ALERT → 10 kΩ
  • TEMP_ESP32_ALERT → 10 kΩ
  • TEMP_ETH_ALERT → 10 kΩ
  • TEMP_CODEC_ALERT → 10 kΩ

Pull-DOWN

  • BT1035_SYSCTRL10 kΩ verso GND

Nessun pull esterno

  • SI4684_SMODE
  • SI4684_ANT_SEL
  • SI4684_INT
  • MIC_SOURCE_SELECT
  • BT1035_RESET
  • UART_INT
  • ANALOG_POWER_EN
  • ETHERNET_POWER_EN
  • BQ25896_PSEL
  • tutti i GPIO RESERVED

Sensori di temperatura

Sono previsti sensori di temperatura I²C basati su TMP117.

I sensori sono distribuiti fisicamente sulla scheda per monitorare le zone termicamente più significative:

Sensore Zona Posizione
TEMP_PWR Dominio alimentazione BOTTOM, vicino ai dispositivi di alimentazione
TEMP_ESP32 ESP32 vicino all'ESP32
TEMP_ETH Ethernet / PHY vicino al PHY Ethernet
TEMP_CODEC Codec TAC5212 vicino al codec

I sensori condividono il bus I²C e vengono identificati tramite il relativo indirizzo ADDR.

Ogni sensore dispone di:

  • alimentazione locale
  • condensatore di bypass 100 nF
  • SDA
  • SCL
  • ADDR
  • ALERT

ALERT

L'uscita ALERT dei TMP117 viene utilizzata come segnalazione hardware verso il Device Manager:

  • TEMP_PWR_ALERT → U36 GPB2
  • TEMP_ESP32_ALERT → U36 GPB3
  • TEMP_ETH_ALERT → U36 GPB4
  • TEMP_CODEC_ALERT → U36 GPB5

Le linee ALERT sono ingressi del MCP23S17 e utilizzano un pull-up esterno da 10 kΩ.

Il Device Manager può quindi ricevere immediatamente una segnalazione di superamento della soglia termica senza dover effettuare continuamente il polling dei sensori.


Note sui dispositivi

SI4684

SI4684_RESET è il reset active-low del dispositivo.

Il pull-up garantisce il rilascio del reset dopo la fase di power-up.

ADAU1467

ADAU1467_RESET è active-low.

ADAU1467_SELFBOOT deve essere HIGH per il self-boot dalla EEPROM.

TAC5212

Il codec XTAC5212IRGER è il TAC5212.

Non esiste un reset hardware dedicato da collegare al MCP23S17; il reset è gestito tramite la configurazione software del dispositivo.

U34 GPA6 = RESERVED.

BT1035

BT1035_RESET non necessita di pull-up esterno perché il modulo dispone del proprio pull-up interno.

BT1035_SYSCTRL richiede invece il pull-down esterno.

BQ27441

GPOUT è open-drain e il datasheet raccomanda esplicitamente una resistenza di pull-up da 10 kΩ.

TPS63020

PG è un'uscita open-drain. Il pull-up è quindi necessario quando il segnale viene utilizzato come ingresso digitale dal MCP23S17.

INA228

ALERT è la linea di alert del monitor e viene utilizzata come ingresso verso il MCP23S17; è prevista con pull-up esterno.

TMP117

Il TMP117 è utilizzato come sensore di temperatura locale.

La comunicazione avviene tramite I²C. Il pin ALERT viene utilizzato per generare una segnalazione hardware verso il Device Manager tramite U36.

Ogni sensore dispone di un proprio indirizzo I²C tramite il pin ADDR.


Regola generale

Ogni net deve avere una sola resistenza fisica di pull-up/pull-down.

Se una net viene condivisa da più dispositivi, non devono essere installate resistenze duplicate sui vari dispositivi.

Il pull-up interno del MCP23S17 non viene utilizzato come sostituto dei pull-up esterni delle linee di stato/open-drain.

Per le linee ALERT dei TMP117 viene mantenuto il pull-up esterno da 10 kΩ.


Distribuzione funzionale

U34 PORTA — Audio / Radio Control

GPIO Funzione
GPA0 SI4684 RESET
GPA1 SI4684 SMODE
GPA2 SI4684 ANT SEL
GPA3 SI4684 INT
GPA4 ADAU1467 RESET
GPA5 ADAU1467 SELFBOOT
GPA6 RESERVED
GPA7 MIC SOURCE SELECT

U34 PORTB — Detection / Power Status

GPIO Funzione
GPB0 MIC DETECT
GPB1 LINE IN DETECT
GPB2 LINE OUT DETECT
GPB3 JACK DETECT
GPB4 BQ25896 INT
GPB5 BQ25896 PG#
GPB6 BQ27441 GPOUT
GPB7 TPS63020 PG

U36 PORTA — BT / UART / Ethernet / Power

GPIO Funzione
GPA0 BT1035 RESET
GPA1 BT1035 SYSCTRL
GPA2 UART RESET
GPA3 UART INT
GPA4 ETH RESET
GPA5 ANALOG POWER EN
GPA6 ETHERNET POWER EN
GPA7 BQ25896 PSEL

U36 PORTB — Power / Temperature Monitoring

GPIO Funzione
GPB0 INA228 ANALOG ALERT
GPB1 INA228 DIGITAL ALERT
GPB2 TEMP PWR ALERT
GPB3 TEMP ESP32 ALERT
GPB4 TEMP ETH ALERT
GPB5 TEMP CODEC ALERT
GPB6 RESERVED
GPB7 RESERVED

Tabella resistenze da inserire nello schematico

Net Resistenza Collegamento
SI4684_RESET 10 kΩ VIO → RESET
ADAU1467_RESET 10 kΩ IOVDD → RESET
ADAU1467_SELFBOOT 10 kΩ IOVDD → SELFBOOT
MIC_DETECT 10 kΩ VIO → DETECT
LINE_IN_DETECT 10 kΩ VIO → DETECT
LINE_OUT_DETECT 10 kΩ VIO → DETECT
JACK_DETECT 10 kΩ VIO → DETECT
BQ25896_INT 10 kΩ VIO → INT
BQ25896_PG# 10 kΩ VIO → PG#
BQ27441_GPOUT 10 kΩ VDD → GPOUT
TPS63020_PG 10 kΩ VOUT/VIO → PG
BT1035_SYSCTRL 10 kΩ SYSCTRL → GND
UART_RESET 10 kΩ VIO → RESET
ETH_RST# 10 kΩ VIO → RESET#
INA228_ANALOG_ALERT 10 kΩ VIO → ALERT
INA228_DIGITAL_ALERT 10 kΩ VIO → ALERT
TEMP_PWR_ALERT 10 kΩ VIO → ALERT
TEMP_ESP32_ALERT 10 kΩ VIO → ALERT
TEMP_ETH_ALERT 10 kΩ VIO → ALERT
TEMP_CODEC_ALERT 10 kΩ VIO → ALERT

Stato

U34: assegnazione completa.

U36: assegnazione completa.

TAC5212: nessun GPIO dedicato al reset.

BT1035_RESET: nessun pull esterno.

BT1035_SYSCTRL: 10 kΩ pull-down.

Linee open-drain/status: pull-up 10 kΩ.

TMP117: 4 sensori I²C distribuiti nelle zone termicamente significative.

TMP117 ALERT: collegati al Device Manager tramite U36 GPB2GPB5.

U34 GPA6: RESERVED.

U36 GPB6GPB7: RESERVED.

INTB U34/U36: non collegati intenzionalmente.