Hi Leute. Ich versuche grad, den CAN an einem Pic18F4680 zum Laufen zu bringen. Quarz: 10MHz Oszillatormodus: HSPLL (= effektiver Takt 40MHz) Tranceiver: MCP2551 (RS auf Masse gelegt) Termination: 120 Ohm zwischen CANH und CANL direkt am Tranceiver Der Pic an sich funktioniert, Interrupts laufen auch (getestet mit einer LED). Ich kann jedoch weder Senden noch Empfangen. Die Gegenstelle bildet ein PEAK-USB-Adapter, eingestellt auf 500kBit. Wenn ich versuche damit zu senden, kommt sofort die Meldung "BUSHEAVY". Ich vermute dass der Fehler in den BRGCON-Registern liegt. Zum Vergleich habe ich eine andre Schaltung, Quarz mit 16MHz ohne PLL-Modus. Da sind die Register so eingestellt für 500kBit und das funktioniert einwandfrei: BRGCON1 = 0x40; BRGCON2 = 0xB9; BRGCON3 = 0x84; Das bedeutet doch aufgeschlüsselt: Sync jump: 2x TQ Baud rate prescaler: 2x 1 / Fosc Phase 2 Select: Free Phase 1: 8x TQ Prop Time: 2x TQ Wakeup/Line Filter: Disabled Phase 2: 5x TQ Das sind für mich genau 15 TQ, zusammen mit dem standardmäßigen sync-TQ also 16. Passt also, tut auch. Jetzt meine Settings für die 500kBit / 40MHz Schaltung: BRGCON1 = 0x41; BRGCON2 = 0xBB; BRGCON3 = 0x86; Wieder aufgeschlüsselt: Sync jump: 2x TQ Baud rate prescaler: 2x 2 / Fosc Phase 2 Select: Free Phase 1: 8x TQ Prop Time: 4x TQ Wakeup/Line Filter: Disabled Phase 2: 7x TQ Das sind nun 19 TQ + 1 TQ für den sync, macht 20. Passt für mich auch. Dennoch bekomme ich immer BUSHEAVY und Nachrichten in beide Richtungen kommen nicht an. Sind diese Settings so korrekt? RS auf Masse passt auch?
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.