Forum: Mikrocontroller und Digitale Elektronik CAN-Channel Zustand


von gast (Gast)


Lesenswert?

hi,
ich habe eine Frage, es geht um den Zustand den CAN-Channel.Ich arbeite 
mit dem Mikrocontroller AT90CAN128. Im Datenblatt steht, dass das erste 
und zweite bit des Registers CANGSTA der Zustand des Channel gibt. Das 
Problem ist: wenn ich die CAN-Kabel ziehe, wird nicht passiert, der 
Inhalt von CANGSTA bleibt unverändern.CANGSTA= 0x04;bedeutet, dass der 
CAN-contoller aktiv ist. Hat jemanden schon sowas gemacht?
Danke

void AtCanGetBusState(void)
 {
        sprintf(tempstr, "CANGSTA: 0x%x\n",CANGSTA);
        break_point(tempstr, _LINE_);
        if (CANGSTA & (1<<BOFF))
        Error(CanError0);
  else if (CANGSTA & (1<<ERRP))
        Error(CanError1);
        else
        Error(CanError2);
}

von peter (Gast)


Lesenswert?

Ich kenne den AT90CAN128 nicht. Aber bei anderen Kontrollern bleibt der 
CAN Kontroller aktiv, auch wenn kein Kabel aufgesteckt ist. Das aktiv 
bedeutet, dass die Hardwareeinheit CAN im Mikrokontroller aktiviert ist, 
nicht das eine aktive Verbindung besteht.

von Juergen H. (harms)


Lesenswert?


von Alex (Gast)


Lesenswert?

Triggere das Senden eines Frames bei abgezogenem Stecker bzw. ohne 
Gegenstelle und schon geht er in den error passive Mode :)

von peter (Gast)


Lesenswert?

Hallo,
Alex im momemt sende ich ständig ein Frame auf den CAN-Bus, wenn ich das 
Kabel  abziehe, passiert gar nicht. Wenn ich das Kabel wieder einstecke, 
bekomme ich die passive Mode. Ich möchte gern die Meldung bekommen an 
dem Zeitpunkt, der  das Kabel abgezogen wird.
Juergen. Ich finde dein Beispiel kompliziert für einen Anfänger.

Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.