mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC: C18 CAN Probleme


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich hoffe mir kann jemand bei meinem Problem helfen:

PIC 18F
C18 Compiler

Arbeite mich gerade in CAN ein.
Habe dazu einfach von NULL angefangen und losprogrammiert.
Mit Hilfe eines Busmonitoring tools möchte ich nun schaun,
ob der PIC auch sendet.

Meine Frage:
Wenn ich mit CANSendMessage eine Nachricht verschicken möchte wird ja 
das TXREQ Flag des jeweiligen ConrolRegister gesetzt.

Jetzt versucht der µC doch die Nachricht zu versenden.

Sollte kein anderer Teilnehmer drahnhängen, wird ja kein ACK empfangen, 
was wiederum heißt der µC zählt Fehler hoch, oder?
Kenn das alles nur aus der AutomotiveTheorie!
(Der Bustreiber ist mit 120 Ohm abgeschlossen)

Frage das deshalb, weil bei mir unmittelbar nach Start des PIC das 
ErrorBit TXBO (ErrorCounter > 0xFF) gessetzt wird und die entsprechende 
IR_Routine meine MIL leuchten lässt.

Kann mir jemand von euch ein Vorgehen sagen, wie man normalerweise mit 
Steuergeräten an den CAN geht
(z.B. alle 50ms prüfen ob Teilnehmer da is (wie auch immer) und erst 
dann mit dem senden beginnen, oder so?)

Bitte um HILFE!


Grüße

Stefan

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tja, üblicherweise sitzen immer min. 2 Geräte am Bus - 1 macht ja auch 
wenig Sinn. Wenn du mit CAN experimentierst, solltest du dir auf jeden 
Fall einen CAN-Dongle für PC zulegen. Dann hast du schon mal eine 
funktionierende Station. Ich habe gute Erfahrungen mit dem USB-Dongle 
von Peak Technology gemacht. Preiswerter da:
http://www.canhack.de/
allerdings keine Erfahrungen meinerseits.
Und ansonsten verhält sich dein CAN korrekt, wenn kein Ack kommt. 
Allerdings sollte das nicht sofort nach dem Einschalten passieren - 
127 wird üblicherweise versucht, die Botschaft loszuwerden.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ne RestbusSim mit V*ctor CAN*e 6.0 geschrieben.
Geh im Moment mit Ca*CaseXL Log an mein Steuergerät.

Das heißt, wenn kein Teilnehmer angeschlossen ist und ich senden möchte, 
wird der Fehlerzähler hochgezählt und mein Bustreiber ausgeschalten??

Hat mir jemand einen Tip wie ich den Bus am besten auf aktive Teilnehmer 
prüfe?
Das Steuergerät soll auch funktionieren, wenn kein anderer Teilnehmer 
aktiv ist.

Autor: Olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

kann mir jmd die can18xx8.c  und  can18xx8.h hochladen oder
wenigstens sagen, wo man die bekommen kann.


Gruß Olli

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Olli,

die nötigen Bibliotheken zu AppNotes findest du unter microchip.com
-> Desing -> Programming und dann "Application Notes - Source Code".

http://www.microchip.com/stellent/idcplg?IdcServic...


Grüße

Stefan

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.