Live demo — data resets daily at 03:00 UTC. Nothing you enter is saved. Server UI →

ESH10000028 - AMUX Module

Overview

The ESH10000028 is an analog multiplexer module providing flexible signal routing between 10 independent multiplexers (A-K) with additional bus multiplexing for I²C, UART, SPI, and JTAG communication.

Description

The AMUX Module features 10 independent 8:1 analog multiplexers that can be interconnected through cross-connect switches. Additionally, it provides bus routing for digital communication protocols, enabling flexible test configurations and signal path management.

Key Features:

  • 10 Independent 8:1 Multiplexers (MUX_A through MUX_K):

    • 8 input channels per multiplexer
    • Software-selectable routing
    • Cross-connect switches for inter-MUX connections
  • 6 Cross-Connect Switches:

    • AC: Connects MUX A to MUX C
    • BD: Connects MUX B to MUX D
    • CE: Connects MUX C to MUX E
    • DF: Connects MUX D to MUX F
    • EG: Connects MUX E to MUX G
    • FH: Connects MUX F to MUX H
    • GJ: Connects MUX G to MUX J
    • HK: Connects MUX H to MUX K
  • Bus Multiplexing: Route communication buses to different MUX groups

    • I2C routing
    • UART routing (ABEF or CDGH groups)
    • SPI routing (ABEF or CDGH groups)
    • JTAG routing (ABEF or CDGH groups)
  • Communication Interfaces:

    • External I²C channel
    • UART channel (RS232, configurable baudrate)
    • SPI channel

Hardware Details

GPIO Expanders:

  • Chip: NXP PI4IOE5V6416 (4 chips)
  • I²C Addresses:
    • U26: 0x20 (Int_I2C0) - MUX select signals A-E
    • U27: 0x21 (Int_I2C0) - MUX select signals F-K, cross-connects AC/BD
    • U28: 0x20 (Int_I2C1) - Cross-connects EG/FH/CE/DF/GJ/HK, output enables
    • U29: 0x21 (Int_I2C1) - Bus routing control, status LED
  • Purpose: Multiplexer channel selection and output enable control

Multiplexer Chips:

  • Type: Analog multiplexers (8:1)
  • Control Signals: 3-bit select (S0, S1, S2) per MUX
  • Output Enable: Active-low per MUX

Channel Naming Convention

All channels follow the naming pattern: {ModuleIndex}.ESH10000028.{ChannelName}

Example: Module at position 1, MUX A would be: 1.ESH10000028.MUX_A

User-Accessible Channels

Channel Name Type Direction Usage Description
MUX_A Multiplexer OUT UserAllocatable Multiplexer A channel selector (0-7)
MUX_B Multiplexer OUT UserAllocatable Multiplexer B channel selector (0-7)
MUX_C Multiplexer OUT UserAllocatable Multiplexer C channel selector (0-7)
MUX_D Multiplexer OUT UserAllocatable Multiplexer D channel selector (0-7)
MUX_E Multiplexer OUT UserAllocatable Multiplexer E channel selector (0-7)
MUX_F Multiplexer OUT UserAllocatable Multiplexer F channel selector (0-7)
MUX_G Multiplexer OUT UserAllocatable Multiplexer G channel selector (0-7)
MUX_H Multiplexer OUT UserAllocatable Multiplexer H channel selector (0-7)
MUX_J Multiplexer OUT UserAllocatable Multiplexer J channel selector (0-7)
MUX_K Multiplexer OUT UserAllocatable Multiplexer K channel selector (0-7)
BUSMUX Multiplexer OUT UserAllocatable Bus routing selector (None, I2C, UART_ABEF, UART_CDGH, JTAG_ABEF, JTAG_CDGH, SPI_ABEF, SPI_CDGH)
AC Digital OUT UserAllocatable Cross-connect switch: MUX A ↔ MUX C
BD Digital OUT UserAllocatable Cross-connect switch: MUX B ↔ MUX D
EG Digital OUT UserAllocatable Cross-connect switch: MUX E ↔ MUX G
FH Digital OUT UserAllocatable Cross-connect switch: MUX F ↔ MUX H
CE Digital OUT UserAllocatable Cross-connect switch: MUX C ↔ MUX E
DF Digital OUT UserAllocatable Cross-connect switch: MUX D ↔ MUX F
GJ Digital OUT UserAllocatable Cross-connect switch: MUX G ↔ MUX J
HK Digital OUT UserAllocatable Cross-connect switch: MUX H ↔ MUX K
I2C I2C IN/OUT UserAllocatable External I²C communication channel
UART UART IN/OUT UserAllocatable UART communication (RS232, 9600 baud default, 0x0D termination)
SPI SPI IN/OUT UserAllocatable SPI communication channel

Total User Channels: 21 (10 MUX selectors + 1 BUSMUX + 8 cross-connects + 3 communication)

Channel Configuration

Multiplexer Channel Selection

Each MUX channel accepts a string value "0" through "7":

SetValues(
    new[] { "0.ESH10000028.MUX_A" },
    new[] { "3" }  // Select input channel 3 on MUX A
);

Bus Multiplexer Configuration

BUSMUX accepts the following destinations:

  • None: No bus routing (default)
  • I2C: Route I²C bus
  • UART_ABEF: Route UART to MUX group A/B/E/F
  • UART_CDGH: Route UART to MUX group C/D/G/H
  • JTAG_ABEF: Route JTAG to MUX group A/B/E/F
  • JTAG_CDGH: Route JTAG to MUX group C/D/G/H
  • SPI_ABEF: Route SPI to MUX group A/B/E/F
  • SPI_CDGH: Route SPI to MUX group C/D/G/H
SetValues(
    new[] { "0.ESH10000028.BUSMUX" },
    new[] { "I2C" }  // Enable I²C bus routing
);

Cross-Connect Switches

Digital cross-connect channels:

SetValues(
    new[] { "0.ESH10000028.AC" },
    new[] { "true" }  // Connect MUX A to MUX C
);

Programming Interface

Configure Multiplexer:

ConfigureChannels(new[] {
    new MultiplexerChannel {
        NetName = "0.ESH10000028.MUX_A",
        Enabled = true,
        Value = "5"  // Select channel 5
    }
});

Set Bus Routing:

SetValues(
    new[] { "0.ESH10000028.BUSMUX" },
    new[] { "UART_ABEF" }  // Route UART to ABEF group
);

I²C Communication:

// Perform I²C transaction on external I²C channel
SetValues(
    new[] { "0.ESH10000028.I2C" },
    new[] { "0x50:W:00,01,02" }  // Write to I²C device at 0x50
);

Best Practices

  1. Set BUSMUX before communication: Configure bus routing before attempting I²C/UART/SPI/JTAG operations
  2. Disable unused cross-connects: Minimize signal crosstalk by only enabling needed connections
  3. Use MUX systematically: Plan signal routing to avoid conflicts
  4. Check bus destination compatibility: Ensure ABEF/CDGH grouping matches your hardware connections

Module Initialization Sequence

On Reset(), the module performs:

  1. Clear existing channel list
  2. Create 10 multiplexer channels (MUX_A through MUX_K) with default "0"
  3. Create BUSMUX channel with default "None"
  4. Setup 4 GPIO expander chips for MUX control
  5. Add 8 cross-connect digital channels (AC, BD, EG, FH, CE, DF, GJ, HK)
  6. Add communication channels (I2C, UART, SPI)
  7. Reset all GPIO expanders
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.