Hallo, als angehender Techniker versuche ich im Moment einen CAN Bus zum Laufen zu bekommen, was einseitig schon klappt. Mit Teilnehmer habe ich aber ein komisches Verhalten, wozu ich gerne mal eure Vorschläge hören würde. Ich habe zwei Boards, einmal ein Olimexino STM32F103RBT6 mit MCP2551 Transceiver und ein selbst gebautes STM32F103C8T6 Board mit ISO1050 Transceiver. Beide Boards sind mit 500KBit/s initialisiert und laufen im Loopback Mode für sich selbst (Intern CAN Rx auf Tx) einwandfrei, Interrupts reagieren und Nachrichten sind korrekt. Nun schließe ich beide Boards auf eine gemeinsame CAN Leitung von 10cm, beidseitig mit 120 Ohm terminiert. Wenn ich nun nur mein selbst gebautes Board initialisiere und eine CAN Message sende, sieht man dies schön und korrekt auf dem Bus (Bild 1). Initialisiere ich mit denselben Einstellungen das Olimexino (Korrektes Remap der CAN Pins schon beachtet!), wird der Frame unkenntlich und sieht auf dem Bus aus wie auf Bild 2. Was ich nun bereits gemacht habe, ist das CAN_ESR Register auszulesen, in dem die Error Messages signalisiert werden. Ohne Teilnehmer im Normal Can Mode, (wenn die Frames gut aussehen wie auf Bild 1) bekomme ich ACK Errors, soweit OK da ja keine Gegenstelle quittieren kann. Schließe ich nun meinen 2. Teilnehmer dazu sehe ich sehr schön wie mir nun ein "Stuff Error" angezeigt wird, auf dem Bus sehe ich diesen Verlauf wie auf Bild 2. Hat mir da jemand Vorschläge woran das liegen könnte, dass mir der Teilnehmer so das Signal versaut? Im Loopback Modus läuft dieser ja ohne Probleme... Timing Einstellungen, Initialisierungen usw. habe ich schon tausendfach mit Beispielcode von hier und im Internet sonst abgeglichen, bisher ist mir das Verhalten noch recht schleierhaft...
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.