mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC18F258 sendet kein CAN-Telegramm


Autor: Ingo F. (ingof)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hilfe, mein 18F258 ärgert mich!

Habe versucht ein einfaches CAN-Telegramm zu versenden. Aber irgendwie 
tut sich nichts beim senden.

Wenn ich das TXREQ-Bit setze um ein Paket abzuschicken hängt der PIC für 
immer in der Warteschleife bis das Paket verschickt wurde. Aber das 
passiert wohl nie!

Am PIC habe ich noch den MCP2551 Transceiver mit einem 120 Ohm zwischen 
CANH und CANL.

Auch am CAN_TX kommt auch nichts aus dem PIC heraus. Habe auch mal ohne 
Transceiver und 20 KOhm Pullup an CanTX probiert.

Sende über den Uart noch Erfolgsmeldungen 'c' für den Config-Mode und 
'n' für den Normalmode (oder den 'l'LoopbackMode) der erfolgreich 
eingelegt wurde
Dann kommt noch '.' für das senden meines Testpaketes und dann sollte 
eigentlich '+' für das Erfolgreiche Versenden kommen.

Habe ich denn noch irgendwas in meiner Initialisierung vergessen? Warum 
sendet er nichts?

Hoffe mir kann jemand helfen weiss auch nicht mehr wass ich noch alles 
ausprobieren soll..

Gruß
Ingo

Autor: Ingo F. (ingof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es denn keinen der CAN auf einem PIC18F258 öder ähnliches am laufen 
hat?
Habe mich durch das Datenblatt und das zugehörige Errata durchgearbeitet 
und bin mir eigentlich sicher dass ich alles bei der Initialisierung 
bedacht habe. Aber er sendet nichts!.

Hat vielleicht jemand Einen Codeschnipsel inkl Initialisierung die nur 
ein beleibiges CAN-Telegramm sendet? Egal was, Hauptsache es 
funktioniert. Könnte dann sehen wass ich vergessen habe. Egal ob C oder 
Assembler.

Oder kann sich mal jemand erbarmen und meinen Quelltext ansehen? Ich seh 
den Wald vor lauter Bäumen nicht mehr....

Gruß
Ingo

Autor: Ingo F. (ingof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schade dass mir keiner helfen konnte...

Habe es inzwischen doch noch herausgefunden. Waren gleich mehrere 
Fehler.

1) Im LoopbackMode wird wohl das TXREQ-Bit nicht zurückgesetzt wie ich 
vermutet hatte. Hätte also ewig drauf warten können.
2) Kabelbruch in einer Steckbrücke
>> Steckbrücke ersetzt
3) es scheint nicht zu reichen CANTX über Pull-Up zu verbinden damit er 
sendet.
4) Einige CAN-Register sind nicht über Access-Bank zu erreichen und nur 
über Bank15. (Bank15 darf ich wegen Errata nicht nutzen / evtl. CANRX 
Paketverlust).
>> Register über WIN-Bits gemapped

Das schöne daran war dass die Fehler sich alle gegen mich verschworen 
haben und gemeinsam gegen mich gekämpft haben...

Hat zwar eine Woche gedauert, hab aber doch gewonnen ;o)

Gruß
IngoF

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.