Forum: Mikrocontroller und Digitale Elektronik AT90CAN Autoreply und DLC


von Harald H. (hhoopi)


Lesenswert?

Moin CAN-Spezialisten,
Ich habe ein Problem mit dem Controller AT90CAN. Dieser Chip wird von 
einem Sender per RTR veranlasst, einen Datenrahmen zu senden. Nun soweit 
ganz gut, es funktioniert sogar per Autoreply. Jetzt ist der Sender 
(RTR) aber nicht in der Lage, den richtigen DLC zu senden, sondern 
sendet stets 8. Mein armer AT90CAN hat aber nur 7 Bytes Daten zu 
vergeben und sendet auch nur diese, allerdings mit einem DLC von 8, da 
er diesen vom Anforderer aufgezwungen bekommen hat. Also dazu am Ende 
0x00.
Wie kann ich verhindern, das im Autoreplymode der DLC vom RTR-Sender 
überschrieben wird? Ich habe mir schon den Wolf gegoogelt, einige 
Diplomarbeiten durchgewühlt und das Datenblatt rauf- und runtergelesen. 
Leider nichts gefunden, außer dass man die Kommunikation per Software 
und Interrupts gestalten soll - schöne Lösung, dann bräuchte man das 
perfekte und schnelle Autoreply nicht mehr. Ich will nur nicht, dass der 
RTR-Sender mir den DLC überschreibt. Vielleicht hat einer von Euch das 
Problem schon mal gelöst?

hhoopi

von holger (Gast)


Lesenswert?

>Wie kann ich verhindern

Ohne auch nur weiter auf den anderen Kram einzugehen:
Wenn dein Sender 8 Bytes als Antwort haben will dann schick
ihm doch 8 Bytes. Wo war noch mal das Problem?

>außer dass man die Kommunikation per Software
>und Interrupts gestalten soll - schöne Lösung

Ich schmeiss mich gleich weg;)

von Harald H. (hhoopi)


Lesenswert?

Moin Holger,
Leider ist es nicht so einfach. Der Sender ist ca. 20 Jahre alt, wird 
nicht mehr angefasst und sendet mit der RTR immer DLC=8. Er will als 
Antwort aber nur 7 Bytes, sonst gibts Fehlermeldungen und Abbruch beim 
Verarbeiten.
Die neuen Knoten mit dem AT90CAN müssen also mit irgendeinem DLC vom 
Sender leben können und einen definierten einzustellenden DLC senden. 
Leider habe ich keine Möglichkeit gefunden, im Autoreply den DLC zu 
ändern, der durch die RTR-Anfrage vom Sender im AT90CAN voreingestellt 
wird.
Die alten auslaufenden Siemens-Knoten arbeiteten mit einem 
Siemens-CAN-Tranceiver, der über eine Mikrocontroller gefüttert wurde. 
Dort wurde das DLC-Register nicht durch die RTR-Anfrage verändert. Daher 
gab es das Problem nicht.

Meine Frage daher:
Kann ich verhindern, dass das DLC-Register des empfangenden AT90CAN 
durch den DLC einer RTR-Anfrage überschrieben wird?
hhoopi

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.