Forum: Mikrocontroller und Digitale Elektronik Serielle kommunikation zw 2 ATMega644


von René K. (tesla24)


Lesenswert?

Hallo an alle Experten,

ich habe folgendes Problem:

Ich möchte zwei ATMega644 so einfach wie möglich seriell miteinander 
verbinden. Die Daten die übertragen werden sollen sind sehr klein und 
dürfen auch "langsam" übertragen werden. Als Programmiersprache verwende 
ich C

Was ich bisher heraus bekommen habe, das es über UART machbar sein 
sollte. Da ich aus Platzgründen die Platine von AVR1 sehr klein halten 
muss, habe ich kein Quarz verwendet, sondern vertraue auf den internen 
Takt. Natürlich müssen Takt und Baudrate von AVR1 und AVR2 gleich sein 
und RX/TX gekreuzt verbunden.

Hier was übertragen werden soll:

Das muss der sender machen (AVR1):

if(Taster gedrückt)
{
  sende die Zahl "1"
}


Das muss der Empfänger machen (AVR2):

warten auf daten...

if(empfangener Wert==1)
{
  PINA & (1<<PINA1)
}

In wirklichkeit sende ich natürlich unter anderen Bedingungen, aber mir 
geht es hier nur um die kommunikation. In eine Richtung würde mir sogar 
fürs erste reichen.

Insgesammt sollen nur die Zahle 1, 2, 3, 4, 5, 6, 7 und 8 übertragen 
werden. Ob in Binär, Hex oder Dez ist natürlich vollkommen egal.


Ich hoffe es kann mir jemand helfen, denn damit habe ich bisher 
keinerlei Erfahrung

Vielen Dank im Vorraus

von Thomas W. (Gast)


Lesenswert?

Heiko K. schrieb:
> Da ich aus Platzgründen die Platine von AVR1 sehr klein halten
> muss, habe ich kein Quarz verwendet, sondern vertraue auf den internen
> Takt.

Dann solltest du vielleicht nicht auf den USART setzen, sondern eine 
Datenverbindung über SPI verwenden. Da ist der Takt wurscht.

von c-hater (Gast)


Lesenswert?

Thomas W. schrieb:

> Dann solltest du vielleicht nicht auf den USART setzen, sondern eine
> Datenverbindung über SPI verwenden. Da ist der Takt wurscht.

Man kann die USART auch synchron betreiben, dann spielt der Systemtakt 
ebenfalls keine große Rolle mehr. Es ist aber natürlich zusätzlich zu 
den beiden Datenleitungen eine Taktleitung zu ziehen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Heiko K. schrieb:
> Ich möchte zwei ATMega644 so einfach wie möglich seriell miteinander
> verbinden. Die Daten die übertragen werden sollen sind sehr klein und
> dürfen auch "langsam" übertragen werden.

Einfach im Sinne der Hardware oder wie´s am einfachsten zu programmieren 
ist? Wie weit sind beide Controller voneinander entfernt?!

von Karl H. (kbuchegg)


Lesenswert?

Heiko K. schrieb:

> In wirklichkeit sende ich natürlich unter anderen Bedingungen, aber mir
> geht es hier nur um die kommunikation. In eine Richtung würde mir sogar
> fürs erste reichen.

Und?
Mit welchem Teil vom AVR-GCC-Tutorial (WEiterleitung UART) kommst du 
nicht klar?

von Dennis R. (dennis_ec) Flattr this


Lesenswert?

Nimm I²C

Einen als Master der andere als Slave.

da isses dann auch Wurst wie die AVRs Takten.

2 Leitungen für Daten + GND und Fertig.

ggf sind noch 2 Externe Widerstände nötig,
ob man die Internen benutzen kann weiß ich nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.