Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How to hold a target IC's pin H,L,Z (tri-state) individually, under MCU control ?

Status
Not open for further replies.

jayachar88

Member level 3
Joined
Feb 26, 2011
Messages
56
Helped
6
Reputation
12
Reaction score
6
Trophy points
1,288
Activity points
1,941
Hello,

Would like to hold a certain number (say 8) of pins of an IC, in a combination of "floating", "high", "low" such that this combination may change over time. As for holding the pins "high" and "low", I know how to do that pretty well, via a MCU, but not sure how to hold a line "floating" ? Searching around, I found 74ABT244, which is a "Octal buffer with inverting (3-state) output". Is this the right approach ? From the data-sheet I see that 74ABT244's outputs can be controlled only in 2 groups of 4 pins each, i.e. while H/L output can be had for each pin individually, inversion was possible for entire group of 4 pins. What I need is probably an IC that allows me to invert the pins individually. Parameteric search didn't quite yield anything like that so far.

Also, this is going to require lot of GPIO pins on the MCU. Should I be considering I/O extenders for this ? Or use shift-registers ?

thanks,
Jay
 

Hi,

As far as I know, most chips like the 244/245 are typically designed to connect to computer busses and as such will only tristate all lines together.

Perhaps if you say what you are connecting to and what the objectives are then someone can suggest an alternative method.

---------- Post added at 12:19 ---------- Previous post was at 10:48 ----------

Hi,

Just remembered, the 74125 has 4 individually controlled tri state buffers.
 

As the most simple solution, you can connect 8 I/O pins of your µP, presuming it has fully controllable pins, not like the "poor-mans" output pins of a 8051. I don't understand why you are considering about "inverting" feature of the tri-state drivers? As far as you reported, you want to be able to set the output to L, H, and Z, which is actually possible with both driver flavours.

HC125 gates are a suitable suggestion, analog switches or multiplexers would be anothe way, also allowing to drive different voltage levels to the device under test.

You didn't mention any condidtions like speed, logic level, required ouput current, acceptable leakage. Using I/O extenders is just an additional question of your exact setup, and beyond the scope of the original question, I think. Of course you can use them, if they offer an advantage.
 

Thanks @wp100. Actually 74125 seems to be perfect, though 8 lines would've been great. I guess there would most certainly be one.

---------- Post added 23-10-11 at 00:05 ---------- Previous post was 22-10-11 at 23:31 ----------

As the most simple solution, you can connect 8 I/O pins of your µP, presuming it has fully controllable pins, not like the "poor-mans" output pins of a 8051. I don't understand why you are considering about "inverting" feature of the tri-state drivers? As far as you reported, you want to be able to set the output to L, H, and Z, which is actually possible with both driver flavours.

HC125 gates are a suitable suggestion, analog switches or multiplexers would be anothe way, also allowing to drive different voltage levels to the device under test.

You didn't mention any condidtions like speed, logic level, required ouput current, acceptable leakage. Using I/O extenders is just an additional question of your exact setup, and beyond the scope of the original question, I think. Of course you can use them, if they offer an advantage.

Thanks @FvM. As for speed, it's a very low speed application (order of seconds), CMOS logic, and 20-40mA is all I need, driving an IR/RF **broken link removed**. The low speed is only for switching the address lines (which is a rare operation in my setup).

The decoder IC is a 3^8 logic for address pins. Researching I found this article on Sparkfun, and especially the comment by a user named Mattamatta. To quote --

A pin left floating is NOT the same as being tristated/high-z. When configured as an input, it will be a high-impedance node, but not in the same sense as a tristated pin.

Which is why I had parked the GPIO as high-Z thought, for the moment and looked for alternatives.
 

I can't understand the quoted comment:

A pin left floating is NOT the same as being tristated/high-z. When configured as an input, it will be a high-impedance node, but not in the same sense as a tristated pin.

Maybe the author meant to say something different. But as far as the problem is explained, floating and tri-state it's exactly the same, at least with a high-impedance (CMOS) driver, e.g. 74HC125 or a CMOS µP I/O pin with all pull-up or pull-down resistors disabled.

If you possibly refer to HT12E or similar Encoder chips, they usually have CMOS inputs with pull-up resistor, prepared for control by external switches to ground. They don't really distinguish between H and Z.

There are however other chips, that pull a floating (=high Z driven) pin a mid level, so the state can e distinguished from H and L.
 
Last edited:
Thanks @FvM. I am definitely going to try directly interfacing the encoder/decoder chips with my MCU. I am experimenting with Atmel AVR attiny2313 and also MSP430G2's, and I am sure of Atmel AVR, that those are the modern true GPIOs, and suspect the same for MSP430s as well.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top