Lab modules

AXL-007 — I2C hub PMOD module (TCA9548A)

Catalog #7 in the AruviX lab line, level L3. Solves I2C address clashes when a class chains many identical modules — and is the "why muxes exist" lesson.

Level L3 ERC clean No fab package 21 components
3D render of the AXL-007 PCB
Rendered from the PCB layout. No physical board has been manufactured.

Circuit review & bench-test guide →

Components#

Every placed component, with the reason it is on the board. Extracted directly from the schematic, so this cannot drift from the design.

RefValueWhat it does on this boardPart numberFootprint
C1 100nF 16V X7R U1 decoupling GRM188R71C104KA01D
Murata
C_0603_1608Metric
C2 1uF 10V X7R Module bulk decoupling GRM188R71A105KA61D
Murata
C_0603_1608Metric
J1 PMOD PLUG 2x6 PMOD peripheral plug (Digilent spec 1.2) not selected
generic
PinHeader_2x06_P2.54mm_Horizontal
J2 QWIIC CH0 Qwiic socket on mux channel 0: 1 GND, 2 3V3, 3 SDA, 4 SCL SM04B-SRSS-TB(LF)(SN)
JST
Datasheet ↗
JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal
J3 QWIIC CH1 Qwiic socket on mux channel 1: 1 GND, 2 3V3, 3 SDA, 4 SCL SM04B-SRSS-TB(LF)(SN)
JST
Datasheet ↗
JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal
J4 QWIIC CH2 Qwiic socket on mux channel 2: 1 GND, 2 3V3, 3 SDA, 4 SCL SM04B-SRSS-TB(LF)(SN)
JST
Datasheet ↗
JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal
J5 QWIIC CH3 Qwiic socket on mux channel 3: 1 GND, 2 3V3, 3 SDA, 4 SCL SM04B-SRSS-TB(LF)(SN)
JST
Datasheet ↗
JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal
JP1 SDA PULL-UP Cut when the host or another chained module provides the upstream SDA pull-up SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm
JP2 SCL PULL-UP Cut when the host or another chained module provides the upstream SCL pull-up SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm
R1 4.7k Upstream SDA pull-up RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R2 4.7k Upstream SCL pull-up RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R3 4.7k Channel 0 SDA pull-up (fixed: a deselected segment floats otherwise) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R4 4.7k Channel 0 SCL pull-up (fixed) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R5 4.7k Channel 1 SDA pull-up (fixed: a deselected segment floats otherwise) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R6 4.7k Channel 1 SCL pull-up (fixed) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R7 4.7k Channel 2 SDA pull-up (fixed: a deselected segment floats otherwise) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R8 4.7k Channel 2 SCL pull-up (fixed) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R9 4.7k Channel 3 SDA pull-up (fixed: a deselected segment floats otherwise) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R10 4.7k Channel 3 SCL pull-up (fixed) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R11 10k ~RESET pull-up: hub out of reset until the host drives PMOD 2 low RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
U1 TCA9548APWR 8-channel I2C switch with reset, address 0x70 TCA9548APWR
Texas Instruments
Datasheet ↗
TSSOP-24_4.4x7.8mm_P0.65mm

Signals#

Net labels used in the schematic, which are also the names the HDL top level should use.

3V3 GND RESET_N SC0 SC1 SC2 SC3 SCL SCL_PU SD0 SD1 SD2 SD3 SDA SDA_PU

Production status#

Schematic ERC0 violations
PCB layoutcomplete
DRCnot run
Fab packagenot exported
Fabricatedno — design stage only

Source: boards/lab-modules/axl-007-i2c-hub


Catalog #7 in the AruviX lab line (../README.md), level L3. Solves I2C address clashes when a class chains many identical modules — and is the "why muxes exist" lesson.

Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.

What it teaches#

Write one control byte to 0x70 to select a channel, then address the device behind it as if it were alone on the bus. Two same-address sensors on two channels is the classic demo.

Design#

PMOD pin123456789101112
NetNC~RESETSCLSDAGND3V3NCNCSCLSDAGND3V3

Regenerate#

python3 generate_design.py

Remaining for release#