Forum: Mikrocontroller und Digitale Elektronik PIC + CAN, Baudrate weicht um ca 4% ab


von Joachim .. (joachim_01)


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?).

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.