Hallo liebe Mitstreiter, zur Vorbereitung einer Studienarbeit kämpfen wir uns gerade durch ein Vorlesungsskript. Nunmehr das Kapital CAN fast durchgearbeitet, hängen wir an der letzten Übung. Aufgabe: 2CAN-Controller sollen so konfiguriert werden, dass sie im "auto-answer-mode" arbeiten. Ein Empfänger- Mailbox (Sklave), die den RTR (remote-transmission-request) vom Master empfängt und die Portpins (B15...B8) per CAN überträgt. Problem: Nach Start der beiden Controller (sourcen siehe Anhang), wird der RTR nur einmal ausgeführt und danach passiert nix mehr. Lösungsansätze: Ich bin der Meinung, dass irgendwo ein Bit zurückgesetzt werden muss. Vielleicht gibt's hier im Forum ein paar Leute, die den Fehler sehen. Im Voraus schonmal vielen Dank.
Um über das TMS320F281x eCan Modul einen neuen Remote Frame zu senden muss das RTR Bit im MCF Register erneut gesetzt werden. Dafür jedoch muss die betreffende Mailbox zuvor deaktiviert werden (CANME - Register). Anschließend die Mailbox wieder aktivieren (enable) und schon wird ein neuer Remote Frame übertragen. Es ist auch darauf zu achten, dass nach dem Empfang eines via RTR angeforderten Datenframes, das RMP (Recieve Message Pending) Bit zurückgesetzt wird. Wenn zusätzlich mit Interrupts gearbeitet wird, so müssen innerhalb der ISR auch die entsprechenden Interrupt - Flagregister zurückgesetzt werden. Ich hoffe das hilft, obwohl es etwas spät kommt.
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.