mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmegas verbinden (SPI?)


Autor: Miles (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommste da nicht mit I2C besser?
Das spart Pins am Master. Ist dann aber kein Sternbus mehr.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
edit:

Sternbus -> Sternnetzwerk

Autor: Miles (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie beschrieben ist der Pin Aufbau unabänderlich
>am Master (Platine ist schon fertig

sorry hab ich überlesen :(

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: genau so (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Neben den Daten kann man uebrigens auch einen Clock verbinden, dh die 
UART waeren dann wieder synchron....

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
natürlich noch besser "genau so"!

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  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_Checkl...

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

:)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kanns langsam nicht nehr höhren!

Diese Märchen von 27 pF am Quarz, kein RS232 ohne Quarz.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HaHa,

der "Der SYSTEMATISCHE Fehler" ist absolut nicht Taktfreq.
abhänging.?!!?!!

lautes lach

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Klaus (Gast)

Wie dumm bist du eigentlich? Wer lesen kann ist klar im Vorteil.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Falk

ohne Kommentar.

(wer Datenblätter lesen kann, mit einem Taschenrecher
auf du steht, wird das feststellen)

Autor: Gasst (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: KlausRaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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. :)

Autor: Michael Appelt (micha54)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... wie recht Du hast. Das hilft "Miles" nicht weiter.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hans-jürgen Herbert (hjherbert) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.