MArkus S. schrieb:
> Rudolph schrieb:
>> 500kBit @ 16MHz? -> CANBT1 = 0x02, CANBT2 = 0x0c, CANBT3 = 0x37
>
> Ich beschäftige mich zufälligerweise ebenfalls gerade mit diesem Thema.
>
> Was genau muss ich mit den von dir angegeben Registern machen?
Im Ernst? Wie wäre es denn damit, da die Werte rein zu schreiben?
Etwa so:
1 | // setup für 500 kBit/s mit 16 MHz Quarz
|
2 | CANBT1 = (1<<BRP0);
|
3 | CANBT2 = (1<<PRS2) | (1<<PRS1);
|
4 | CANBT3 = (1<<PHS21) | (1<<PHS20) | (1<<PHS11) | (1<<PHS10) | (1<<SMP);
|
Einfache Beispiele gab es hier im Forum schon genug, die Suche nach
"90CAN" oder auch "16M1" sollte weiter helfen.
> Außerdem habe ich eine Clock von 14,7 MHz. Ändert sich dann was?
Ja, dafür gibt es dann aber auch kein Beispiel im Datenblatt.
Aber wie man das ausrechnet ist ja auch angegeben.
Gibt es irgend einen Grund, einen Quarz von 14,7 MHz einzusetzen?
UART Baudrate wird es ja eher nicht sein, den Fehler bei 16 MHz kann man
vernachlässigen, vor allem wenn da noch ein UART-USB Wandler mit dran
hängt.
Und der CAN hat auf jeden Fall die höheren Anforderungen an den Takt,
also einfach mal 16 MHz Quarz einbauen und dabei auch die für den Quarz
passenden Kondensatoren zu verwenden könnte helfen.