- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Probleme mit CAN

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225

    Probleme mit CAN

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich habe auf meinem Steckboard 2 Mega8 am laufen. Ich habe alles so programmiert wie es auf Kijons Homepage beschrieben war. Nun habe ich an einem Mega8 ein MAX232 angeklemmt und lasse mir auf dem Terminal ausgeben wenn eine Nachricht reinkommt und was da so drin steht. Ein zweiter Mega8 liest einen Port ein und verschickt das ganze per CAN. Das alles ist auf meinem Steckboard aufgebaut. terminiert an beiden Seiten mit 120Ohm und funktioniert auch wunderbar.

    Nun habe ich bei einem Board das ich schonmal auf Lochstreifen aufgebaut habe (hat ein LCD, diverse AD Eingänge werden benutzt usw) auch einen MCP2515 mit aufgelötet (das Board hat auch einen Mega. Das sollte jetzt zB die Batteriespannung messen und per CAN verschicken. Ich habe also CANH und CANL mit ans Steckboard gelegt.

    Er sendet nun auch, aber nur ein paarmal und dann hört er auf. Der Prozzesor schient aber weiterzulaufen, denn auf dem LCD ändert sich die Spannungsanzeige wenn ich die Eingangspannung ändere, es geht nur keine CAN nachricht mehr raus. Die software für CAN ist genau die gleiche wie in dem anderen Mega8 bei dem es funktioniert.

    Woran könnte das liegen?

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.01.2004
    Ort
    Erlangen, Bayern
    Alter
    42
    Beiträge
    253
    Könnte es sein, dass du Anstelle eines AM8 einen AM8L drauf hast?
    Ist deine Spannungsversorgung stabil?
    Gehen die Daten an den MCP2515 definitiv raus?
    Hast du die Möglichkeit mal einen Logic Analyzer dran zu hängen?
    Kalte Lötstellen?
    Kann es sein, dass einer der CAN Teilnehmer den Bus blockiert? Häng doch mal einen CAN/oder Logic Analyzer dran.
    Wie sind die Pegel auf dem Bus, wenn nichtsmehr gesendet wird?
    Du schreibst, es wird erst ein bisschen gesendet... kommt es auf der anderen Seite wirklich an?
    Was sagt der JTAG (falls vorhanden) bleibt er evtl irgendwo hängen?
    Sind die Abschlusswiderstände drin?
    Welches BitTiming verrwendest du?
    Und welche Busgeschwindigkeit?
    Sind zwischen Bus und Board Optokoppler?

    Da könnte nach deiner Beschreibung vieles in Frage kommen.

    Gruss
    Michael

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    Also ich habe leider weder logic analyzer noch CAN Analyer. Der Bus schient ja aber in Ordnung zu sein. Also nochmal zusammengefasst

    - ein Knoten nur Empfänger mit Ausgabe auf ein Terminal
    - ein Knoten Senden mit ID 500 (Dezimal) die Batteriespannung
    - ein Knoten sendet mit ID 291 (Dezimal) seinen PORTD

    Der Bus ist an beiden Enden mit 120 Ohm abgeschlossen. Lasse ich den Knoten mit ID 291 senden kommt auch alles an und es geht wunderbar. Dann habe ich den Knoten mit ID 291 auf Reset gelegt, damit ich am Terminal mehr Übersicht habe. Jetzt lasse ich den Knoten mit ID 500 senden. Das geht dann ein paarmal und dann hört er auf. Wenn ich zwischendurch ein Paket mit ID 291 senden lasse hört er sofort auf mit dem Senden.

    Aufbau ist:
    -3x ATMega8 16PI (laufen aber alle mit den internen 1MHz)
    -3x MCP2515
    -3x MCP2551

    Vielen Dank schonmal
    Gruß Philipp

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    Vieleicht erwartet er ein ACKN und wenn er das nicht bekommt, könnt ich mir vorstellen, daß er das senden einstellt. Vieleicht mußt noch irgendwas konfigurieren.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    Ich habe sämtliche CAN funktionen in eine can.c gemacht und eine can.h

    diese Datei habe ich bei allen 3 knoten eingebuden. Die CAN Funktionnen sollten also exakt die gleichen sein. Und ein Sender läuft ja ohne Probleme. Ich dachte das es evtl. Fehler auf der Leitung gibt und er sich deshalb abschaltet (CAN Bus ist bei mir zwar sehr kurz aber nicht twisted)

    Kann man das auslesen?

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.01.2004
    Ort
    Erlangen, Bayern
    Alter
    42
    Beiträge
    253
    Ich weiß nicht wie das bei deinem CANController ist, arbeite mit dem SJA1000 aber evtl verparametrierst du die Akzeptanzmasken..
    Das mit dem ACK klingt auch ganz gut.

    Wenn du mit dem CANBus rumhantierst ist ein CANAnalyzer extrem hilfreich... auf kurz oder lang würde ich mir auf jeden fall einen anschaffen..

    Hast du mal probiert, den überflüssigen Node von der Leitung zu nehmen?

    Ich tipp irgendwie auf unsaubere Pegel...ist nur eine Vermutung.
    Hast du die Pegel schonmal nachgemessen, wenn nichtmehr gesendet wird?


    Gruss
    Michael

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    So ich habe den den Bus nun in richtige Anordnung gebracht. Aber das Problem ist fast das gleiche. Ich kann jetzt mit beiden Stationen senden. Mein LCD Board sendet nun auch fleißig und hört nciht nach ein paarmal auf. Allerdings stellt es seinen Dienst sofort ein wenn die andere Station etwas sendet. Der CAN Bus scheint soweit OK zu sein, denn diese Station die das senden der anderen unterbricht kann auch weiterhin etwas senden.

    Die Stationen müssen übrigens auch nicht gleichzeitig senden. Wenn das LCD Board noch gar nicht gesendet hatte, die andere Station aber, dann sendet das LCD Board auch nix mehr.

    Auf dem Bus messe ich solange es noch geht und danach (jeweils ohne traffic) 2,5V gegen masse an beiden Leitungen (also 0 auf der leitung)

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    So habe die Platine nochmal nachgelötet, da sollten auf keinen Fall kalte Lötstellen sein. Wenn ich den Atmel aus dem Sender rausnehme, der immer geht und ihn in das LCD Board stecke hat er genau die gleichen Probleme. Er sendet nur ein paar Nachrichten und dann ist schluß. Habe auch schon den MCP2515 und den Transceiver getauscht, aber keine verbesserung.

    Es kann ja an der Schaltung nix grundlegend falsch, denn einige Nachrichten gehen ja raus.

    Bin langsam am verzweifeln

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Hast du dir mal die Fehlercodes ausgeben lassen ?? Der MCP2515 gibt ja eigentlich relativ genau aus was nicht stimmt Insbesondere die Fehlerzähler sollten Interessant sein ...

    MfG Kjion

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    Wie kann ich den denn auslesen?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen