PIC + CAN, Baudrate weicht um ca 4% ab

OP #3216112
Lesenswert?
• ▲
▼
Hab hier zwei PIC 18F458 mit 20MHz Quarz + MCP2551 die mit 125kBaud mit 
nem SAM3X8E + 65HVD234 via CAN kommunizieren sollen. Untereinander 
funktionieren die PICs.


Auf dem Ozsi sehe ich, daß die Bitzeit anstatt 8.0us bei 125kBaud 8.3us 
beträgt (bei dem SAM3X8E ist sie ok). Ich hab jetzt seit Stunden
mit den Time-Quanta für Propagation und Phasensegment1 + Phasensegment 2 
rumprobiert, es will einfach nicht besser werden. Das Phänomen findet 
sich auch bei anderen Geschwindigkeiten und Quarztakten. Am Quarz 
liegt's definitiv nicht, ich hab mehrere ausprobiert, auch mit oder ohne 
2x33pF ändert sich nichts.

Ich verwendete zuert eine Bibliotheksfunktion von Microchip (die etwas 
hakte weil sie wohl für den CCS-Compiler gedacht ist) und hab, als das 
nichts half, direkt in die Baudraten-Register geschrieben. Das Ergebnis 
war im Prinzip stets das gleiche, ich traf die 8.0us nie sondern habe 
immer etwa 7,8 oder 8.3us für ein Bit.

Für ein Dran-Drehen am Oszillator ist im Datenblatt nix vermerkt (hätt' 
mich auch gewundert).
1
CANInitialize (1,     //SJW
2
               5,     //BRP
3
               7,     //PHSEG1
4
               6,     //PHSEG2
5
               2,     //PROPSEG
6
               CAN_CONFIG_SAMPLE_ONCE &
7
               CAN_CONFIG_PHSEG2_PRG_OFF &
8
               CAN_CONFIG_LINE_FILTER_ON &
9
               CAN_CONFIG_MSG_TYPE_BIT);

Kann der Bus die 4% Abweichung eigentlich verdauen? Jedenfalls bekomm 
ich pro Nachricht etwa 5 Fehler, die Nachricht wird nicht in den 
Empfangspuffer geschrieben (könnte aber auch andere Ursachen haben).


Jemand ne Idee?

Noch ne Bemerkung am Rande: Die CAN-Engine die Atmel für den 16M1 
verwendet sieht aus als ob sie gleichen Ursprungs wäre - sie sind fast 
tupfengleich (Ursprung Intel?).

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.