PIC18F4680: CAN funktioniert nicht

Gast #2656839
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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.