für eine Projektarbeit muss ich ein mit einem Peak Dongle gesendetes CAN-Bus Signal über ein CAN-Shield
an einen Arduino Uno einlesen und danach weiter verarbeiten. Allerdings kriege ich es nicht hin eine Verbindung zwischen beiden aufzubauen. In Foren wurde ich bisher nicht fündig bzw konnten mir diese nicht weiterhelfen da sich alles auf die Kommunikation zwischen Auto und Arduino oder zwei Arduinos bezog. Ich hoffe einer von euch hat eine Idee oder sogar Erfahrungen dazu und kann mir weiter hefen.
wo ist das Problem ? CAN-High, CAN-Low und Masse zwischen beiden verbinden. Je nach Shield und Kabeln brauchst du auch noch die zwei 120 Ohm Widerstände zwischen CAN-High und CAN-Low möglichst am Anfang und Ende des Busses. Manche Shields und auch manche Kabel von Peak haben eingebaute Widerstände, also aufpassen, dass es nicht zu viele werden.
Ich kenne die Software von Peak nicht so gut, aber da sollte es etwas geben, was alle eintreffenden Messages anzeigen kann.
Wenn du also auf dem Uno einen Beispiel Sketch zu deinem Shield ausführst, der irgendwas sendet, dann sollte man das in der PC Software sehen. Voraussetzung ist, dass beide auf die gleiche Baudrate eingestellt sind.
Wenn das funktioniert ist die Verkabelung in Ordnung. Die andere Richtung sollte dann auch gehen. Wenn nichts kommt, kann das an der Verkabelung oder am Shield liegen. Die benutzen ja in der Regel SPI und ein paar IO-Leitungen. Ggf. nachschauen, ob der Sketch zum Schaltplan des Shields passt.
Beispiele zu deinem Shield sollte es ja wohl bei dessen Hersteller geben. Du schreibst ja nicht, was du da verwendest. Ich mache CAN eher mit dem Teensy und habe da jetzt nichts konkretes für den Uno parat.
Wenn Du einen weiteren Slave direkt am PC an den Bus anschließt und Diesen Alles ausgeben lässt, was Der so mit liest?
Dann wäre zumindest schon Mal klar, ob was kommt und ob Du Das auch lesen kannst.
Die Baudrate kannst Du im Sketch einstellen - einige CAN-Module haben einen 8MHz-Quarz, soll Diese auch mit 16MHz geben - die Lib sollte eine Einstellung haben, in Der Baudrate und Quart angegeben sind - aka "9600_8MHz" - diese Konstanten sind aber wohl in der Lib versteckt.