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
- Set BUSMUX before communication: Configure bus routing before attempting I²C/UART/SPI/JTAG operations
- Disable unused cross-connects: Minimize signal crosstalk by only enabling needed connections
- Use MUX systematically: Plan signal routing to avoid conflicts
- Check bus destination compatibility: Ensure ABEF/CDGH grouping matches your hardware connections
Module Initialization Sequence
On Reset(), the module performs:
- Clear existing channel list
- Create 10 multiplexer channels (MUX_A through MUX_K) with default "0"
- Create BUSMUX channel with default "None"
- Setup 4 GPIO expander chips for MUX control
- Add 8 cross-connect digital channels (AC, BD, EG, FH, CE, DF, GJ, HK)
- Add communication channels (I2C, UART, SPI)
- Reset all GPIO expanders