Maker Pro
Maker Pro

Mixing logic families design rules

D

Dave Boland

Jan 1, 1970
0
I need to design a card that has a 3.3 volt processor on it, a couple of
5 volt CMOS parts, and interface to TTL. This is turning into a
headache, so I'd appreciate some advice from experienced system/logic
designers. Let me start by telling you what I think I know, and you can
correct me.

The processor is called 5 volt tolerant, which seems to mean it will
handle a 5.1 volt input without problem. One reference I read said to
add a 100 ohm resistor in series to limit current for the protection
diodes in the processor. Right so far? What is the impact to
reliability of the processor? The reason for asking about reliability
is that I want a design that will work for years and years, not just
long enough for a show and tell.

Back to that processor. The Voh is at least 2.5 volts and the Vol is
about .5 volts, so the output looks like it would work with TTL. Right
so far?

The processor outputs can be either totempole, or open drain. With open
drain, I can pull it high so the output will be above the 3.5 volts
needed by 5 volt CMOS. I assume (yes, I know what that word means) that
the processor can pull the line to .6 volts or less for a low output.
Will this work well and reliably?

I'm told that doing things as described will work, but I sacrifice
propagation speed. Typical numbers seem to be 40 to 80 nS. This may be
a problem for use on a bus.

The alternative is an alphabet soup of logic families from ABT(?), HC,
HCT, and others. This is where I feel especially in the dark. Any good
rules of thumb for mixing logic families? I have some info from Philips
(AN240 I believe), but is is almost 10 years old and fails to mention
some of the logic families I see being used. Have also looked at other
web sites, but things still seem as clear as mud.

Finally, one particular troubling area is interfacing the I2C bus. It
will see a 3.3 volt device, two 5 volt CMOS devices, and one TTL. Since
this is a bidirectional bus things really get messy. Max has some
devices to do this, but I don't know how well they work, or if there is
a better alternative?

Sorry for the long append. Hope no one dozes off reading this. Thanks
for any helpful information.

Dave,
 
T

Tim Wescott

Jan 1, 1970
0
Dave said:
I need to design a card that has a 3.3 volt processor on it, a couple of
5 volt CMOS parts, and interface to TTL. This is turning into a
headache, so I'd appreciate some advice from experienced system/logic
designers. Let me start by telling you what I think I know, and you can
correct me.

The processor is called 5 volt tolerant, which seems to mean it will
handle a 5.1 volt input without problem. One reference I read said to
add a 100 ohm resistor in series to limit current for the protection
diodes in the processor. Right so far? What is the impact to
reliability of the processor? The reason for asking about reliability
is that I want a design that will work for years and years, not just
long enough for a show and tell.

If the processor manufacturer is honest and you follow their guidelines
there should be no impact to reliability. You can often do bizarre and
wonderful things that a manufacturer won't even want to _see_, but that
work fine in practice -- so if you're going off the data sheet you
should be OK.
Back to that processor. The Voh is at least 2.5 volts and the Vol is
about .5 volts, so the output looks like it would work with TTL. Right
so far?
Right.

The processor outputs can be either totempole, or open drain. With open
drain, I can pull it high so the output will be above the 3.5 volts
needed by 5 volt CMOS. I assume (yes, I know what that word means) that
the processor can pull the line to .6 volts or less for a low output.
Will this work well and reliably?

You'd have to check. You'll be pulling it high with a resistor which
will flow some current into the 3.3V supply -- it's up to you to make
sure the voltage gets high enough. I wouldn't do this unless I had to
-- I'd use HCT or ACT parts if I could.
I'm told that doing things as described will work, but I sacrifice
propagation speed. Typical numbers seem to be 40 to 80 nS. This may be
a problem for use on a bus.

See above comment. You can trade off speed, fanout and power
consumption by adjusting your pull-up resistor.
The alternative is an alphabet soup of logic families from ABT(?), HC,
HCT, and others. This is where I feel especially in the dark. Any good
rules of thumb for mixing logic families? I have some info from Philips
(AN240 I believe), but is is almost 10 years old and fails to mention
some of the logic families I see being used. Have also looked at other
web sites, but things still seem as clear as mud.

Read all data sheets carefully, and think hard. In general a TTL
compatible 5V CMOS part should be fine with 3.3V logic.
Finally, one particular troubling area is interfacing the I2C bus. It
will see a 3.3 volt device, two 5 volt CMOS devices, and one TTL. Since
this is a bidirectional bus things really get messy. Max has some
devices to do this, but I don't know how well they work, or if there is
a better alternative?

If you pull up to 5V this _should_ work, assuming that the 3.3V part
allows it and doesn't smoke.
Sorry for the long append. Hope no one dozes off reading this. Thanks
for any helpful information.

Dave,
Two final suggestions:

One: See if you can get app engineering support from the processor
vendor or from the distributor. I've always gotten good support and
I've never been involved in any high-volume stuff. There should be an
app engineer out there who's job it is to make you happy with that
processor, if there isn't you should be questioning your choice of
manufacturer and/or distributor.

Two: Allow me to repeat my advise about reading all data sheets
carefully and thinking hard. All the information should be there if you
dig for it or if your local applications engineer points it out. Having
said that, you're the one who's ultimately responsible for making it
work so you shouldn't feel like you're doing it b'guess and b'gosh.
 
T

Tom Knight

Jan 1, 1970
0
In addition to what Tim writes, you should also check the Iol of the
processor. TTL inputs source significant current, and, especially
with the addition of a pullup resistor to +3.3 you should check that
the output pad can pull it all the way down. The size of the resistor
should be chosen to load the output pad near capacity, likely, if you
are concerned about output speed, since the risetime will be
controlled by the resistance of the pullup and the parasitic
capacitance of the wiring and pads.
 
D

del cecchi

Jan 1, 1970
0
Dave Boland said:
I need to design a card that has a 3.3 volt processor on it, a couple of
5 volt CMOS parts, and interface to TTL. This is turning into a
headache, so I'd appreciate some advice from experienced system/logic
designers. Let me start by telling you what I think I know, and you can
correct me.

The processor is called 5 volt tolerant, which seems to mean it will
handle a 5.1 volt input without problem. One reference I read said to
add a 100 ohm resistor in series to limit current for the protection
diodes in the processor. Right so far? What is the impact to
reliability of the processor? The reason for asking about reliability
is that I want a design that will work for years and years, not just
long enough for a show and tell.

Back to that processor. The Voh is at least 2.5 volts and the Vol is
about .5 volts, so the output looks like it would work with TTL. Right
so far?

The processor outputs can be either totempole, or open drain. With open
drain, I can pull it high so the output will be above the 3.5 volts
needed by 5 volt CMOS. I assume (yes, I know what that word means) that
the processor can pull the line to .6 volts or less for a low output.
Will this work well and reliably?

I'm told that doing things as described will work, but I sacrifice
propagation speed. Typical numbers seem to be 40 to 80 nS. This may be
a problem for use on a bus.

The alternative is an alphabet soup of logic families from ABT(?), HC,
HCT, and others. This is where I feel especially in the dark. Any good
rules of thumb for mixing logic families? I have some info from Philips
(AN240 I believe), but is is almost 10 years old and fails to mention
some of the logic families I see being used. Have also looked at other
web sites, but things still seem as clear as mud.

Finally, one particular troubling area is interfacing the I2C bus. It
will see a 3.3 volt device, two 5 volt CMOS devices, and one TTL. Since
this is a bidirectional bus things really get messy. Max has some
devices to do this, but I don't know how well they work, or if there is
a better alternative?

Sorry for the long append. Hope no one dozes off reading this. Thanks
for any helpful information.

Dave,

It appears as if this was intended for comp.arch.embedded not comp.arch,
embedded as it was originally posted. I have fixed the newgroups line
accordingly.
 
M

Mac

Jan 1, 1970
0
I need to design a card that has a 3.3 volt processor on it, a couple of
5 volt CMOS parts, and interface to TTL. This is turning into a
headache, so I'd appreciate some advice from experienced system/logic
designers. Let me start by telling you what I think I know, and you can
correct me.

The processor is called 5 volt tolerant, which seems to mean it will
handle a 5.1 volt input without problem. One reference I read said to
add a 100 ohm resistor in series to limit current for the protection
diodes in the processor.

I wouldn't use the 100 Ohm resistor. If the inputs have simple protection
diodes to their own VCC, then the chip is NOT 5 Volt tolerant.
Right so far? What is the impact to
reliability of the processor? The reason for asking about reliability
is that I want a design that will work for years and years, not just
long enough for a show and tell.

The datasheet for the processor will certainly list the absolute maximum
Voltages which may be applied to the input as well as recommended
operating conditions. If it says you can apply 5 Volts to the input pins,
then you don't need to do anything else.
Back to that processor. The Voh is at least 2.5 volts and the Vol is
about .5 volts, so the output looks like it would work with TTL. Right
so far?

Sounds good.
The processor outputs can be either totempole, or open drain. With open
drain, I can pull it high so the output will be above the 3.5 volts
needed by 5 volt CMOS. I assume (yes, I know what that word means) that
the processor can pull the line to .6 volts or less for a low output.
Will this work well and reliably?

I'm not sure. It isn't always safe to pull even open collector
outputs higher than VCC. But in this case, it kind of sounds as
though they are deliberately giving you the open collector outputs
so you can pull up to whatever level you need. You'll have to read
the datasheet. Also, you'll have to check how much current the outputs
can sink when they try to go low, as another poster said.

I'm trying to remember a similar problem I had. I think I had to
design an input that could be driven by either TTL or LVTTL, but the
chip was CMOS. So I put a tri-stateable 5 Volt TTL buffer in front of the
CMOS with a pullup on the output. Then I tied the disable to the input.
So when the input is high, the output is tri-stated, and the pullups
set the signal level. When the input is low, output is actively driven
low to TTL levels. But I was not concerned about propagation delay.
I'm told that doing things as described will work, but I sacrifice
propagation speed. Typical numbers seem to be 40 to 80 nS. This may be
a problem for use on a bus.

I don't think this will be a problem for I2C. How fast is the bus?
The alternative is an alphabet soup of logic families from ABT(?), HC,
HCT, and others. This is where I feel especially in the dark. Any good
rules of thumb for mixing logic families? I have some info from Philips
(AN240 I believe), but is is almost 10 years old and fails to mention
some of the logic families I see being used. Have also looked at other
web sites, but things still seem as clear as mud.

Finally, one particular troubling area is interfacing the I2C bus. It
will see a 3.3 volt device, two 5 volt CMOS devices, and one TTL. Since
this is a bidirectional bus things really get messy. Max has some
devices to do this, but I don't know how well they work, or if there is
a better alternative?

Well, you'll have to settle on a signalling standard for the bus.
Unfortunately, I think it is up to you to determine which one will cause
the least pain. ;-)
Sorry for the long append. Hope no one dozes off reading this. Thanks
for any helpful information.

Dave,

--Mac
 
N

Nico Coesel

Jan 1, 1970
0
Dave Boland said:
I need to design a card that has a 3.3 volt processor on it, a couple of
5 volt CMOS parts, and interface to TTL. This is turning into a
headache, so I'd appreciate some advice from experienced system/logic
designers. Let me start by telling you what I think I know, and you can
correct me.

The processor is called 5 volt tolerant, which seems to mean it will
handle a 5.1 volt input without problem. One reference I read said to
add a 100 ohm resistor in series to limit current for the protection
diodes in the processor. Right so far? What is the impact to

Follow the datasheet for the processor: if it doesn't say 'use
resistors' then don't use resistors.

However, I think you will be running into trouble anyway. If you are
going to mix 3.3V and 5V devices on 1 bus, the 3.3V devices need to be
5V tolerant as well. You can use any 5V tolerant 3.3V logic family to
split the bus with a '245 bidirectional buffer, but this also requires
to make separate address ranges for the 3.3V and 5V devices otherwise
you don't know when to switch the bus on and of. If you need 5V levels
on the 5V side, put a 5V HCT245 in series with the 3.3V '245 and
you'll have comlete translation with standard components. Same goes
for the address line, you can use a 5V HCT244 for these.
Finally, one particular troubling area is interfacing the I2C bus. It
will see a 3.3 volt device, two 5 volt CMOS devices, and one TTL. Since
this is a bidirectional bus things really get messy. Max has some
devices to do this, but I don't know how well they work, or if there is
a better alternative?

You can create 2 busses. One for 3.3V devices (pull-up resistors to
3.3V) and one for 5V devices (pull-up resistors to 5V) since the
processor is 5V tolerant.
 
K

Ken Smith

Jan 1, 1970
0
I need to design a card that has a 3.3 volt processor on it, a couple of
5 volt CMOS parts,

Which sort of CMOS do you mean? CD4000 or 74HCXXXX

I suggest you look at using 74HCTXX parts to buffer the outputs of the
micro and raise the swing to full CMOS if you need full swing outputs.

If the number of chips on 3.3V is low, it is usually best to standardize
all your logic signals up to the 5V.
 
Top