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
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.
Es gibt eine Synchronisations Jump widht diese beträgt üblicherweise 1 TQ oder 2TQ also müssten 6% auch machbar sein.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.