Hallo, folgende Situation: Ich habe an einem Master-Atmega 4 Slave-Atmegas andere hängen. Die Pinbelegung ist zufällig und fest auf der Seite des "Masters". Ich würde gerne bestenfalls ohne Quarze für die Slaves auskommen (die machen nur zeitunkritische Sachen). UART fällt also raus, hab sämtliche Beiträge im Forum gelesen^^ Also nur synchrone Übertragung. Zur Verfügung stehen maximal 5 Pins für jeden Slave am Master. Jetzt also die Frage: Was benutze ich bestenfalls für die Vernetzung? Auf der Seite des Masters sollte das ganze in Software implementiert sein (zufällige Pinbelegung), auf der Seite der Slaves bestenfalls mit einer der Hardware schnittstellen. Die Übertragungsrate ist ziemlich egal, die Kommunikation soll immer durch den Master gestartet werden und mit einer Antwort (Ergebnis) durch den Slave erwidert werden. Hoffe auf den passenden pointer. Grüße
Kommste da nicht mit I2C besser? Das spart Pins am Master. Ist dann aber kein Sternbus mehr.
Hallo, danke für die Antwort. Wie beschrieben ist der Pin Aufbau unabänderlich am Master (Platine ist schon fertig, war vorher für ne andere Ansteuerung gedacht). Ausserdem kann ich auf Grund dass die slaves an und abgesteckt werden keine festen IDs vergeben, muss aber trotzdem erkennen können, wo der jeweilige Controller sitzt. Grüße
>Wie beschrieben ist der Pin Aufbau unabänderlich >am Master (Platine ist schon fertig sorry hab ich überlesen :(
>UART fällt also raus, hab sämtliche >Beiträge im Forum gelesen^^ Also nur synchrone Übertragung. Warum ? Hast Du extreme Temp.-schwankungen? Mit einem kallibrierten int. Osz. sollte es laut Datenblatt, bei kleinen Übertragungsraten, sicher gehen.
Neben den Daten kann man uebrigens auch einen Clock verbinden, dh die UART waeren dann wieder synchron....
@ Klaus (Gast) >Mit einem kallibrierten int. Osz. sollte es laut >Datenblatt, bei kleinen Übertragungsraten, sicher gehen. Und wieder einer, der die Prozentrechung nicht verstanden hat . . . http://www.mikrocontroller.net/articles/AVR_Checkliste#UART.2FUSART
@ Falk
>wieder einer der keine Datenblätter lesen kann.
schau Dir bitte mal unter "Typical Characteristics"
die Diagramme der "FREQUENCY vs. TEMPERATURE" an.
Dann entscheide selbst für Dich, ob Du keine Prozentrechung
kannst.
Im Bereich um Zimmertemp. (0..40Grad), bei 2400 Baud und
einer Taktfreq. des µC von 4Mhz, geht das vom Feinsten!
:)
@ Klaus (Gast) >Dann entscheide selbst für Dich, ob Du keine Prozentrechung >kannst. Keine Bange, Ich kann die ganz gut. Du aber weniger. >Im Bereich um Zimmertemp. (0..40Grad), bei 2400 Baud und >einer Taktfreq. des µC von 4Mhz, geht das vom Feinsten! "bei kleinen Übertragungsraten," Dein Frequenzfehler durch Temperaturdrift ist immer gleich. Damit ist es egal ob man auf 2400 Baud kalibriert oder auf 115200. Der SYSTEMATISCHE Fehler durch nicht ganzzahliges Verhältnis von Oszillatortakt und Baudrate gemäss bekannter Formel ist vollkommen temperaturunabhängig. Man kann also auch genauso gut bzw. schlecht den Oszillator auf eine Baudratenfrequenz kalibrieren und mit 115k2 RS232 betreiben. MFG Falk
ich kanns langsam nicht nehr höhren! Diese Märchen von 27 pF am Quarz, kein RS232 ohne Quarz.
HaHa, der "Der SYSTEMATISCHE Fehler" ist absolut nicht Taktfreq. abhänging.?!!?!! lautes lach
@ Klaus (Gast) Wie dumm bist du eigentlich? Wer lesen kann ist klar im Vorteil.
@ Falk ohne Kommentar. (wer Datenblätter lesen kann, mit einem Taschenrecher auf du steht, wird das feststellen)
Mensch Falk, laß den beratungsresistenten Klaus doch auf die Nase fallen. Alle anderen nehmen bitte einen keram. Resonator oder Quarz zum Betrieb der UARTs, um dieses "Märchen" noch einmal zu erzählen.
Hallo Klaus, nur weil du die Baudrate runter drehst und keine Lust hast auf den Fehler zu warten heisst das noch lange nicht das es keine gibt. Hast wohl die Matrix repariert ? lol VOTE: [X] Klaus raus
Hi Gasst, kannst Du auch keine Datenblätter lesen? Je höher die Taktfreq. des µC ist, desto höher ist auch die prozentuale Freq.- Drift über den Temperaturbereich, aber umso kleiner ist der Fehler der Freq.-Abweichung auf der RS232. Ich freu mich schon jetzt auf eine Schaltung von Euch, die in größeren Stückzahlen hergestellt wird. :)
Miles wrote: > Hallo, > > folgende Situation: > > Ich habe an einem Master-Atmega 4 Slave-Atmegas andere hängen. Die > Pinbelegung ist zufällig und fest auf der Seite des "Masters". > > Ich würde gerne bestenfalls ohne Quarze für die Slaves auskommen (die > machen nur zeitunkritische Sachen). UART fällt also raus, hab sämtliche > Beiträge im Forum gelesen^^ Also nur synchrone Übertragung. Zur > Verfügung stehen maximal 5 Pins für jeden Slave am Master. > Hallo, 3 Pins für USART (RX, TX und CLK) 2 Pins für 2 Multiplexer/Demultiplexer 4:1 Gruß, Michael
Hi Michael, >3 Pins für USART (RX, TX und CLK) >2 Pins für 2 Multiplexer/Demultiplexer 4:1 *Variante 1:* oder gleich 4 Pins für CS, dann spart er sich den Decoder. "Platz" hat er ja am Master. (Summe 7 Pins) + GND *Variante 2:* soft Adressierung Master sendet Adreesse des Slavs + Befehl und Slave sendet in Abhänigkeit des Befehle Daten zurück. (Summe 3 Pins) + GND TX der Slaves AND verküpft auf auf RX vom Master
Das alte Parallelprinterport hatte 8 Datenleitungen eine Leitung Strobe (Daten sind bereit) eine Leitung Ack (Daten sind angenommen) Bau das prinzipiell nach, dann ist egal wie schnell / wie langsam der Sender oder der Empfänger arbeiten. Du brauchst ja nicht umbedingt 8 Datenleitungen, Weniger sind auch gut. Dann hättest Du eine 1-Bit Handshake-Übertragung. Eine vierte Leitung würde ich dann vielleicht für das Rückstellen verwenden. Master Slave legt Datenbit an Strobe=1 Liest Daten Ack=1 Strobe=0 Ack=0 Problematisch wird es sein, eine einmal außer Tritt geratene Komminuikation wieder aufzusetzten: Vielleicht dann x 0-Bits senden
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.