CD4050 does not work with pullup resistors in a data bus. - Page 1
Forum section: electronics / general

author: luiHS
author_rank: Frequent Contributor
timestamp: March 10, 2020, 11:49:16 am
content: Hi.I have a problem with the design of a circuit, in which I use the CD4050 as a 5v to 3v level adapter, reading the data bus of a machine. I also read the address bus, using a CD4050, but this with no problems.The original machine from which I need to read data, through a data bus and an address bus, is a CPU that generates the signals with an ASIC (data bus and address bus), directly the address bus, and data bus through a 74LS240.These buses are connected to other boards of the machine, in one of these boards there are pullup resistors for both buses, 470 ohm for the data bus, and 2K2 for the address bus. On these boards the data bus signals enter to a 74LS240, and those from the address bus to a 74LS374.I have designed a circuit to capture these signals using a Kinetis MK66 microcontroller, as the GPIO ports of this microcontroller are not 5v tolerant, I have used a level adapter with the CD4050, I have already used it in other circuits and it has worked well, but in this design fail for the data bus.The problem is that if I connect to the CPU, with my Kinetis MK66 circuit, with no other boards, and therefore without pullup resistors in the buses, everything works fine, but as soon as I connect the pullup resistors in the data bus my circuit stops capturing data. I have Debug my program and the interrupts works correctly for the address bus signals, but on the data bus after the CD4050 there are no signals, I even tried to add a small delay with a loop with several NOPs in case the CD4050 was adding some delay having a somewhat high propagation time (about 120 to 140ns). If I remove the pullup resistors from the data bus, everything works again.I have redesigned the circuit by replacing the CD4050 with a 74LVC245 (with a propagation time of about 4ns), I hope it works, I already have the PCB but I have not yet assemble it.What worries me to know is why the CD4050 does not work properly when I connect pullup resistors (470 ohm) to the data bus signals. Any suggestions ?, I can only think of something related to impedances.I have measured the signals of both buses with the oscilloscope. The address bus always looks fine with or without pullup resistors. The data bus looks good with pullup resistors as expected, and with no pullup resistors the appearance of the signals is not good, however the funny thing is that my circuit works ok when those pullup resistors are not there (just the opposite of what would be expected.).Regards

author: TomS_
author_rank: Frequent Contributor
timestamp: March 13, 2020, 11:14:47 pm
content: I probably wouldnt mix 4000 series and 7400 series logic in one circuit. One or the other, or know what you are getting yourself into.4000 series is extremely slow in comparison, and voltage thresholds may be slightly different.Looking at your scope trace with the pull up resistors, there are very very short little blips in the signal, and rounded corners on the rising edges which suggests that the signals are being impacted by what ever circuitry has been introduced. Hard to know exactly without more detail of the circuit you are attaching to, and the circuit you are attaching to it.Try it with the LVC part and see if you have more luck. IIRC LVC parts are 3V3 nominal operating voltage but with 5V tolerant inputs which to me sounds like a better level shifter than a 4000 series.

author: wraper
author_rank: Unknown
timestamp: March 14, 2020, 12:04:14 am
content: Likely with pull-up resistors logic low voltage is no longer low enough and is above input low threshold of CD4050 powered from 3V (no spec below 5V in the datasheet). 470R is quite strong pull-up.QuoteThat's in line with 5V specs, at 3V it's probably significantly more. 4000 series are very slow, and become even more so at low Vdd.

author: wraper
author_rank: Unknown
timestamp: March 14, 2020, 12:14:46 am
content: Quote from: luiHS on March 10, 2020, 11:49:16 amIMHO it's measuring problem with long ground clip and not representation of what's actually happens within circuit. And nothing of it looks good to me because even with "good" measurement you have min voltage of 1V below zero in measurements.

author: trevatxtal
author_rank: Contributor
timestamp: March 14, 2020, 06:36:37 am
content: I suspect your pull up resistors are to low in valuetry 2.2k.

author: luiHS
author_rank: Frequent Contributor
timestamp: March 14, 2020, 02:20:44 pm
content: Quote from: trevatxtal on March 14, 2020, 06:36:37 amI can not modify anything of the original machine, only my circuit design to connect and capture data. I will try with 74LVC245 instead of CD4050.

author: wraper
author_rank: Unknown
timestamp: March 14, 2020, 02:56:22 pm
content: I suggest adding inverters or buffers powered from 5V before passing signal to circuit powered from 3V to ensure that logic low voltage is not compromised by high load. BTW you could try powering CD4050 from 5V and see if they start working again.