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.
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...
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
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.
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
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
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.