Files

317 lines
8.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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_SYSCTRL`**10 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.