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] Is there any Serial Driver at the speed 9600 for arduino uno (Atmega 328)

Status
Not open for further replies.

Wajiduddaim

Junior Member level 1
Junior Member level 1
Joined
May 12, 2011
Messages
18
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
darbar-e-Sadria
Activity points
1,464
i am using one arduino Uno (Atmega 328p) to send serial data

and receive that data using 89c51 microcontroller those are almost 12 microcontrollers (At the receiving end)

is it danger for Tx of atmega 328?????


if it is then how can in safe it ??? any serial Driver?


baud rate is 9600
 

Hi,

You never heared about RS232? It seems impossible to me.
Where did you try to find an answer on your own? And how?
Learn how to: https://lmgtfy.com/?q=Serial+interface

What about: RS485, RS422, LVDS, different optical systems, wireless optical, RF...

In detail it depends on your requirements: cable length, cable type, shielding, twisted pairs, power supply, electromagnetic noise, ESD protevtion level, safety standard...

is it danger for Tx of atmega 328?????
Not as long as you are within the specifications given in the microcontroller's datasheet.

Klaus
 

Driving lots of 'slave' receivers from one transmitting device is easy but be careful to choose the most appropriate system as outlined by Klaus.
If you want the 89C51 devices to send data back you have a completely different problem. One transmitter can feed many receivers but only one transmitter can be active at a time. It the data has to flow FROM one of the 89C51s back to the 328p you have to use a system that allows each transmitter to disconnect from the line until it has to send data. If more than one transmitter is active simultaneously they simply pump current between themselves and the resulting line signal is indeterminate.

Brian.
 

not from both sides

only one side from arduino uno (Atmega 328) to atmel AT89c51
as shown in this picture


arduino89.jpg
 

Hi,

It´s impossible to help without more information.
What have you done so far?

Klaus
 

There are many ways to do it but as post #2 asked, it depends on the distances and environment the signal has to pass through. We need to know how far it is between the Arduino and the receiving devices and whether they run off the same supply (share the same ground potential) and whether the wiring is likely to pick up a lot of interference.

Just for information, it is easy to send slow speeds like 9600 Bauds over several Km if done correctly.

Brian.
 

@betwixt

Thanks so much for this kind of information that you asked, 3 clock are approx 20 feet away from arduino, 4th is 55 feet, 5th is 70 feet and 6th is approximately 120 feet, these are working fine without any driver and that was first group and second group is approximately 180 feet from arduino with same ground potential.

arduino89.jpg
 

Still many ways to do it but I would suggest the simplest is to convert the serial data to differential and use a twisted pair cable. At each receiver, convert differential back to simple serial. By sending the signal that way you make it relatively immune to both radiating and picking up interference.

The way I do it in a similar application is to use the inexpensive ADM488 (or MAX488) which is an 8-pin IC containing both a transmitter and receiver. You can use them at both ends, just ignore the transmitter half where only a receiver is needed. They have a single input you can connect directly to the '328 and drive two differential lines out. At the receiving end you connect the two differential inputs to the 488 and it produces a single output to the 89C51. One transmitter can drive up to 32 receivers at speeds up to 10M Bauds (quite a bit faster than you need!) over distances of more than 1Km. You do need to add ONE resistor to terminate the differential lines at the most distant receiver. I use inexpensive CAT5 networking cable, leaving the other 3 twisted pairs for other purposes. The data sheets for the MAX/ADM488 explain how to do it.

Brian.
 

Hi,

Just to clarify what Brian said.
I fully agree.
* You need a twisted pair plus GND.
* don't star wire the bus, no branch.
* the twisted pair should have 120 Ohms characteristic impedance and it needs proper termination at the ends of the bus.(at least at the remote end)

Klaus
 

* You need a twisted pair plus GND.
Indeed. In fact I power the slaves from the masters supply by using one twisted pair for power and one twisted pair for ground. Not ideal but the drop along the ground cable is still well within ADM488 common mode range and the power is dropped and regulated at each slave, still leaving a safe overhead margin.

Brian.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top