Hallo Zusammen, seit 2 Tagen kämpfe ich mit einem Problem mit einem dsPIC30F6012A und dessen CAN ISR. Kurze Umschreibung was ich machen möchte: Wenn CAN Botschaften ankommen (egal welche) soll der Controller wach bleiben und arbeiten, wenn keine CAN Botschaften mehr kommen soll er schlafen gehen. Was soweit geht: Der Controller wacht auf und bleibt wach und geht auch immer in seine ISR für CAN. Er schläft ein sobald der CAN abgezogen wird und geht schlafen. Hier beginnt das Problem: Er wacht auch wieder auf, geht dann aber nur noch einmal in die CAN ISR und geht deswegen sofort wieder schlafen. Ich muss die ganze Schaltung von der Stromversorgung trennen, danach ist der Controller wieder richtig initialiert so das er wach bleibt. D.h. nach einem wakeup vom sleep Modus ist der CAN nicht richtig initialiiert. Ich habe auch mal per Debug die Control und Statusregiter ausgelesen: Wenn alles geht hat C2CTRL : 0x08802 C2INTF : 0xC023 Wenn nix mehr geht C2CTRL : 0x08802 C2INTF : 0x8820 Es ist also RXEP: Receiver in Error State, Bus Passive bit 1 = Receiver in error state, bus passive gesetzt. Es ist also klar das da nix mehr geht. Nicht klar ist es mir wie das weg bekomme. Ich hab auch schon die APP-Note von Microchip durch und deren Beispiel Code für eine CAN-ISR umgesetzt. Diese sollte das Bit eigentlich löschen. Hilft aber nichts. Bitte helft mir! 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.