Forum: Mikrocontroller und Digitale Elektronik CAN Problem mit dem HC12 ( 68HC912DG128A )


von Markus K. (mkrug)


Lesenswert?

Hallo,

ich folgendes Phänomen. Ich hab den CAN eines 68HC912DG128A für 500kBit 
konfiguriert. Wenn ich jetzt an diesen µC Nachrichten sende erreiche ich 
bei bestimmten Nachrichteninhalten ein 'stehenbleiben' des CAN Busses. 
Konkret sieht das so aus das im sendenden CANalyser nur noch ErrorFrames 
angezeigt werden und danach der CANalyser sich vom Bus zurückzieht. Mein 
sonstiges Programm auf dem HC12 bleibt am leben und auch die CAN-ISR 
läuft wieder korrekt an wenn ich den CANalyser stoppe und wieder frisch 
starte.

Das Problem tritt unabhängig von der Buslast und auch unabhängig ob ich 
die Nachrichten überhaupt durch die Aktzeptanzfilter des HC12 lasse oder 
nicht auf. In den CAN-Registern des HC12 seh ich das der RXError Counter 
hochgelaufen ist (nicht wirklich verwunderlich). Ich hab mir dann den 
Bus mit einem Oszi angeschaut. Auffallend ist das ich immer wieder 
Nachrichten hab bei denen die Bits auf dem Bus offensichtlich gestört 
sind. Es sieht danach aus als ob das 'stehenbleiben' des CAN immer dann 
passiert wenn der HC12 das Ackknowledge-Bit 1-2Bit-Zeiten zu früh auf 
'0' zieht.

Hat jemand eine Ahnung woher das kommen könnte ? Es gibt ein Erata von 
freescale wo was von 'nützen sie keinen 16MHz Quartz sonst kann es zu 
unstabiler Funktionalität kommen' steht. Ich benütze einen 16MHz Quartz. 
Könnte das der Grund sein ?

Gruss und Danke für jeden Tipp
Markus

von Peter (Gast)


Lesenswert?

Hi,
Ich benutze CAN mit einen HCS12XA256, ebenfalls mit 16Mhz Quarz. Läuft 
absolut stabil. Mein CAN-Wissen ist zwar nicht mehr ganz frisch, aber 
könnte es sein, daß der andere Busteilnehmer spinnt? Immerhin schaltet 
der sich ja vom Bus weg und das sollte eigentlich derjenige tun, dessen 
Frames nicht bestätigt werden. Vielleicht liegt auch die Baudrate leicht 
daneben oder das Bit-Timing ist nicht ganz richtig. Vielleicht auch nur 
was elektrisches? Schwer zu sagen, aber am Quarz liegts wahrscheinlich 
nicht.

von Otto (Gast)


Lesenswert?

Hallo Markus,

> Ich benütze einen 16MHz Quartz. Könnte das der Grund sein ?

versuche es doch einfach mal mit einem 8 MHz Quarz - ist doch schnell 
probiert.

Falls es dann funktioniert, Dir aber zu langsam ist, drehe an der PLL.

Gruss Otto

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.