Hallo allerseits, ich habe eine Frage zu den berühmten internen Oscillatoren, weil ich gerade überlege die interne OSC-Schaltung von meinem TI-LM3S5Y36 zu nutzen. Bzw. ich würde den internen OSC sogar sehr gerne verwenden, weil sehr wenig Platz vorhanden ist. Im Datenblatt/Manual steht zum internen OSC: "[The internal OSC] provides a clock that is 16 MHz ±1% at room temperature and ±3% across temperature." Da geht es also auch irgendwie wieder um Stabilität. Über die Genauigkeit finde ich keine Aussage. Naja, wie auch immer: Worst case sind also 3 % Schwankungen. Was der µC machen soll: Daten mit dem ADC aufnehmen, ein paar Konditionierungsrechnungen durchführen und dann die Daten über CAN wegschicken. Ich würde annehmen, dass die OSC-Schwankungen für den ADC kaum eine Rolle spielen und für die Rechnungen absolut keine (bitte korrigiert mich, wenn ich hier falsch liege) - aber für den CAN-Bus wird das wahrscheinlich sehr wohl eine Rolle spielen (oben wurde ja bereits gesagt, dass die Kommunikation über assynchrone Schnittstellen unter solchen OSC-Schwankungen oft leidet). Meine konkrete Frage wäre jetzt: Wie kann ich denn ausrechnen, bei welcher Geschwindigkeit mein CAN-Bus noch sicher läuft, wenn die Worstcase- Schwankung von 3 % eintritt? Der OSC hätte hier eine Frequenz irgendwo zwischen 15,5 und 16,5 MHz. Das ergibt eine "Clockperiodendauer" von 0,065 bis 0,061 µS. Die Bitzeit bei High-Speed CAN mit 1 Mbit/s ist 1 µS. Was passiert jetzt hier? Bzw. muss die "Synchronität" nicht immer nur für den Zeitraums einen CAN-Frame gewährleistet sein? Die Frames sind bei CAN ja recht kurz (max. 128 Bit) und beim nächsten Transfer erfolgt eine Art Resynchronisation. Ich kann mir vorstellen, dass das irgendwie durch eine Drosselung der Geschwindigkeit hinhaut, aber ich weiß wie gesagt nicht, wie ich das genau ausrechnen kann. Meine Überlegung war, dass am Ende von so einem Frame das letzte Bit noch irgendwie zum Timing vom Empfänger passen müsste: Also Bit Nr. 128 beginnt bei 1 MBit/s nach 128 µs: Der Empfänger OSC läuft mit 15,5 MHz (minimale OSC-Frequenz) -> 2082 Perioden Der Sender OSC läuft mit 16,5 MHz (maximale OSC-Frequenz) -> 1953 Perioden Das wären 150 Perioden Abweichung am Ende vom Frame. Das ginge ja niemals, denn ein Bit ist ja nur ca 16 Perioden lang. D.h. hier wäre schon sehr nach ein paar Bits die "synchronität weg". Ich glaub also des ich einen Fehler mache. Denn wenn ich bei meinem Ansatz die Geschwindigkeit des CAN-Busses reduziere, wird das ja noch schlimmer - und das kann nicht sein, denn langsamer war ja immer sicherer. Dachte ich zumindest.... :-) Hat da jemand einen Tipp wo mein Denkfehler ist, bzw. wie man sowas macht? Danke!! Andi
Andi Ü. schrieb: > Meine konkrete Frage wäre jetzt: Wie kann ich denn ausrechnen, bei > welcher Geschwindigkeit mein CAN-Bus noch sicher läuft, wenn die > Worstcase- Schwankung von 3 % eintritt? Siehe AN1798. Schlechte Karten. 3% geht wohl nicht einmal mit lowspeed CAN, oder nur bei eher kurzer Leitung. > Das wären 150 Perioden Abweichung am Ende vom Frame. Es sind eher 6, aufgrund des bit stuffing. CAN ist bitsynchron, jeder Wechsel synchronisiert neu. Bringt aber nix, weil der kritische Punkt zumindest bei längerer Leitung die Arbitrierungsphase ist, die an allen Punkte im Netz funktionieren muss.
Und wenn die einzelnen Leitungen nur jeweils 1 m lang sind? Bzw. wenn nicht der Worst case mit 3 % sondern "nur" 1 % eintritt? Ich les mir ma die AN durch, danke für den Tipp.
In der Bosch-CAN-Spec steht die max. erlaubte Abweichung der Taktgeber drinn. Hab's nicht Kopf, mußt Du mal googlen.
Ja, die AN754 von Microchip erläutert auch etwas zu den einzelnen Abschnitten eines einzelnen CAN-Bits und erklärt auch die ständige Re-Syncronisierung der Bits.
@Dosmo: habs gefunden, auf Seite 66. 1,58% Schwankung is für 125 kBit/s ok. Als Daumenregel :P - was da die Daumenregel is weiß ich aber nicht :] Dort wird auch auf ein Buch verwiesen, das sich komplett mit dem Thema beschäftigt. Argh, ich glaub ich versuch einfach irgendwie noch nen Quartz auf dem PCB unterzukriegen - das kostet wahrscheinlich deutlich weniger Zeit, als ein Buch zu wälzen bzw. bringt am Ende auch ein funktionierendes Ergebnis :)- Aber ist natürlich auch weniger interessant...hehe. zu den ANs kam ich noch nicht. Kommt aber noch.
Nimm nen Resonator. In 16MHz gibts den schon in ca. 2x1,5mm. Kondensatoren auch schon drin :-)
Joachim, warum sagst du das nicht gleich? Sowas hab ich bisher noch nicht gesehen bzw. in Erwägung gezogen. Aber anscheinend kann man solche Dinger wirklich anstatt eines Quarzes mit Cs verwenden. Nice ! Mit 0,5 % Toleranz gehen damit die 125 kbit (vorausgesetzt die Daumenregel stimmt :]) locker. Danke für den Hinweis! Andi
Ich setze die Teile sehr oft ein. Schwingen schneller an, sind kleiner und mech. stabiler. Und früher waren sie auch noch deutlich billiger als Quarze. Der letzte Punkt hat sich leider gewandelt in letzter Zeit. In 1000er Stückzahl um die 20 Ct, Quarze bekommt man für die Hälfte.
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.