Atmegas verbinden (SPI?)

Gast #1179570
Lesenswert?

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
Gast #1179588
Lesenswert?

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
Gast #1179606
Lesenswert?

>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.
Gast #1179700
Lesenswert?

@ 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!

:)
#1179718
Lesenswert?

@  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
Gast #1179823
Lesenswert?

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.
Gast #1179836
Lesenswert?

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
Gast #1179839
Lesenswert?

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. :)
#1179852
Lesenswert?

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
Gast #1179902
Lesenswert?

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
Persönliche Seite #1180578
Lesenswert?

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

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