LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Digital output doesn't work in a software programmed SPI communication

I'm having trouble understanding your question. I understand that the 6008 and 6009 are doing something different. Do they both start at the same level before running the program, or the 6008 starts at low and the 6009 starts at high? You probably can't set the power-up state of the outputs.

 

It is possible that the logic levels are reversed from what you expect. For the open-drain output, the "on" state is 0 voltage (sinking current to ground) and the "off" state is floating high. I don't know which corresponds to "True" and which corresponds to "False" but you might need to invert the outputs.

0 Kudos
Message 11 of 14
(1,154 Views)

Hi nathand, 

 

You said the "off" state is floating high, may I ask what doesn't the floating high mean? What's the differentce between floating high and high? 

For the open-drain shown below, what I know is when the Vin is low, the output is connected to the high level through a pull up resistor. 

5.jpg

 

Also in you previous reply, you said the difference between open-drain and active drive(push and pull) is on the current, active drive can provide larger current. I wonder is that because the pull up resistor limits the current in open-drain configuration? 

 

 

 

 

0 Kudos
Message 12 of 14
(1,130 Views)

 

 

0 Kudos
Message 13 of 14
(1,128 Views)

Are you focused on the difference between driver types because you're curious about the electronics, or because you're convinced that it's the reason your code doesn't work? If the latter, it might be worth spending more time understanding the code and probing signals with a voltmeter or oscilloscope, since I suspect you can make this work with either type of driver. SPI communication should not require draw much current.


@cli21 wrote:

You said the "off" state is floating high, may I ask what doesn't the floating high mean? What's the differentce between floating high and high? 

For the open-drain shown below, what I know is when the Vin is low, the output is connected to the high level through a pull up resistor. 

 

Also in you previous reply, you said the difference between open-drain and active drive(push and pull) is on the current, active drive can provide larger current. I wonder is that because the pull up resistor limits the current in open-drain configuration? 


I think these questions are answered in your other thread, but I'll try briefly here. An open-drain either connects a pin to ground, or leaves that pin floating. The pull-up resistor provides a defined level when the the drain is off, but cannot provide much current in that state because of the resistor. On the other hand, without a resistor, you would have a short circuit when the drain is open. If you need to use an open-drain with a higher-current device, you provide an external power supply for the device and you let the open drain switch the path to ground on or off.

 

An active, or push-pull, driver connects an output to either a power source or to ground. An active drive is more complicated because it requires two transistors, only one of which is active at a time, with one switching to ground and the other to a power source. If they're both on at once you have a direct connection from source to ground - a short circuit. It doesn't have a pull-up resistor.

Message 14 of 14
(1,114 Views)