Forum: Mikrocontroller und Digitale Elektronik AT90CAN mit internem Oszillator


von hoopi (Gast)


Lesenswert?

Hallo Kollegen,
Kann mir jemand verraten, ob für eine CAN-Übertragung bei 200KBaud der 
interne 8MHz-Oszillator am AT90CAN32 ausreicht, oder sollte man gleich 
einen Quarz einsetzen?
Danke schon mal.
hoopi

von Michael L. (Firma: Ingenieurbüro Lehr) (ml-net)


Lesenswert?

der interne Oszillator macht gerne mal 5 bis 10% Fehler.
Also externer Takt ist Pflicht.

von Harald H. (hhoopi)


Lesenswert?

Hallo Michael,
Dachte ich mir schon, ich hoffte noch auf die interne Kalibrierung des 
RC-Oszillators, die laut Datenblatt ziemlich genau sein soll. Reicht die 
nicht aus?
hhoopi

von Tobias (Gast)


Lesenswert?

Gibt es auch Daten auf dem CAN-Bus ohne eine Beteiligung Deines 
Controllers und werden diese Daten von einem Teilnehmer gesendet, der 
eine exakte Zeitbasis besitzt? In diesem Falle spricht natürlich nichts 
dagegen, den CAN RX Pin als normalen Input zu verwenden, mit einem Timer 
die Bitzeiten zu bestimmen und den internen Oszillator so lange 
abzustimmen, bis die Bitzeiten den 200kbps entsprechen. Eine Art 
selbstständige Kalibrierung also. Nach dieser Prozedur aktivierst Du den 
den CAN-Controller und auf geht's.

Tobias

von Otto (Gast)


Lesenswert?

> Eine Art selbstständige Kalibrierung also.

gute Idee - was passiert aber, wenn die Temperatur um z. B. 20°C steigt 
oder fällt z. B. bei Einsatz in einem KFZ ?

Otto

von Tobias (Gast)


Lesenswert?

Wer sagt, dass die Kalibrierung nur ein einziges Mal stattfinden muss? 
Man könnte sie ja jede Minute durchführen.

von Harald H. (hhoopi)


Lesenswert?

Hallo Tobias,
Der Baustein sitzt wahrhaftig im Automotive-Bereich und muss sich mit 
einem übergeordneten Steuerrechner unterhalten, der Messwerte abfragt. 
Es geht darum, den abgekündigten SAE81C91 mit Prozessor etc. durch einen 
einzelnen AT90CAN zu ersetzen. Das mit der Kalibrierung wäre schon 
interessant, aber ich glaube, das funktioniert nicht, da auch der Timer 
vom Systemoszillator abhängig ist, daher auch nur falsche Zeiten messen 
kann. Ich denke, ich werden einen Quarz einsetzen, damit bin ich auf der 
sicheren Seite und muss mich nicht im Bett wälzen mit Albträumen von 
ausfallenden Busteilnehmern und folgenden Telefonanrufen.
Otto hat schon recht mit der Temperaturdifferenz, die kann in dem 
Anwendungsfall recht hoch sein.
Kann mir vielleicht einer einen SMD-Quarztyp nennen mit 6 MHz und 
möglichst so klein wie ein Fliegenschiss? Ich finde in dem 
Frequenzbereich nichts kleineres als 7x5mm.

hhoopi

von Tobias (Gast)


Lesenswert?

> da auch der Timer vom Systemoszillator abhängig ist, daher auch nur
> falsche Zeiten messen kann

Gerade das ist ja der Gag an der Sache. Du ermittelst rechnerisch z.B., 
dass der Timer bei 8 MHz Systemtakt während einer Bitzeit genau bis 1000 
zählen müsste. Ist der Zählerstand nachher höher/niedriger, weißt Du, 
dass der Oszillator zu schnell/langsam läuft und regelst ihn ein wenig 
nach. Das alles wiederholst Du so lange, bis Dein Timer möglichst genau 
bis 1000 zählt.

von Harald H. (hhoopi)


Lesenswert?

Hallo Tobias,
Jetzt, ja, ach so.
Ich ermittle also die nötige Frequenzänderung aus den Bus-Signalen, die 
irgendwann mal eintreffen. Das ist natürlich ein toller Trick. Ich war 
immer noch auf dem eigenen Rechner zugange. Ich denke, die Kalibrierung 
muss vielleicht alle paar Minuten mal durchgeführt werden, wenn der 
Teilnehmer gerade nichts anderes zu tun hat. Ich werde mal näher drüber 
nachgrübeln. Schönen Dank für den Tipp.

hhoopi

von R. Zahn (Gast)


Lesenswert?

Hallo hhoopi

die Größe des Quarzes steht in einem direkten Zusammenhang zur Frequenz 
und somit wird der Quarz auch immer größer, wenn die Frequenz kleiner 
wird. Einen 6MHz Quarz bekommt man gerade noch in ein Gehäuse mit den 
Abmessungen 7x5mm, kleiner geht nicht. Oder es kommt ein Resonator in 
Frage, dann sind kleinere Abmessungen möglich.

Falls es um Fragen zu kleinen Quarzgehäusen geht, oder um Fragen zu 
Quarzen allgemein, dann kann ich gerne helfen.

Mit freundlichem Gruß
R. Zahn

von Harald H. (hhoopi)


Lesenswert?

Hallo R.,
Vielen Dank für die Erläuterung, ich werde die Platte wohl ein wenig 
aufräumen müssen, wenn ich mit dem Trick von Tobias nicht hinkomme.
Danke nochmal an Alle.
hhoopi

von Tobias (Gast)


Lesenswert?

Dann verrate uns später mal ob's geklappt hat.
Ich könnte mir vorstellen, dass man im laufenden Betrieb zum 
"Nachkalibrieren" nicht einmal den CAN-Controller abschalten muss. Das 
PIN-Bit des CAN RX Pins müsste sich ja auch bei aktivem CAN-Controller 
einlesen lassen. Ich würde übrigens vorzugsweise die 
Rezessiv-nach-Dominant-Flanken auswerten, da diese aktiv erzeugt werden 
und somit steiler sind. In der Praxis ist's vermutlich egal.

von Harald H. (hhoopi)


Lesenswert?

Hallo Tobias,

Werde ich mal versuchen, wenn mir die Zeit nicht davonläuft. Ich hatte 
jetzt vor, aus eben den Zeitgründen und zur Sicherheit einen Quarz 
einzusetzen. Aber wie gesagt, interessieren würde mich es auch brennend.

hhoopi

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
Noch kein Account? Hier anmelden.