mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MCP2515 an ATmega8 - falsche Daten aus Loopback :-(


Autor: David Madl (md2k7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen MCP2515 CAN-Baustein am SPI eines ATmega8 hängen. Der 
MCP2515 ist in Loopback mode (CANCTRL = 0x47 (REQOP1 -> Loopback, und 
Taktausgang auf 1/8), auch ausgelesen, stimmt).

Ich schreibe jetzt eine Nachricht in TXB0 mit der extended CAN-ID 
0x12345678. Ausgelesene CAN-ID-Register des Sendepuffers: TXB0SIDH bis 
TXB0EID0 = 91A05678, müsste meiner Meinung nach stimmen, müsst ihr nicht 
nachrechnen.

Nach dem Empfangen in RXB1 sehen die CAN-ID-Register des 
Empfangspuffers: RXB1SIDH bis RXB1EID0 so aus: 91A0F408
-> Es wurde also alles korrekt "empfangen" (Loopback!), außer die 
extended ID.
Mehrmaliges Auslesen der Register bringt immer dieselben Ergebnisse.
Für das Auslesen habe ich sogar zwei verschiedene Routinen von mir 
benutzt, einmal eine, die mit dem "Read RX Buffer"-Befehl arbeitet (ist 
quasi ein Read mit abgesparter Adresse - wird automatisch vom 
Empfangspuffer gelesen); eine andere, die mit dem Read-Befehl ein 
einzelnes Register ausliest, mit massig Delays zwischen den einzelnen 
gelesenen Bytes...

Mehrmaliges Senden bringt eine abwechselnde Folge von 91A0F408 und 
91A07CBF in den Empfangsregistern für die CAN-ID - diese Folge ist auch 
nach erneutem Bestromen gleich.

Ist mein MCP2515 "kaputt"? Kann ein IC so kaputtgehen? Liefert ja 
immer (2) unterschiedliche falsche Werte aus dem RAM...

Gruß
David

Autor: David Madl (md2k7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls jemand das hier findet und sich ebenfalls wundert:

Ich habe im TXB0SIDL Register das EXIDE Bit vergessen, das für die 
extended CAN-ID steht, ansonsten wird nur die standard-ID mit 11 Bit 
übertragen.

TXB0SIDL lautet für mich also 0xA8, in meiner Notation der 4 Register 
für die CAN-ID: 91A85678...

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.