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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.