Mixing logic families design rules

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.


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.

See above comment. You can trade off speed, fanout and power consumption by adjusting your pull-up resistor.

Read all data sheets carefully, and think hard. In general a TTL compatible 5V CMOS part should be fine with 3.3V logic.

If you pull up to 5V this _should_ work, assuming that the 3.3V part allows it and doesn't smoke.

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.

Tim Wescott
Wescott Design Services
 Click to see the full signature
Reply to
Tim Wescott
Loading thread data ...

This document may be of some use to you:

formatting link

Reply to
Fritz Schlunder

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.

Reply to
Tom Knight













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.

Reply to
del cecchi

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.


Reply to
Dave Boland

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.

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.

Sounds good.

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 don't think this will be a problem for I2C. How fast is the bus?

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. ;-)


Reply 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.

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.
Reply to nico@nctdevpuntnl (punt=.)
Bedrijven en winkels vindt U op www.adresboekje.nl
Reply to
Nico Coesel

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.

kensmith@rahul.net   forging knowledge
Reply to
Ken Smith

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.