Create Thread: Looking for insight to improve serial communication circuit reliability issues

Thread Starter

robsworld

Joined Nov 5, 2015
86
Hi, I'm a beginner and hoping someone can point me in the right direction. I have a project based off two Arduino Due. I've designed some circuit boards so the Arduinos can plug into them and overall it works good but there are reliability issues with communications.

An Arduino Due has 3 serial ports which can be connected to another Arduino to communicate between them. The project is using all 3 serial ports to communicate.

Each Due is mounted on its own PCB and connect using a standard Ethernet patch cable. 6 wires are for the 3 serial ports (Tx + Rx line) and the other 2 wires are for +12v and GND used to power the board.

Here's where the problem comes in.

On each board I'm using an HCF4050 6 channel IC Buffer converter.

https://www.digikey.ca/product-detail/en/stmicroelectronics/HCF4050M013TR/497-1128-1-ND/586128

Each board has 2 of these mounted, one is powered with 3.3v, the other 5v. When the 3.3v Tx signal comes out of the Due its converted to 5v signal and sent out the ethernet patch cable. When the 5v signal makes it to the receiving board it goes into the HCF4050 and dropped back down to 3.3v and into the Arduino RX pin. So this is repeated for each of the serial ports on the Due and it works both ways.

I like that IC being in front of the Arduino as it acts as protection and has proven to be as an Arduino has never been damaged. However once and a while the HCF4050 will die for no apparent reason. It appeared that it could happen if the Ethernet patch cable was unplugged from the board with it powered up however once it happened by simply resetting the board. Replacing the IC gets it back up and running.

So my question is what's the best way to solve this problem? The HCF4050 is now obsolete so maybe there's a better IC with some protection built in? I like the idea of increasing the 3.3v to 5v to overcome any line loss but it may not be necessary. Either way I would like something between the Arduino and outside world to protect it.

I attached a schematic of the circuit, its quite simple, Tx pin from Arduino goes into HCF4050, signal comes out and goes into HCF4050 on incoming board and out to Rx pin on Arduino. Thanks
 
Last edited:

Papabravo

Joined Feb 24, 2006
21,225
What you want is a CMOS gate that will accept any Vcc from 1.65V to 5.5V, with inputs having TTL thresholds, and outputs that swing rail to rail. something like the following:

https://www.onsemi.com/pub/Collateral/MC74VHC1GT50-D.PDF

• Designed for 1.65 V to 5.5 VCC Operation
• High Speed: tPD = 3.5 ns (Typ) at VCC = 5 V
• Low Power Dissipation: ICC = 1 A (Max) at TA = 25°C
• TTL−Compatible Inputs: VIL = 0.8 V; VIH = 2.0 V, VCC = 5 V
• CMOS−Compatible Outputs: VOH > 0.8 VCC; VOL < 0.1 VCC @Load
• Power Down Protection Provided on Inputs and Outputs
• Balanced Propagation Delays
• Pin and Function Compatible with Other Standard Logic Families
• Chip Complexity: FETs = 104; Equivalent Gates = 26
• NLV Prefix for Automotive and Other Applications Requiring Unique Site and Control Change Requirements; AEC−Q100 Qualified and PPAP Capable
• These Devices are Pb−Free and are RoHS Compliant
 

Thread Starter

robsworld

Joined Nov 5, 2015
86
Thanks, that does look like what I want however that particular part is obsolete. I've been searching Mouser for something similar but it's all very confusing. This is the closest I could find but have no idea if its the same or different.

http://www.mouser.com/ds/2/302/74LVC3G34-839778.pdf

Here's a search I setup on Mouser, hoping to find something that has 3 channels but not necessary.

http://www.mouser.ph/Semiconductors...=1z0z7ptZ1z0sn9rZ1yvcye5Z1yvcye4&Ns=Pricing|0

Can you see anything in that list that would be a good choice?
 

Papabravo

Joined Feb 24, 2006
21,225
You almost got it correct. Look for parameters Vih and Vil which define the input high and input low levels. What you want is for those values to match the original specifications for TTL. When they tell you the value of the parameter as a function of Vcc this is a tipoff that you have to do some calculation to see where the values land. Here is what you want:
  1. Vil ≤ 0.8V(maximum) defines a logic zero (low)
  2. Vih ≥ 2.0V(minimum) defines a logic one(high)
If those values are met when you calculate them as some percentage of Vcc then you have a winner. For example:
Vcc = 5.0V, Vil = 0.3Vcc, and Vih = 0.65Vcc
That means:
Vil = 1.5V, and
Vih = 3.25 V

If a part with Vcc = 3.3V is driving the 5V part it will have trouble getting its output reliably above 3.25V
Do you see the problem?
Keep looking, the parts you seek are out there.
 

Thread Starter

robsworld

Joined Nov 5, 2015
86
Thanks and sorry for taking so long to respond, this stuff isn't easy for me. I figured out how you get 1.5v and 3.25v, based on the info for the part I posted the Vih was 0.7vcc which puts Vih at 3.5v, isn't that high enough as its only 3.3v? Or does it need to be over 5v?

Most of the datasheets I've been going though have the same Vil and Vih values.

Here's another part I found that sounds right but sounds similar to the HCF4050 I'm currently using.

http://www.mouser.com/ds/2/308/NL37WZ16-D-113953.pdf

Here's a single channel I found but again sounds similar.

http://www.mouser.com/ds/2/308/NL17SZ126-D-63559.pdf

Maybe I'm searching the wrong group of IC's? Using Mouser, I go to "logic ICs" category, then in filters I choose "CMOS" for logic type, then select 1.65-5.5v and 2.0-5.5v operating voltage and that's the list I'm searching.

http://www.mouser.ph/Semiconductors/Logic-ICs/_/N-4s5z6Zscv7?P=1z0vmmpZ1z0w8y6Z1z0wa98&Ns=Pricing|0

Thanks
 
Top