mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit CAN - MCP2515


Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hab ein Problem mit meinem CAN-Controller MCP2515. Der hängt an
einem AVR AT90S2313 und hat als Bustreiber noch einen 82C250 an seiner
Seite. Das Ansprechen des MCPs vom AVR aus funktioniert wohl, die
Freuqenz am Taktausgang des MCPs kann ich zumindest verändern. Wenn ich
versuche ein Telegramm via CAN zu senden, passiert folgendes:

Der MCP legt ein Bit an den Bustreiber, lässt es für 8us anliegen und
bricht dann ab. Noch kurzer Zeit versucht er das ganze nochmal.
Datenrate ist auf 125kHz eingestellt. Wenn ich nun am MCP die Pins
CANRX und CANTX verbinde, dann sendet er das Datentelegramm wie
gewünscht komplett. Woran könnte das liegen ?

Was muss denn alles mindestens vorhanden sein damit ich ein
Datentelegramm schicken kann ? Müssen noch andere Geräte mit der
richtigen Bitrate an dem Bus hängen ?

Danke an alle Helfer....

Gruß
Philipp

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der CANbus muss mit 2x 120 Ohm abgeschlossen sein, sonst hört Rx nicht,
was Tx sendet.
Der Controller meint, er habe die Arbitrierung verloren, und hört
deshalb auf zu senden.

Du brauchst einen weiteren CAN-Teilnehmer, der ein gesendetes Telegramm
aknowledged, sonst wird es immer wieder gesendet.

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, danke erstmal für deine Antwort, werde das mal testen wenn ich den
Bus korrekt abgeschlossen habe. Nen zweiten Teilnehmer brauch ich ja nur
damit die gesendete Nachricht bestätigt werden kann, oder ? Wenn der
nicht vorhanden ist wird die Nachricht ja aber auf jeden Fall nach nem
Reset mal gesendet, oder ? Die müsste ich ja dann auf dem Bus sehen
können...

Autor: Alex G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur einen Bustreiber.
Einen weiteren Teilnehmern ist nicht erfordelich. Der Bus sollte aber
abgeschlossen werden.

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

hab jetzt nochmal ein bissle getestet:

Konfiguration:

Direkt hinter dem Bustreiber 120 Ohm über CANH und CANL, dann ein paar
Meter Kabel, nochmals mit 120 Ohm abgeschlossen. Bustreiber aus der
Fassung gezogen und 60 Ohm gemessen. Sollte also passen. Also
Bustreiber wieder rein und eingeschaltet.

Der MCP versucht ein CAN Frame zu senden und bricht sofort ab. (Ich seh
nur das ein Flag im Error-Register gesetzt ist). Auf dem Bus sieht man
gar nichts, direkt am MCP sieht man auf der Leitung zum Bustreiber
einen ~136us langen Impuls. Anschließend sieht mann dann nur noch die
8us dauernden Impulse, die dann allerdings regelmäßig.

Wenn ich nun wieder am MCP RX und TX brücke, sendet er auf der Leitung
zum Bustreiber den kompletten Frame, auf dem CAN-Bus sieht man hingegen
nichts. Der Bus hat einen Pegel von ~10mV. Und da ändert sich auch
nichts. Ich habe auch schon einen 2. 82C250 versucht, allerdings mit
dem gleichen Ergebnis. Schade eigentlich :-(

Kann sich da jemand einen Reim darauf machen bzw. mir sagen was ich
falsch mache ?

Danke....

Gruß
Philipp

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, Problem gelöst. Ich hab jetzt noch einen weiteren Bustreiber
versucht und mit dem hats dann auch so geklappt wie ich mir das
Vorstelle. Au mann, soviel Zeit für nichts. Aber trotzdem danke an
alle....

Autor: Manfred Feitzinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ich bin gerade dabei einen Can-Knoten zu bauen.
Ich währe sehr dankbar für nähere Info

Danke Manfred

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Waaas möchtest du denn wissen?

Autor: Manfred Feitzinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich programiere in Bascom.
Ich habe herausgefunden dass es besser ist den MCP2510 zu verwenden
(wollte eigentlich den SJA1000 verwenden, da ich Ihn kenne)
Nun habe ich absolut nichts im Web gefunden wie ich einen MSP2510 in
BASCOM anspreche.
Nun meine Frage: Wie spreche ich den MCP2515 an ??
Geht es in BASCOM oder muss ich eine neue Programiersprache lernen ??

Danke Manfred

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Geht es in BASCOM oder muss ich eine neue Programiersprache lernen ??

Sollte auch gehen. IMHO stösst man bei BASCOM aber auch relativ schnell
an die Grenzen.

Den MCP2515 spricht man über die SPI an. Das sollte BASCOM unterstützen
(sogar als SOFT-SPI-Baustein...).
Vielleicht solltest du dich erst mal mit BASCOM (oder einer anderen
Programmiersprache) ansich befassen, indem du LEDs blinken lässt,
Taster einliest etc.
So lernt man die Sprache kennen. Den CAN-Knoten kannst du dann im
weiteren Verlauf bauen...

Autor: Manfred Feitzinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für Deine Tips.
Ich bin eigentlich schon sehr weit (trtz meiner schlechten Englisch
kenntnisse)
Led´s Blinken i2c-Bus, LCD auch über i2c, ... kein Problem
Aber SPI ist eben total neuland für mich.

Danke Manfred

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.