[RS485] can't perform handshake.

Hello all.

I am just a novice who wants to use ATmega8535 as a means to control RS48 communication devices.

Communication type to implement is full duplex and I used two MAX48 transceiver ICs per one board, one for transmitting and the other fo receiving.

As I burned ATmega microcontroller of main board with my code by IS programmer, RS485 communication seemed work well without any error betwee main board and slave board and handshake was performed.

But when I reset ATmega microcontroller of main board and tried to start RS485 communication, frame error occurred or receive complete interrup did not occur at ATmega microcontroller of main board even though RS48 device of slave board finished transmitting, and receive function of mai board failed to work until next burning ATmega microcontroller of mai board in main board.

It seemed start bit of frame was not detected by ATmega microcontroller o main board until next burning ATmega microcontroller of main board but don?t understand why such malfunction occurred.

So I would be much grateful if you tell me clue to solve such a problem a I described.

I am just a novice so my way of explanation might be obscure, if that i so, I beg pardon.

Thanks for reading my words and I wish good luck for everyone who dares t go through difficult and creative ways while other people keep away.

You?re sincerely.

Reply to
SarAVR
Loading thread data ...

There is two type of handshacking: hardware and software.

You need to understand which is used when.

donald

Reply to
Donald

Like RS232, RS485 is only a hardware, not a software protocol. Before we can criticize we need to see _all_ the controlling software.

--
 
 
 
                        cbfalconer at maineline dot net
Reply to
CBFalconer

Do you use failsafe termination? When the lines are floating the state is unknown and could be the same logic level as the start bit. If the start bit is send the line wouldn't change and the receiver is not seeing this bit. For fail-safe you need, besides the line termination, two resistors to bring the lines in well known states when floating.

Reply to
Klaas

Snip:

It seems device initialization is creating trouble here, sending some dummy data at device initialization might solve the problem.

Write all the ISRs for used peripherals or write all the ISRs of your device with empty bodies (if you are not using one).

ali

Reply to
Ali

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.