-
-
Erfahrener Benutzer
Roboter Experte
Hallo,
Also, ich habe gerade mal im
"Microchip CAN Bit Timing Calculator" nachgeschaut.
Hier mal meine Theorie:
Weder mit 16MHz, noch mit 20Mhz Quarz kommt man auf die 166kbps.
Das geht einfach rechnerrisch nicht auf. Es gibt für diese Quarze
anscheinend keine Lösung für 166kbps, die 0% Error hat...
166,667kb war das Beste glaub ich, wären sogar nur -0,4016% Error.
Mit 20MHz, BRP-1 = 5, 10Tq.
Mit 16MHz, BRP-1 = 1, 24Tq.
Kannst es ja mal versuchen... Einige Pakete werden evtl Fehlerhaft übertragen. Eben 0,4% der Pakete... Also ca. 1 von 250Paketen.
Ich glaube aber, dass der MCP2515 in einem Solchen fall dann den sendevorgang wiederholt!
( Sorry, dass ich dir das erst jetzt sage :-/ )
Das ist vergleibar mit dem UART.
Setzt man für den ATMEL zB 8MHz quarz ein, kann man
keine üblichen Baudraten erzielen, die 0% Error liefern.
Du müsstest als mit den Formeln im Datenblatt zurückrechnen,
welches Quarz du einsetztn müsstest, dass 166kbps "als ganze Zahl" rauskommt... Aber mir 0,4% Error dürfte es schon funktionieren!
Probier einfach mal folgendes aus:
Mit 16MHz:
BRP-1 = 1;
Proporgation Delay = 7 Tq;
Phase Segment 1 = 8 Tq;
Phase Segmant 2 = 6 Tq;
Syncro Jump Width = 1 Tq;
Mit 20MHz:
BRP-1 = 2;
Proporgation Delay = 3 Tq;
Phase Segment 1 = 8 Tq;
Phase Segmant 2 = 8 Tq;
Syncro Jump Width = 1 Tq;
Mach auch mal ein Probeprogramm, welches dir die
Register aus dem MCP wieder ausliest, zur Kontrolle.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen