Forum: Mikrocontroller und Digitale Elektronik Abweichung CAN


von Johannes (Gast)


Lesenswert?

Hi,
wenn ich beim CAN (dsPIC30f4011) die Baudrate einstellen möchte, mache 
ich dieses mittels TQs, welche ich in 4 Abschnitte aufteile.
Ich habe einen Quarz mit 8MHz, ein PLL von 4 und eine Soll-Baudrate von 
250kHz.
Fosc=8MHz
Fcan=250kHz
Fcy=Fosc*PLL/4
TQ=2*((BRP+1)/Fcy)
jetzt nehme ich BRP=1 und habe 12 TQ zur verfügung und alles passt.

Was würde passieren, wenn ich BRP=2 nehmen würde ein TQ750ns dauern.
anzahl TQ pro bit = 4µs/750ns=5,3333333
5,33333 kann man schlecht aufteilen. also blieben 5 oder 6
bei 5 habe ich eine Abweichung von -6,25%
bei 6 habe ich eine Abweichung von +12,5%
zu 250kHz

was würde passieren, wenn man das machen würde? könnten die Nachrichten 
überhaupt noch gelesen werden? Könnten andere Teilnehmer meine 
Nachrichten lesen?

Johannes

von Steffen R. (steffen_rose)


Lesenswert?

Den maximal erlaubten Fehler kann man errechnen. Wobei meines Wissens 
die Abweichung relevant ist, die von allen Geräten am kleinsten ist 
(wenn die Geräte unterschiedliche Settings nutzen).

Prinzipiell bewegen wir uns hier aber unterhalb von 1.5%, eher Richtung 
0.5%. Insofern gehe ich davon aus, dass deine Nachrichten nicht 
empfangen werden können und dein Gerät den Bus komplett stört.

von Disco (Gast)


Lesenswert?

Es gibt eine Synchronisations Jump widht diese beträgt üblicherweise 1 
TQ oder 2TQ also müssten 6% auch machbar sein.

von Steffen R. (steffen_rose)


Lesenswert?

6% bei 250k? Niemals!
Interessant wäre aber schon, wie du auf diesen Wert kommst.

Anm:
Die Synchronisation erfolgt nicht bei jedem Bit.

mit SJW=4 bei 125k kann man auf so 1.58% kommen. Da muss der Samplepoint 
aber schon arg in der Mitte liegen, d.h. kurze Buslänge.

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.