Forum: Mikrocontroller und Digitale Elektronik AT91SAM7X CAN und Clock


von Rafael L. (excalibur)


Lesenswert?

Hallo Leute,

ich habe folgendes Problem. Und zwar benutze ich einen AT91SAM7X mit 
einem Oszillator von 18,432 MHz und möchte damit eine CAN-Schnittstelle 
auf 10kBaud betreiben. Als Masterclock habe ich ungefähr 48MHz und kann 
damit auch ohne Probleme eine CAN-Baudrate von 50kBaud fahren aber 
tiefer komme ich damit nicht.

Zuerst dachte ich der CAN-Transceiver TJA1050 wäre das Problem aber wie 
sich auch nach einer Diskussion hier im Forum herausgestellt hat, liegt 
es wohl am Register des Vorteilers zur Berechnung der Baudrate. D.h. das 
Register ist nur 7Bit breit und wenn ich halt so eine kleine Baudrate 
berechnen will, dann wird der Vorteiler zu groß und das Register läuft 
über.

Jetzt habe ich bereits mit einem Beispielprojekt von Atmel mal etwas 
rumexperimentiert und den Masterclock mal auf 24MHz runter gesetzt und 
komme so auf eine Baudrate von 20kBaud für CAN. Da lag die Idee nahe den 
Masterclock weiter runter zu setzen um so auf 10kbaud für CAN zu kommen. 
Funktioniert so leider nicht, da ich mir dann den Rest der Applikation 
zerschieße und z.B. die serielle Schnittstelle nicht mehr funktioniert.

Hat jemand von euch eine Idee oder kennt die Lösung für mein Problem??? 
Also das optimale wäre, wenn man zur Baudratenberechnung nicht zwingend 
auf den Masterclock angewiesen wäre sondern das über einen anderen Clock 
gehen würde. Zum Einen damit der Controller mit der schnellstmöglichen 
Taktrate laufen kann und zum anderen ich keine Änderungen am Rest der 
Applikation vornehmen muss und trotzdem eine CAN-Baudrate von 10kbaud 
fahren kann. Ich habe im Datenblatt schon gesehen, dass es mehrere 
Clocks bei dem AT91 gibt aber hatte leider noch nicht die Zeit mich 
damit intensiv zu beschäftigen. Und wenn von euch jemand schon mal einen 
Ansatzpunkt für mich hätte auf den ich mich dann konzentrieren kann, 
dann wäre ich euch sehr dankbar.

Ich hoffe auf baldige Tips.....

Gruss
Rafael

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.