This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS100MB203: MUX Configuration - input/output select via SMB

Part Number: DS100MB203

I'm trying to configure the MUX input/output selection via SMB

SEL0 and SEL1 are connected to pull-down, so default input/output selection is set by HW - port B for both

ENSMB is also connected to pull-down

To change the connection to PORT A, I perform the following:

Set ENSMB to '1' (3.3V GPIO)

set register 0x06 to 0x18

set register 0x5E to 0x06

set register 0x5F to 0xF0

It does not work

Moreover, when setting ENSMB all input are invalid

I changed SEL0, SEL1 connection in HW to pull-up and the input did changed to PORT A for both - excluding HW issue

Please advise

Thanks,

Anat

  • Hi Anat,

    Is it correct to assume that you are setting ENSMB to 3.3V after the device has powered up?  If so, this is not a typical use case.  If ENSMB is pulled high or set to 1 prior to device powerup, does enable valid SMBus communication?

    Thanks,
    Drew

  • Hi Drew,

    Your assumption is correct.

    As you suggested, I changed ENSMB HW connection and connected it to 3.3V via 1K resistor.

    I tried to set the MUX using these settings:

    set register 0x06 to 0x18

    set register 0x5E to 0x07

    set register 0x5F to 0xF0

    didn't work

    Moreover, I expected Port B to operate on power-up, since I have pull-down connected to SEL0 and SEL1, but it did not.

    Thanks,

    Anat

  • Hi Anat,

    Moreover, I expected Port B to operate on power-up, since I have pull-down connected to SEL0 and SEL1, but it did not.

    Just to clarify, the only change was connect ENSMB to 3.3V via 1K?  It seems strange that switching modes would affect the power up state of SEL0/SEL1.

    Regarding your settings, they seem appropriate for switching from port B to port A. Have you confirmed that you are able to read registers from the device?  Just want to ensure that I2C communication is working as expected.

    Thanks,

    Drew

  • Hi Drew,

    Yes, ENSMB is the only HW change I did.

    I was able to read the registers value, no problem with I2C interface.

    Other HW settings are:

    SEL0, SLE1 = pull-down

    EQ_D0, EQ_D1 = pull-down

    DEM_D0, DEM_D1 = pull-down

    EQ_S0, EQ_S1 = pull-down

    DEM_S0, DEM_S1 = pull-down

    MODE = pull-down

    INPUT_EN = pull-down

    The MUX operates properly with these setting when ENSMB is pulled-down.

    Just a reminder, when I changed SEL0 and SEL1 to pull-up, It did changed the input from PORT B to PORT A.

    Thanks,

    Anat

  • Hi Anat,

    This seems a little puzzling to me.  I will see if I can replicate this on my end and will get back to you.

    Thanks,

    Drew

  • Hi Drew,

    Did you had the chance to check it ?

    Thanks,

    Anat

  • Hi Anat,

    Apologies for the delay, I am planning on looking into this today.

    Thanks,

    Drew

  • Hi Anat,

    I wanted to give you an update on this.

    On my end, I had some difficulties establishing i2c communication with the part and I wasn't able to confirm the register settings.
    With that said, I did confirm that with ENSMB pulled up via 1k and SEL0/1 pulled down via 1k, port B operated on power up.  I was also able to change from port A to B by adjusting the strap resistor on SEL0/1 while ENSMB was pulled high.

    I am still planning on verifying register functionality.

    Thanks,

    Drew

  • Hi Drew,

    Did you managed to verify the I2C functionality ?

    Thanks,

    Anat

  • Hi Anat,

    Sorry about the delay.  Yes I was able to.  The issue I ran into with I2C functionality may actually be impacting you as well.  Whenever I had previously attempted to replicate your issue, I had matched your pin configurations.  This meant that I had DEM_S0, DEM_S1 = pull-down.  Since these are also SDA/SCL, the I2C communication was not working correctly.  Once I made this change, I followed register writes below and I observed the mux switch from B to A.

    set register 0x06 to 0x18

    set register 0x5E to 0x07

    set register 0x5F to 0xF0

    When using the device in SMBus mode, DEM_S0, DEM_S1 should not be pulled down since these are also SDA/SCL.  Hopefully changing this fixes your issue!

    Thanks,
    Drew