SW8B PCB0048 MUX

Serial Wombat SW8B PCB0048 MUX I2C Multiplexing board

Video Goes here…

PRELOADED FIRMWARE IMAGE:

Default Image

MUX Usage Guide (See user manual below for overall Serial Wombat guide):

  • Wombat Pins 1,2,3 and 7 enable I2C mux channels when set high as digital outputs

  • Wombat Pins 0,4,5, and 6 can be configured to other pin modes (See pin modes available in loaded firmware image)

I2C Frequency up to 100kHz is supported. Faster speed may be possible, but will vary with bus conditions and number of wires and lengths.

Solder Jumper options:

  • I2C address for the Serial Wombat chip can be configured between 0×60 and 0×6F through closing the 4 address jumpers located near the chip

  • A board power LED can be enabled by closing the LED jumper at the bottom front of the board

  • The main I2C bus has optional 2200 ohm pull upresistors that can be enabled by closing the two “PULL” jumpers at the bottom front of the board.

  • Each muxed I2C bus has optional 10k pullup resistors that can be enabled by closing the two “PULL” jumpers above the QWIIIC connector for that bus on the front side of the board.

Basic Sample Arduino Sketch (see more in the library):

// Enable each bus segment and scan for attached I2C devices

#include <SerialWombat.h>

PCB0048_Mux swMux;

#define MUX_I2C_ADDRESS 0x60

void setup() {

Wire.begin(); //Initialize I2C

Serial.begin(115200); //Initialize Serial

delay(200);

swMux.begin(MUX_I2C_ADDRESS);

}

void scanI2C(){

for (int i2cAddress = 0x0E; i2cAddress <= 0x77; ++ i2cAddress) // Scan through all valid addresses

{

Wire.beginTransmission(i2cAddress); // Look for an I2C Ack

int error = Wire.endTransmission();

if (error == 0)

{

//Got an Ack. Does it behave like a Serial Wombat Chip?

Serial.print("I2C Device found at address 0x");

Serial.println(i2cAddress, HEX); }

}

}

void loop() {

// put your main code here, to run repeatedly:

Serial.println("All bus sections disabled:");

swMux.bus1.writePublicData(0);

swMux.bus2.writePublicData(0);

swMux.bus3.writePublicData(0);

swMux.bus7.writePublicData(0);

scanI2C();

Serial.println();

Serial.println();

Serial.println("Bus section 1:");

swMux.bus1.writePublicData(0xFFFF);

swMux.bus2.writePublicData(0);

swMux.bus3.writePublicData(0);

swMux.bus7.writePublicData(0);

scanI2C();

Serial.println();

Serial.println();

Serial.println("Bus section 2:");

swMux.bus1.writePublicData(0);

swMux.bus2.writePublicData(0xFFFF);

swMux.bus3.writePublicData(0);

swMux.bus7.writePublicData(0);

scanI2C();

Serial.println();

Serial.println();

Serial.println("Bus section 3:");

swMux.bus1.writePublicData(0);

swMux.bus2.writePublicData(0);

swMux.bus3.writePublicData(0xFFFF);

swMux.bus7.writePublicData(0);

scanI2C();

Serial.println();

Serial.println();

Serial.println("Bus section 7:");

swMux.bus1.writePublicData(0);

swMux.bus2.writePublicData(0);

swMux.bus3.writePublicData(0);

swMux.bus7.writePublicData(0xFFFF);

scanI2C();

Serial.println();

Serial.println();

delay(10000); // Wait 10 seconds and do it again.

}

Revision History

PCB0048_V1:

Initial Version

Projects: