Kommunikation zwischen AVR <--> AVR

Gast #164648
Lesenswert?

Hi Leute,

ich bin ein blutiger Anfänger im Bereich der µC. Ich habe hier zwei µC,
ein Atmega8 und einen 2313. Nun möchte ich zwischen den beider µC Daten
austauschen und weiterverarbeiten. Ich habe schon ein paar interessante
Artikel gelesen, leider waren diese immer nur für sehr spezielle
Probleme. Vielleicht könnt Ihr mir ja helfen.

Gruß
Olli
Gast #164649
Lesenswert?

Du könntest dir einmal ein eigenes Protokoll schreiben. Das wäre sicher
unpraktikabel. Diese Controller haben für die Datenübertragung extra
schnittstellen UART oder so. Oder I²Can Bus. Ich denke, dass du die
einfach nehmen solltest. Genaueres wissen sicher andere. Benutzt habe
ich diese selber noch nie...
Gast #164650
Lesenswert?

Die universelle Lösung dafür gibt es sicherlich auch nicht. Die
Übertragungsart ist von Faktoren wie Übertragungsrate, Entfernung, usw.
abhängig.
Wenn du etwas genauer erklären würdest, worum es geht, würde das die
Beantwortung deiner Frage bedeutend erleichtern.

Grüße,

Stefan
Gast #164653
Lesenswert?

Die Minimaleinführung? Hm.

UART: die µC-Schnittstelle, der auch RS-232 und RS-485 zugrunde liegen.
Solange Du nur zwei Teilnehmer, unter einem Meter Entfernung und keine
riesigen Datenmengen hast, kannst Du einfach das TX des einen
Controllers mit dem RX des anderen verbinden. Dann bei beiden dieselben
Einstellungen für Baud/Bits/Parity/Stopbits wählen, Daten rausschreiben
und per Interrupt empfangen. Einführungen findest Du "überall".
Achtung: für eine zuverlässige Datenübertragung brauchst Du einen
geeigneten externen Quarz.

I2C: (überlappende Bezeichnungen TWI oder SSI oder ...) beruht auf
einer Datenleitung mit den zu übertragenden Bits und einer
Clockleitung, die angibt, wann die Bits auszulesen sind. Je nach
Controller gibt es darüber hinaus schon etwas Protokollunterstützung,
damit mehrere Teilnehmer am selben Bus hängen können (sonst macht man
das per Software). Auch hier findest Du genug Beispiele und
Einführungen.

Erfahrungsgemäß wollen die Leute dann irgendwann viele Teilnehmer an
einem Bus, wollen hohe Datenraten oder lange Kabel. Oder alles
zusammen. Dann stellen sie fest, daß sich ihre gewohnte
Lieblingsschnittstelle da nur mit allerlei Aufwand und Problemen derart
aufbohren läßt. Deswegen ist es nicht verkehrt, sich zeitig Gedanken zu
machen, wo man hinwill.
Gast #164654
Lesenswert?

Ich denke eine einfache Datenübertragung zwischen zwei AVR's könnte
auch SPI bieten!
Wie weit auseinander das ganze darf weiß ich leider nicht, hört sich
aber an als wären die zwei recht nah beieinander. Über SPI kann man bei
bedarf auch mehrere "Teilnehmer" anschließen (dank ChipSelect) und die
Datenrate darf auch recht hoch sein!

MfG
Basti
Gast #164655
Lesenswert?

"UART hat nix mit Protokoll zu tun,"
Ich weiß, das ist eine Schnittstelle. Aber wenn er die benutzt muss er
die Eingänge nicht mehr Pollen. Diese Schnittstellen sind Hardwaremäßig
auf den Chips unterstützt und deshalb würde ich darauf zugreifen anstatt
selber etwas zu entwerfen.(ist doch so, oder irre ich?)

Ich meinte I²C.

Zur Schlaumeieranschuldigung:
Ich habe mich mit dem Thema noch nicht befasst. Das ist erst am
Wochenende auf meiner Liste :-)
Trotzdem kann ich doch versuchen einen Stichpunkt zu nennen, wenn noch
keiner was Geschrieben hat, damit er vielleicht zufällig per google
oder sonstwie was findet.

Vielleicht hätte er sich ja auch an etwas errinnert oder jemand anders
hätte das getan.
Gast #164656
Lesenswert?

Hi,

ich bin's schon wieder. Also ich habe jetzt die letzten zwei Tage eine
Menge gelesen, leider finde ich aber nichts Passendes. Denn wenn man
unter Google nach I²C oder SPI sucht, dann spuckt der tausende von
Seiten aus, auf denen meistens nichts Brauchbares für mich steht.
Vielleicht kennt Ihr ja ein nettes Tutorial (o.Ä.), welches z.B. die
Kommunikation via I²C beschreibt, oder auch andere Tutorials zum Thema:
"Kommunikation zwischen zwei Mikrocontrollern".

Gruß
Olli
Gast #164659
Lesenswert?

Der 2313 hat keine SPI, die dem Programmierer zur Verfügung steht. Nur
zum ISP kann sie benutzt werden. UART oder I2C, wobei die I2C beim 2313
dann auch in Software realisiert werden muß. Also sind deine
Möglichkeiten soweit eingeschränkt, daß das Augenmerk wohl bei der UART
hängen bleibt.

MW
Gast #164660
Lesenswert?

Ich würd´ auch den UART nehmen, sehr unkompliziert, wenn einmal
initialisiert, ausreichend schnell und supereinfach zu bedienen
(eigentlich nur 2 Flags kontrollieren und 1 Register lesen oder
schreiben, das war´s). Probecodes gibt´s in neuen Datanblättern von
ATMEL.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren