CAN hängt beim Hochfahren, wenn kein CAN-Bus angeschlossen (PIC32MX)

Gast #3739407
Lesenswert?

Jeder Teilnehmer am CAN Bus muss sich erst mit dem Bus synchronisieren.
Wenn der Bus offen ist, wird das nicht gelingen und CANGetOperatingMode 
wird nie den gewünschten Mode liefern. Schau mal nach, was für 
Rückgabewerte definiert sind. Für sync fail sollte eigentlich einer 
dabei sein. Für bus off auf jeden fall.

FYI : Zur Zeit arbeite ich mit dem XC167. Zum bit INIT im control 
register steht folgendes in der Fußnote versteck:
1
After resetting bit INIT by software without being in the bus-off state (e.g. after power-on), a sequence of 11
2
consecutive recessive bits (11*’1’) on the bus has to be monitored before the module takes part in the CAN
3
traffic.
4
During a bus-off recovery procedure, 128 sequences of 11 consecutive recessive bits (11 * ’1’) have to be
5
detected. The monitoring of the recessive bit sequences is immediately started by hardware after entering the
6
bus-off state. The number of already detected 11 * ’1’ sequences is indicated by the receive error counter.
7
At the end of the bus-off recovery sequence, bit INIT is tested by hardware. If INIT is still set, the affected ASC
8
node controller waits until INIT is cleared and 11 consecutive recessive bits (11 * ’1’) are detected on the CAN
9
bus, before the node takes part in CAN traffic again. If INIT has been already cleared, the message transfer
10
between the affected ASC node controller and its associated CAN bus is immediately enabled.
Gast #3739426
Lesenswert?

Hallo Heribert,

die Library kenne ich nicht und weiss nicht, ob sie nur den Treiber 
anknipst oder einen halben CANopen-Stack bewegt.

Ich rate mal: Dein Geraet versucht, etwas auf dem CAN zu senden, 
Heartbeat oder so? Ohne Gegenstelle, die ACKt, sendet der CAN-Controller 
sich den TX-Pin wund und geht dann nach paar Dutzend Versuchen in den 
Error-Passive-Zustand.

Pruef auf alle Faelle, was fuer ein Fehlerwert von CANGetOperatingMode 
zurueckgeliefert wird.

--Konrad

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren