PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Adressierung im CAN Bus



Duesentrieb
26.01.2008, 17:40
Hallo,

ich bin immer noch auf der Suche nach einer Erklärung zur Programmierung meines Empfangsfilters beim CAN Bus.
Ich vermute dass ich die Registerbelegung vielleicht falsch verstehe?!

Beim Empfänger soll ein Filter auf die Sender-ID 25 gesetzt werden.
Ich habe dazu die beiden Register beim Empfänger wie folgt gesetzt:

Mcp2515_write_register Rxb0ctrl , &B00000000
Mcp2515_write_register Rxb1ctrl , &B00000000

Mcp2515_write_register Rxm0sidh , &B00000001
Mcp2515_write_register Rxm0sidl , &B01100000


Im Datenblatt werden die Bits 7-0 des Rxm0sidh mit SID<10:3> und die Rxm0sidl mit SID <2:0> für bit 7-5 bezeichnet

Hat jemand eine Idee?

T.J.
26.01.2008, 18:05
wofür genau sollen wir denn eine Idee haben? Für die 25 musst du die 16, die 8 und die 1 setzen, aber ich denke das ist dir bekannt.

Und die Masken nicht vergessen, sonst nützt dir der Filter nix ;)

Duesentrieb
26.01.2008, 18:30
es würde mir erst mal genügen, wenn ich eine Bestätigung dafür bekommen würde, dass ich die hier gesetzten Bits für die 25 stehen!
Filter und Maske habe ich gleich eingestellt (soll eine 25 sein)

Mcp2515_write_register Rxb0ctrl , &B00000000
Mcp2515_write_register Rxb1ctrl , &B00000000

Mcp2515_write_register Rxf0sidh , &B0000001
Mcp2515_write_register Rxf0sidl , &B01100000

Mcp2515_write_register Rxm0sidh , &B00000001
Mcp2515_write_register Rxm0sidl , &B01100000

T.J.
26.01.2008, 18:34
äh? nein

die 25 ist: 00011001 im low, das high register dann natürlich 00000000

nimm einfach den WIN rechner und gib im dec ne 25 ein, dann klickst du auf bin.

Duesentrieb
26.01.2008, 18:48
o.k. und wie sind dann die im Datenblatt vorgegebenen Bits 7-0 des Rxm0sidh, SID<10:3> und die Rxm0sidl, SID <2:0> zu verstehen?

T.J.
26.01.2008, 20:37
RXM(n) sind die entsprechenden Mask Register zu RXF(n) Die Masken musst du entsprechend so setzen, das dein Filter eine Wirkung hat.

siehe Datenblatt Seite 32, Table 4-2

elkokiller
28.01.2008, 06:27
setze deine Maske einfach auf 00111111 im hight und 11100000 im low Register.
So bekommst du die Adresse die du benötigst im Filter durch!

T.J.
28.01.2008, 08:21
Richtige Interpretation der Tabelle ;)

Was hast du denn mit dem CAN Bus schickes vor?

elkokiller
28.01.2008, 12:56
Ich bin gerade dabei meine Haussteuerung darauf um zu stellen.
Funktioniert klasse!

Duesentrieb
29.01.2008, 06:16
Hallo,

ich habe die Maskenbits jetzt auch auf 1 gesetzt und es hat geklappt!
Danke!

T.J.
29.01.2008, 07:11
interessant! und was hast du, duesentrieb, vor?

ich benutze gerade den 2510 für eine kleine Übertragung (nur ein STD byte) von messschaltung zu Grafikdisplaycontroller. Demozweck ;)

Duesentrieb
29.01.2008, 07:23
Ich möchte mir geren einen Webserver (AVR Basis) bauen, der diverse Informationen sammelt und darstellt.
Nächster Schritt soll dann die Fernsteuerung über das WEB sein....