mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Datenverbindung von µCs


Autor: Markus Neubauuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.
Wie macht ihr das eigentlich wenn ihr mehrere µCs in einer Schaltung
habt also z.B. einen der das LCD Modul ansteuert, ein weitere für die
Ansteuerung von z.B. Schrittmotoren und ein letzter mit Sensoren und
dieser soll auch die ganze Steuerung übernehmen.
Wie verbindet ihr die miteinander?
Per UART, oder entwerft ihr dafür ein neues Protokoll?


Noch eine zweite Frage zu Quarzen.
Wenn ich mehrere µCs in einer Schaltung hab kann ich dann einen Quarz
für alle nehmen so das sie exakt im gleichen Takt laufen oder brauch
ich für jeden µC einen separaten? Ich weiß leider nicht genau wie das
mit Quarzen am µC technisch gesehen genau funktioniert.

Gruß Markus.

Autor: Uwe Große-Wortmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zum Vernetzen ist auch i2c recht verbreitet...

Ein gewöhnlicher Quarz (Zweibeiner) kann normaelerweise nur einem µC
als Taktquelle dienen, weil ein Teil der Oszillatorschaltung sich im µC
befindet. Wenn man aber einen Quarzoszillator (Vierbeiner, braucht auch
Vcc und Gnd) nimmt, kann man damit mehrere ICs parallel betreiben, weil
der Oszillator ein fertiges Taktsignal erzeugt. Die normaler Methode ist
jedoch, jedem µC eine eigene Taktquelle zu gönnen...

Autor: Robert Teufel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Viele der kleineren micros, die als Slaves benuetzt werden haben interne
Oszillatoren. Je nach Qualitaet dieser internen Oszillatoren kann man
sie fuer einen UART verwenden (ueber den gewuenschten Temperatur und
Spannungsbereich besser als 2.5% Genauigkeit, oder noch lieber besser
als 2%) oder fuer synchrone Schnittstellen. Bei sync. Schnittstellen
wie z.B. I2C sind die Abweichungen der Osz. nicht so wichtig. Eine
Angabe wie "besser als 1% bei Raumtemperatur und einer vorgegebenen
Spannung" ist nicht ausreichend, ja, sogar irrefuehrend denn eine
reale Anwendung befindet sich nicht immer im Raumtemperaturbereich und
die Spannung schwankt manchmal auch.
Hab auch schon viele kleine Inter-Microcontroller Netzwerke mit SPI
gesehen. I2C wurde ja schon genannt aber CAN waere auch noch was. Dann
allerdings sind die Anforderungen an die Genauigkeit des Taktes sehr
hoch, nichts fuer integrierte Oszillatoren.

Robert

Autor: Markus Neubauuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank an euch beide.
Also ich denke das es wohl am Sinnvollsten ist mit einem Protokoll das
auch ein Taktsignal schickt damit man die internen Oszilatoren
verwenden kann, oder lieg ich da falsch?

Wie baut ihr dann so etwas auf?
Angenommen das Sensormodul soll zum "main CPU" übermitteln das der
Taster 1 gedrückt wurde.
Würdet ihr dann nur eine 8bit Zeichenfolge übermitteln so das man weiß
welcher Taster gedrückt wurde, oder würdet ihr das die ganze Zeit also
kontinuierlich übermitteln lassen was ich  mir aber schlecht vorstelle
da ja sonst immer ein interrupt Event auftritt.
Also vielleicht wisst ihr jetzt worum es mir geht.
Wäre hier um jede Info dankbar da ich das noch nicht so recht
verstanden habe wie es die Hersteller so machen und es mich aber
interessiert.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest die Slave-CPUs periodisch anpollen, ob Daten vorhanden
sind... ähnlich wie USB, der Master (= PC) fragt in bestimmten
Zeitabständen nach, ob was da ist...

Ich würde als Grundlage für Multiprozessor-Kommunikation ein eigenes
Protokoll erstellen. Das macht es einfacher.
Wenn du z.B. drei Slaves hast, die die Daten alle verschieden schicken,
musst du für jeden Slave eine andere Auswertung der Daten vornehmen.
Bei einem festen Protokoll hast du diesen Nachteil nicht.

Allerdings müsstest du dir vorher schon Gedanken machen, wie das
Protokoll aussehen soll...

Ralf

Autor: marc989 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI,
am einfachsten bei der Vernetzung von mehreren Controllern ist I2C.
Ich bin grad an einem Board auf dem 5 MCU verbaut sind. Da ist das am
einfachsten. Man muss ja das Rad nicht neu erfinden, wenn man mit drei
befehlen bereits ein fast fertiges Protokoll ansteuern kann.

Die Quarze lassen sich auch von mehreren nutzen. Aber hier ist der
richtige Pin anzuschliessen. Man verwendet hiefür einen Widerstand zum
koppeln des einen Quarzeingangs des einen Controllers mit dem
Quarzeingang anderen. Die grösse des Widerstands weiss ich grad nicht
auswendig, ist aber relativ klein. (denke im Internet findet da man was
dazu)
Ich verwende trotzdem (wenn der platz es zulässt) lieber zwei quarze.

Gruß Marc

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.