- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 10

Thema: gemeinsame Taktquelle für viele µC´s

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    24.07.2006
    Beiträge
    20

    gemeinsame Taktquelle für viele µC´s

    Anzeige

    Powerstation Test
    hallo,

    ich möchte eine große Anzahl Microcontroller (ca. 30 Stück) gleichzeitig betreiben, die mit einem externen Takt versorgt werden sollen. Aus Platz- und Kostengründen sind Quarze, die für jeden Controller einzel benötigt werden, nicht gerade eine gute Alternative.

    Ich hatte die Idee, zur Takterzeugung einen einzelnen Oszillator zu verwenden, der den Takt für alle Controller liefern soll. Irgendwo im Forum hatte ich mal gelesen, dass man jedoch nur eine bestimmte Anzahl von ICs bzw. µCs an einem solchen Oszillatorausgang hängen kann und deshalb Treiberbausteine nötig sind.

    Kann mir dies jemand bestätigen, dass das tatsächlich so ist, da die Meinungen dafür sehr weit auseinander gehen?
    Wie könnte die Schaltung für die Taktversorgung aussehen bzw. welche Treiberbausteine könnte man verwenden?

    Hat jemand evtl. eine bessere Idee zur Taktversorgung?

    Danke.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Das haupt Problem dürfte sein, dass die Leitungen von Oszillator zum µC möglichst kurz sein müssen. Also am Besten nicht über 3cm. Und dass kannst du bei 30µCs nicht einhalten.
    Wenn die Leitungen länger werden, kommt es schnell mal zu Störungen, was für zeitkritische Anwendungen schlecht ist.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Diese Quarzoszillatoren können 2TTL oder 10LS Gatter treiben, zumindest die ich kenne. Wie die Last bei einem AVR auf XTAL1 bewertet wird habe ich auf die schnelle nicht gefunden aber wohl kaum höher als ein LS-Gatter.
    Dein Problem wird aber nicht nur die Last sein sondern viel mehr die Störungen die du über die Leitungen zu den einzelnen µC verbreitest. Die Oszillatoren geben ein Rechteck und keinen Sinus aus. 30 µC wirst du nicht im Umkreis von 10cm betreiben können, da musst du dann die Induktivität und Kapazität der Leitungen mit einbeziehen.
    Wenn also nicht aus Synchronisationsgründen ein gleicher Takt unbedingt notwendig ist, wäre ich für einen Quarz je µC. Oszillator und Treiber sind kaum billiger als je ein Quarz.

    Hubert

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    48
    Beiträge
    1.146
    Zitat Zitat von Jon
    Das haupt Problem dürfte sein, dass die Leitungen von Oszillator zum µC möglichst kurz sein müssen. Also am Besten nicht über 3cm. Und dass kannst du bei 30µCs nicht einhalten.
    Wenn die Leitungen länger werden, kommt es schnell mal zu Störungen, was für zeitkritische Anwendungen schlecht ist.

    jon
    Die Leitungslänge sollte eigentlich kein so großes Problem sein, wenn der Takt nicht allzu hoch ist. Ich habe bei einem Projekt einen 24MHz Takt über ca. 10cm verlegt. Ich musste zwar einen kleinen Kondensator am Ende der Taktleitung gegen GND reinbauen, um die Flanken ein wenig abzuschwächen (sonst kommt es zu Reflexion), aber es funktioniert absolut störungsfrei.

    Nein, das größere Problem wird sein, wie bombatz schon selber angesprochen hat, dass ein Oszillator nur begrenzt belastbar ist. Wie viele Controller man an einen Oszillator anschließen kann, müsste man im Einzelfall ausprobieren. Ich denke mal, das ist von Oszillator zu Oszillator unterschiedlich und hängt natürlich auch vom Eingangswiderstand des Takteingangs des µC ab.

    Eine andere Lösung wäre, den Takt nur auf einen µC zu legen und z.B. über einen Counter-Ausgang wieder auszugeben und damit den nächsten µC zu versorgen usw. Dann hätte man weder mit der Leitungslänge noch mit der Leistung des Oszillators zu kämpfen.

    Allerdings hat man dann den Nachteil, dass jeder Controller von seinen "Vorgängern" abhängig ist - d.h. wenn ein Controller nicht läuft, bekommen alle nachfolgenden keinen Takt.

    Manche Controller haben auch einen CLKOUT - Pin, an dem der eingehende Takt einfach wieder über einen Treiber ausgegeben wird. Das funktionniert in der Regel auch, wenn der Controller nicht läuft. Das wäre natürlich die optimale Lösung.

    Gruß,
    askazo

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Zitat Zitat von askazo
    Die Leitungslänge sollte eigentlich kein so großes Problem sein, wenn der Takt nicht allzu hoch ist. Ich habe bei einem Projekt einen 24MHz Takt über ca. 10cm verlegt. Ich musste zwar einen kleinen Kondensator am Ende der Taktleitung gegen GND reinbauen, um die Flanken ein wenig abzuschwächen (sonst kommt es zu Reflexion), aber es funktioniert absolut störungsfrei.
    Bei mir sind die Leitungen ein Problem. Wenn ich die über 3cm lang mache, kommt es zu Störungen. Kondensatoren helfen bei mir auch nichts. Ich habe es mit 16MHz versucht.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    24.07.2006
    Beiträge
    20
    An die Probleme mit den Leitungslängen habe ich bisher noch gar nicht gedacht. Wie man sieht, gibt es da wahrscheinlich auch keine sicheren Angaben. Bei Jon machen schon 3cm mit 16 MHz Probleme, wobei askazo mit 24 MHz und 10cm Länge Erfolg hatte.

    Als Taktfrequenz habe ich 16 oder 20 MHz vorgesehen und die Taktleitungen werden etwa 10cm lang.

    Eine andere Lösung wäre, den Takt nur auf einen µC zu legen und z.B. über einen Counter-Ausgang wieder auszugeben und damit den nächsten µC zu versorgen usw. Dann hätte man weder mit der Leitungslänge noch mit der Leistung des Oszillators zu kämpfen.

    Allerdings hat man dann den Nachteil, dass jeder Controller von seinen "Vorgängern" abhängig ist - d.h. wenn ein Controller nicht läuft, bekommen alle nachfolgenden keinen Takt.
    Diese Idee musste ich leider auch schon verwerfen, da es ein Stresstest für die µC's werden soll, und da ist bereits eingeplant, dass sich der ein oder andere Controller verabschiedet.

    Manche Controller haben auch einen CLKOUT - Pin, an dem der eingehende Takt einfach wieder über einen Treiber ausgegeben wird. Das funktionniert in der Regel auch, wenn der Controller nicht läuft. Das wäre natürlich die optimale Lösung.
    Das ist natürlich auch eine gute Idee, leider scheint der ATmega48, den ich verwende, ein solches Pin nicht zu besitzen.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    62
    Beiträge
    534
    ... zur Synchronisierung mußt Du wohl einen als Master definieren und bei allen anderen den Impuls als INT auswerten ..
    Ich kann mir keine Signatur leisten - bin selbständig!

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Es gibt den CLKO-Pin, den muss man aktivieren beim Mega48

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    24.07.2006
    Beiträge
    20
    ... zur Synchronisierung musst Du wohl einen als Master definieren und bei allen anderen den Impuls als INT auswerten ..
    eine Synchronisation ist in meinem Fall nicht notwendig, da die Controller nicht miteinander kommunizieren sollen

    Es gibt den CLKO-Pin, den muss man aktivieren beim Mega48
    stimmt... den hab ich glatt übersehen ... danke

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2007
    Beiträge
    10
    Ich habe eine Frage zum CLKO Pin, da ich auch vorhabe, mehrere Microcontroller ueber einen Takt laufen zu lassen. Beim ATtiny261/461/861 teilt sich der CLKO Ausgang einen Pin mit einem der beiden XTALs.

    Wenn nun schon ein Quarz zwischen beiden XTALs haengt, kann man dann trotzdem den CLKO benutzen, um die System Clock an andere Controller zu reichen?

    Gibt es dabei irgendwelche Einschraenkungen (Anzahl der drangehaengten MCs)?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad