F
Florian Schenk
Guest
Hallo!
Wir möchten gerne bei einem Projekt von 2 Phillips SJA1000 auf einen
82C900 von Infineon umsteigen. Die Testplatine (82C900@16MHz und Atmel
MEGA163, www.schema2000.de/can/can.pdf) ist soweit fertig und die
Kommunikation zwischen MEGA163 und 82C900 funktioniert auch (Register
lassen sich beschreiben und lesen). Leider sehe ich im Moment noch
kein Licht bei der Konfiguration des 82C900. Im Moment teste ich mit
folgender Initialisierung des 82C900:
Initialisierung der Nodes A und B:
// Enter Init-State
ControlRegister = C900_CCE | C900_INIT;
// Set Timing-Register (div8x=1, tseg2=2, tseg1=3, sjw=2, brp=19)
BTR = (1 << 15) + (2 << 12) + (3<< 8) + (2 << 6) + ( 19 ), 4);
// Framecounter aktivieren
FCR = 0x0007000;
// Exit Init-State
ControlRegister = 0;
Müsste zum jetzigen Zeitpunkt nicht schon der Framecounter bei richtig
empfangenen Pakten hochzählen (tut er bei mir nicht!) ?
Danach: Initialisierung von einem Message-Objekt (31) als Shared
Gateway:
// MSGVAL auf invalid -- Beginn der Initialisierung f. MO31
CTR31 = 0x00005555;
// Source auf Node A setzen ==> Destination ist dann Node B
CFG31 = 0x00000000;
// FGCR passend für Shared-Gateway setzen, NODEPTR = 31
FGCR31 = 0x051F0100;
// Message Identifier auf 0 setzen (Alle Pakete)
AR31 = 0x0;
// Message Acceptance Mask auf 0 setzen (Alle Pakete)
AMR31 = 0x0;
// MSGVAL auf valid -- Ende der Initialisierung f. Messageobject 30
CTR31 = 0x00005595;
Das Problem ist, dass weder der Framecounter hochzählt noch Pakete
weitergeleitet werden. Das Statusregister und das ECNT zeigen auch
nichts besonderes. Nach ca. 30s bekomme ich aber seltsame Werte aus
diesen Registern zurück (0x20202020 oder 0x00000000).
Alles in allem suche ich nach irgendwelchen Beispielen, damit ich die
Schaltung bestätigen und prinzipiell mal die Funktionen des 82C900
testen kann!
Wenn jemand schonmal mit diesem Chip gearbeitet hat wäre ich über
Infos und Tips dankbar!
Gruss,
Florian
Wir möchten gerne bei einem Projekt von 2 Phillips SJA1000 auf einen
82C900 von Infineon umsteigen. Die Testplatine (82C900@16MHz und Atmel
MEGA163, www.schema2000.de/can/can.pdf) ist soweit fertig und die
Kommunikation zwischen MEGA163 und 82C900 funktioniert auch (Register
lassen sich beschreiben und lesen). Leider sehe ich im Moment noch
kein Licht bei der Konfiguration des 82C900. Im Moment teste ich mit
folgender Initialisierung des 82C900:
Initialisierung der Nodes A und B:
// Enter Init-State
ControlRegister = C900_CCE | C900_INIT;
// Set Timing-Register (div8x=1, tseg2=2, tseg1=3, sjw=2, brp=19)
BTR = (1 << 15) + (2 << 12) + (3<< 8) + (2 << 6) + ( 19 ), 4);
// Framecounter aktivieren
FCR = 0x0007000;
// Exit Init-State
ControlRegister = 0;
Müsste zum jetzigen Zeitpunkt nicht schon der Framecounter bei richtig
empfangenen Pakten hochzählen (tut er bei mir nicht!) ?
Danach: Initialisierung von einem Message-Objekt (31) als Shared
Gateway:
// MSGVAL auf invalid -- Beginn der Initialisierung f. MO31
CTR31 = 0x00005555;
// Source auf Node A setzen ==> Destination ist dann Node B
CFG31 = 0x00000000;
// FGCR passend für Shared-Gateway setzen, NODEPTR = 31
FGCR31 = 0x051F0100;
// Message Identifier auf 0 setzen (Alle Pakete)
AR31 = 0x0;
// Message Acceptance Mask auf 0 setzen (Alle Pakete)
AMR31 = 0x0;
// MSGVAL auf valid -- Ende der Initialisierung f. Messageobject 30
CTR31 = 0x00005595;
Das Problem ist, dass weder der Framecounter hochzählt noch Pakete
weitergeleitet werden. Das Statusregister und das ECNT zeigen auch
nichts besonderes. Nach ca. 30s bekomme ich aber seltsame Werte aus
diesen Registern zurück (0x20202020 oder 0x00000000).
Alles in allem suche ich nach irgendwelchen Beispielen, damit ich die
Schaltung bestätigen und prinzipiell mal die Funktionen des 82C900
testen kann!
Wenn jemand schonmal mit diesem Chip gearbeitet hat wäre ich über
Infos und Tips dankbar!
Gruss,
Florian