Guten Tag, ich hab z.z. folgendes Problem: Ich benutze das Eval Board von Olimex mitm LPC2378 und will dort vorerst mal CAN und USB laufen lassen. Nun häng ich bei den Settings der Baudrate ( jedenfalls denke ich, dass dort der Fehler ist ). Das Board hat einen 12 Mhz Quarz, welchen ich ich zuerst auf 288 MHz multipliziere, um damit für später einen CPU Clk mit 57,6 Mhz herzustellen. CAN Clock ist auf 48 MHz ( 288 / 6 ) Hier mein Code für die CAN Initialisierung: void CanInit_fct (void) { // Power enable ( CAN 2 ) PCONP |= (1 << 14); // Clock Can2 enable PCLKSEL0 = 0x30000000; // Aktiviert CAN2 PINSEL0 &= ~0x00000A00; PINSEL0 |= 0x00000A00; // CAN Reset CAN2MOD = 1; // Disable CAN Receive Interrupt CAN2IER = 0; // Reset Error Counter CAN2GSR = 0; // Bitrate CAN2BTR = BITRATE500K48MHZ; // Interrupt installieren install_irq(CAN_INT,(void *) CanIrqHandler_fct, 1); // Enable CAN Receive Interrupt CAN2IER = 1; // CAN Normal Mode CAN2MOD = 0; } ich komm einfach nicht weiter bzw. finde den Fehler nicht. mfg Wolfgang
Sorry für das Doppelposting. Nachtrag: Ich habe hier noch 2 weitere CAN-Bus Teilnehmer ( ein PC mit CAN Karte und ein anderen µC mit CAN ), dort funktioniert alles reibungslos. Wenn ich mir nun das Fehlerstatus Register vom LPC2378 anschaue, sagt er mir ein Stuff Error. Hat jmd. vielleicht eine Idee?
Folgende Vorschlaege: Bitte das neueste Users Manual runterladen und nochamsl das Kapitel ueber PLL studieren, da steht (jetzt) was ueber ungerade Teiler fuer die PLL, die nicht erlaubt sind. Das liegt daran, dass bei einem ungeraden Teiler der Takt intern nicht mehr symmetrisch ist. Jetzt bestimmt die kuerzere "Takthaelfte" die Geschwindigkeit, die der Baustein tatsaechlich sieht. Das ist bei 288 MHz und Teiler 5 equivalent zu 72 MHz und da tut der Baustein im Rev "-" oder Rev "A" unzuverlaessig (manchmal auch gar nicht). Siehe Errata Sheet. Mach den Teiler mal auf 6, lass den Bausten bei 48 MHz laufen und aendere die CAN Teiler entsprechend. Falls es dann immer noch nicht laeuft, liegt das Problem woanders. Robert
danke für die Antwort. ja ich hab den Teiler schon auf 5 stehen ( sprich 6 ) und es hat sich nichts gebessert. Mir gehen langsam die Ideen aus, da wir ja mehrere CAN - Knoten haben und diese problemlos kommunizieren können, nur eben das Olimex Board nicht.. per Hand errechnete Baudrate-Settings haben auch nichts geholfen ( wir haben einen Sampling Point von 60-70% ) Initialisiert ist eigentlich der CAN-Clk, CPU-Clk und Power für CAN, hab ich da irgendwas vergessen?
Gib mal CAN1 und CAN2 frei. Hatte auch das Problem, das nur ein CAN aktiviert nicht lief. Ich benutze für beide CAN nur die halbe Systemfrequenz, dann läufts bei mir mit 72 und 60 MHz Systemtakt. 72 MHz macht aber schon mal Probleme (siehe Errata).
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.