Hallo,
ich versuche nun seit einer Woche, eine einfache CAN-Kommunikation
zwischen zwei Evaluation Boards vom Typ EK-TM4C123GXL
(http://www.ti.com/tool/ek-tm4c123gxl) von TI mithilfe ihrer eingebauten
CAN-Controller und CAN-Transceivern vom Typ MCP2562 herzustellen. Den
Schaltplan habe ich angehängt (aus Versehen sogar doppelt,
Entschuldigung).
Als Programme verwende ich die von TI im TivaWare-Paket enthaltenen
CAN-Beispielprogramme simple_tx.c und simple_rx.c, die im Original
angehängt sind. Die Zeile für das dynamische Interrupt-Vectoring habe
ich jeweils aktiviert, der Interrupt-Handler wird auch ausgeführt (daran
erkennbar, dass das Flag bei empfangener Nachricht gesetzt wird, das
eine Ausgabe auf der seriellen Schnittstelle zur Folge hat). Ansonsten
habe ich an der angehängten Datei nichts verändert. Die Pinbelegung
stimmt mit meinem Aufbau überein (PB5 als TX, PB4 als RX). Die
Abschlusswiderstände von 120 Ohm habe ich eingesetzt.
Mein Problem ist, dass der Sender ständig Nachrichten sendet. Der
Empfänger empfängt auch Nachrichten, liest aber nur Nullen ein.
Ich habe verschiedene Tests an der Hardware durchgeführt, alle ohne
Ergebnis. Beispielsweise habe ich TX und RX am Sender mit einem
Oszilloskop gemessen. Die Verläufe stimmen überein, wie es sein sollte,
da ja nur ein Board sendet. Ein Kollege hat mit einem Logic-Analyzer die
verläufe von RX und TX am Empfänger-Board gemessen, dekodiert und die
korrekten Daten ausgelesen.
Das Herabsetzen der Bitrate war ebenfalls wirkungslos.
Ich habe jetzt das Gefühl, dass möglicherweise ein Problem mit der
Software vorliegt. Kann mir jemand helfen?
Ich bin für jede Anregung dankbar.
Mit freundlichen Grüßen,
Etienne