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