Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

Open drain for I2C communication using a PXIe-6341?

Solved!
Go to solution

Hi all,

I am trying to set up a variant of I2C communication using a PXIe-6341 (and a SCB-6A). The Sensiron SHT-75 sensors use open collector (open drain) digital communication similar to I2C, but without multiple device addresses.

 

I want to communicate with 3 of these sensors. I plan to wire them up with a common clock and a separate digital line to the data pin for each sensor. Since it is recommended to provide them with 3.3V for calibration reasons (they will run on 5V) I was also thinking of using an analog output line for the power. Each sensor has a maximum current draw of 1 mA and the analog out is rated to 15 mA. I can use the 5V power line, but as I say, the manufacturer recommends 3.3 V.

 

The precise software I am planning on running is here: https://forums.ni.com/t5/LabVIEW/Sensirion-sht7x-labview/m-p/901063#M406440

 

I cannot find the specs anywhere on the type of DIO offered by the 6341. I have gone through the spec sheet with a fine toothed comb and found nothing. Am I looking in the wrong place? Why is this not a listed spec for the digital IO lines? How to I find out if this DIO hardware is open drain as opposed to push-pull (active drive)? I have the sneaking suspicion that I am missing something. . . ?

 

To sum up, can I carry out open drain communication to multiple SHT-75 sensors using a PXIe-6341? (And why is this not in the hardware specs?)

 

Thank you in advance for any assistance.

0 Kudos
Message 1 of 8
(1,420 Views)
Solution
Accepted by topic author EamonnFPMcKernan

By default all DAQ device Digital Outputs are Push-Pull, hence only devices that support Open-Drain configuration will mention that it supports open drain.

 

You can implement open-drain communication by using an external tri-state buffer or a push-pull to open-drain conversion chip.

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 2 of 8
(1,401 Views)

@santo_13 wrote:

You can implement open-drain communication by using an external tri-state buffer or a push-pull to open-drain conversion chip.


Or use a simple FET (driving the FET will "connect" the drain and source).  We added a pull down on the gate just in case the DIO was disconnected for whatever reason.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 3 of 8
(1,364 Views)

@crossrulz wrote:

@santo_13 wrote:

You can implement open-drain communication by using an external tri-state buffer or a push-pull to open-drain conversion chip.


Or use a simple FET (driving the FET will "connect" the drain and source).  We added a pull down on the gate just in case the DIO was disconnected for whatever reason.


If you go with discrete implementation as suggested by crossrulz, do pay attention to the inversion in the logic, when DIO is high, the bus is pulled low and vice versa.

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 4 of 8
(1,359 Views)

@santo_13 wrote:

If you go with discrete implementation as suggested by crossrulz, do pay attention to the inversion in the logic, when DIO is high, the bus is pulled low and vice versa.


Well, in the case of I2C, a low on the bus is considered a "true" or a "1".


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 5 of 8
(1,353 Views)

Thank you both for the information. It's useful to know that push-pull is the default. I presume that if I used a tri-state buffer I would just wire both the enable and the input to the push-pull output?

 

I don't want to wait around to order special circuitry, so I asked around and someone found an old USB-6008 lying around in another lab so I will just use that I think. Let's just hope it still works.

0 Kudos
Message 6 of 8
(1,350 Views)

@crossrulz wrote:

@santo_13 wrote:

If you go with discrete implementation as suggested by crossrulz, do pay attention to the inversion in the logic, when DIO is high, the bus is pulled low and vice versa.


Well, in the case of I2C, a low on the bus is considered a "true" or a "1".


Not really, it is still High is 1 and Low is 0, just that you don't actively drive the high but rather let the pull-up resistor do the trick.

santo_13_0-1646671902141.png

 

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 7 of 8
(1,339 Views)

@EamonnFPMcKernan wrote:

Thank you both for the information. It's useful to know that push-pull is the default. I presume that if I used a tri-state buffer I would just wire both the enable and the input to the push-pull output?

 

I don't want to wait around to order special circuitry, so I asked around and someone found an old USB-6008 lying around in another lab so I will just use that I think. Let's just hope it still works.


If you use a tri-state buffer, you have to invert the enable signal as you want the buffer active when the DIO drives a LOW and tristate when HIGH.

 

High = Tristate

Low = Low

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 8 of 8
(1,338 Views)