PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere AVRs zusammen laufen lassen



ListerStorm
19.08.2011, 21:20
Hallo liebe RN Wissen Gemeinde,

ich mache es kurz ich möchte mehrere AVRs zusammen arbeiten lassen. Soweit so gut. Da gibts es ja einige Wege aber ich möchte etwas anders machen. Die AVRs sollen sich schlicht über High und Low verstehen. Sprich wenn AVR A mit Pin 1 am AVR B mit Pin 1 verbunden ist und AVR A Pin 1 auf High setzt, erkennt das AVR B, ich sag mal, als ob ein Schalter gedrückt worden sei? Bzw. wenn ja was müsste ich berücksichtigen? Sprich PullUp Widerstand und ich denke irgendwie muss das auch noch mit Gnd verbunden werden.

PS: Ja ich weiss das klingt übelbst umständlich und so aber dahinter steckt schon ein bestimmter Grund. Dafür müsste ich aber soweit ausholen da wären ich noch nächste Woche drann hehe.

Vielen dank für Eure Hilfe.

MfG Lister

Ripper121
19.08.2011, 21:49
wieso nich UART?

Besserwessi
19.08.2011, 21:52
Damit mit Spannung sich auf einen gemeinsamen Punkt bezieht sollte man GND der beiden Seiten verbinden. Wenn möglich sollte man auch die Versorgungsspannung verbinden, damit immer beide Seiten versorgt sind - wenn nicht wäre ein Widerstand (in Reihe als Schutz), von z.B. 1 K sinnvoll.

ListerStorm
19.08.2011, 23:19
Weil UART unteranderem für das bischen kommunikation etwas zu aufwändig ist und aus noch anderen Gründen für die ich aber weit ausholen müsste hehe

@Besserwessi war das ein "Ja" das es funktioniert? Wenn ja musst Du mir das nochmal auszeichnen ich bin mir nicht ganz sicher wie du das meinst.

MfG Lister

Kampi
20.08.2011, 09:04
Naja du könnest dir sowas SPI mäßiges basteln. Sprich jeder AVR hat eine Leitung die, sobald sie Low ist, diesen Chip auswählt. Und dann kannst du z.B. zwei Leitungen zur Datenübertragung nehmen. Eine ist zum senden da und eine zum empfangen und dort schiebst du dann deine Bits rüber.
Ein Beispiel:
Du hast einen Master und einen Slave. Der Slave delektiert einen Tastendruck und legt dann seine Chipselect Leitung auf Low. Dadurch das nun der dazu gehörige Pin am Master jetzt auch Low ist, weiß der Master von welchem Slave die Informationen kommen. Als nächstest legt der Slave die Leitung die bei ihm für senden und beim Master für empfangen steht auf High und sendet das Bit des Tastendrucks an den Master.
Das ist quasi ein vereinfachtes SPI ;)

oberallgeier
20.08.2011, 09:33
... mehrere AVRs zusammen arbeiten ... sollen sich schlicht über High und Low verstehen ...Klar geht das. Jegliche Kommunikation der Controller untereinander und mit anderen Sendern und Empfängern beruht im Wesentlichen auf high-low-Zuständen - das gilt für SPI, UART etc. die durch ein bestimmtes Protokoll in der seriellen Zustandsfolge die Möglichkeiten drastisch erweitern auf Kosten der Zeit - durch Senden/Lesen mehrerer Zustände in einem vollständigen Datensatz. Schließlich heißt das S bei SPI ja seriell - und das RT beim UART RecieverTransmitter - und mit nem Oskar kannst Du Dir deren high-low-Zustände auch ansehen.

Kurz - es geht. Beispiel: Portx(Controller-A)-Pin(i), konfiguriert als Ausgang über 1k nach Porty(Controller-B)-Pin(n), konfiguriert als Eingang mit Pullup. Der Zustand des Pinns am Controller A kann jetzt am Controller B gelesen werden - so, als sei ein Taster am Werkeln. Natürlich gemeinsamer GND - wie schon vorgestellt. Wenn Du noch nen Hosenträger zum Gürtel willst, kannst Du den Eingangspinn noch mit 10k (oder mehr) auf high legen *ggg*.

Viel Erfolg

Ceos
20.08.2011, 10:57
ich glaube die problembeschreibung ist erheblich zu schwammig ^^ könntest du vll. etwas präziser werden wie du dir das vorgestellt hast oder was deiner Meinung nach an UART, PSI und co zu kompliziert sei ? Klar kannst du auch parallel arbeiten, aber dann musst du auch bloß viel schreiben, nämlich Kommunikationslogik. SPI und UART nehmen dir die Logik ab, aber du musst sie eben vorher (1 mal) konfigurieren!

ListerStorm
20.08.2011, 19:43
Erstmal vielen Dank oberallgeier, genau das wollte ich hören :) Ansonsten ja so wie oberallgeier es gesagt hat so wollte ich es machen.

Allen Anderen auch ein Danke für die Mühen =)