Post Go back to editing

SPI bus with ADUM1401

Category: Hardware
Product Number: ADUM1401

Hello,

I would like to connect multiple SPI device and to isolate them.

I've used in the past the ADUM1401 isolator, but just for a 1 to 1 isolation.

I'm wondering how to wire it for multiple connection.

Can the schematic attached work?

On the left the microcontroller side, which has SPI ports and one CS pin for each device.
On the right the three devices SPI.

Please note that on the right side the ouput pins are always enabled (i.e. VE2 is always connected to VCC), but the output is read by the device only if proper CS is low.

In the left side the CS cable is inverted. This means that when i would like to talk with one device, I lower the device CS, the VE1 attached to that device should go up due to the NPN inverter.

I'm not sure about this.

Any help will be appreciated.

Parents
  • Hi lkdgironi, 

    You have correctly identified a very commonly overlooked issue. When multiple isolated SPI devices share the same MISO line on the controller side, we need to worry about contention between the various outputs. The standard data isolators are not SPI devices, they are protocol agnostic. They don't know a CS or /CS when they see it, so a designer needs to make use of the VE1 pin to make the isolator act like an SPI interface.

    Its important to set the CHD output to high-Z mode when the SPI device on the other side is not being addressed to keep the uC side MISO signal free for traffic from other devices. And like you pointed out, an SPI device with active low (/CS) signal will need that signal inverted when its sent to the VE1 pin.  

    There is AN-1478 that goes into the details on SPI isolation, and that may be useful for general guidance. 

    I'll also recommend the ADuM341E. This would be the latest/greatest in isolation technology (and is pin-compatible with the ADuM1401).

    Regards,

    Jason

  • Thank you jnaso. The AN-1478 is really interesting. Most interesting part for my purpose is page 9. On "Figure 13. MISO Tristate for Slaves Isolated from One Another", they connect the isolators with VE1 in parallel with VIA (which is CS from controller uC to CS of target device). But from datasheet of ADuM1401, page 23: "VE1 - Output Enable 1. Active high logic input. VOD output is enabled when VE1 is high or disconnected. VOD is disabled when VE1 is low. In noisy environments, connecting VE1 to an external logic high or low is recommended.". So if VE1 is high VOD is enabled, but in the AN-1478 wiring CS on device side will be high, that's the reason of my inversion.
    Maybe the AN-1478 is for other purpose?, for some "active high" CS devices?

    I've check the ADuM341E, that's sounds interesting, above all for the pin compatibility.


    Thank you!

Reply
  • Thank you jnaso. The AN-1478 is really interesting. Most interesting part for my purpose is page 9. On "Figure 13. MISO Tristate for Slaves Isolated from One Another", they connect the isolators with VE1 in parallel with VIA (which is CS from controller uC to CS of target device). But from datasheet of ADuM1401, page 23: "VE1 - Output Enable 1. Active high logic input. VOD output is enabled when VE1 is high or disconnected. VOD is disabled when VE1 is low. In noisy environments, connecting VE1 to an external logic high or low is recommended.". So if VE1 is high VOD is enabled, but in the AN-1478 wiring CS on device side will be high, that's the reason of my inversion.
    Maybe the AN-1478 is for other purpose?, for some "active high" CS devices?

    I've check the ADuM341E, that's sounds interesting, above all for the pin compatibility.


    Thank you!

Children