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.

[SOLVED] Suddenly BUS becomes slow

Status
Not open for further replies.

D'Crex

Newbie level 6
Newbie level 6
Joined
Dec 14, 2014
Messages
13
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Visit site
Activity points
104
Hello,

I written a protocol for a 4line databus and it works great. Two device that are talking to each other are waiting for confirmation of packet received, before getting a new one.

Anyway. It's all working really good, except, that now I plan to connect another device to the same BUS, so I placed diodes (1N4148) on each device because otherwise I get a short circuit.

The communication on the BUS is still working, but alot (like 500%) slower.

I've been googlin for last 2 days, but can seem to figure out what is wrong (keep in mind, that I am not all that good with electronics).

I am using 5V.
I thank you all for you time.
David.

img.JPG
 

Where are you connecting the diodes? Please show them added to your diagram.

I suspect your diodes are not switching on or off quickly enough but the fix depends on where they are in the circuit.

Brian.
 

Hello, thank you for your reply.
Those arrows that are pointing two on the bus and two off the buss are the diodes. So the diodes are between a microcontroller and the bus.

img.JPG
 

My appologies, those symbols are usually used for bus drivers.

I suspect your problem is on the input pins to the microcontroller, when the bus drives high the diodes conduct and the input pins also go high (as you intended) but when the bus is driven low, the pull-down resistors ensure the bus voltage drops but the diodes on the input pins cease to conduct. This leaves the input pins at an indeterminate level, they are isolated from the bus and can assume any level they like.

There are several ways to fix it, the best by far is to use tri-state drivers but that will required more ICs and some extra software. If you need input isolation at all, the poorer alternative is to add pull-up resistors to the input pins and reverse the input diodes. Use 10K pull-up resistors on the input pins and change the pull-down resistors to 1K. The idea is the pull-ups ensure the input pins are high if the bus is also high but if the bus goes low the diodes sink the pull-up current through the diodes to the bus level.

There are a number of drawbacks to using diode isolation, the main one being the voltage drop in the diodes themselves. Ideally the bus high voltage should be 5V and low voltage should be zero but the addition of those diodes drops both by about 0.65V. So high will be 4.35 and low will be 0.65, this reduces the safety margin before the bus voltage might be misinterpreted.

Check if you actually need the input diodes at all though, as all the devices will have the same input voltage you can probably leave them out. That will halve your problem in one change!

Brian.
 
  • Like
Reactions: D'Crex

    D'Crex

    Points: 2
    Helpful Answer Positive Rating
Wow, you may be right - I'm pretty sure I don't need input diodes. I will give it a try when I get home. I'll let you know how it goes. Thank you very much!
 

Dear betwixt!

Removing diodes on the input did the trick. I can't tell you how grateful I am. You've made my day.

Plus, the explanation of the problem that you did in your last post, was very very understandable. Even for me, who is not really good with electronics. :smile:

Thank you, seriously.
David
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top