Forum: Mikrocontroller und Digitale Elektronik XC167 - Can, Remote request bearbeiten vor dem versenden.


von NurEinGast (Gast)


Lesenswert?

Hallo zusammen,

ich könnte Eure Unterstützung gebrauchen.
Mein Problem :

Ich arbeite mit dem CAN Bus auf einem XC167 Prozessor.
Can Senden, Can empfangen - alles gut.

Nun möchte ich aber RTR ( Remote Request ) Objekte, die von anderen Can 
Teilnehmern angefordert werden, erst bearbeiten bevor die Antwort 
verschickt wird. Sprich - ich möchte mitbekommen wenn ein RTR Request 
reinkommt, dann das Sendobjekt mit meinen Daten füllen, und dann erst 
die Antwort versenden.

Der Rx-Interrupt vom Sendeobjekt scheint erst zu kommen nachdem die 
Antwort bereits verschickt ist. Kann ich zwar nicht glauben, erscheint 
mir aber so.

Ich bin sicher, ich habe mich im Registerdickicht des Twincan 
Controllers verheddert und habe irgendwas übersehen.

Hat jemand mit XC167/Can Erfahrung eine Idee oder einen spezielle Trick 
wie ich das am besten einstelle ?

Danke für jede Idee.
NurEinGast

von foo (Gast)


Lesenswert?

Hmm, vielleicht:
If bitfield CPUUPD is set to ‘10’, an incoming remote frame with 
matching identifier is
kept in mind via setting TXRQ internally, but is not immediately 
answered by a
corresponding data frame. The message data, stored in register 
MSGDRn0/MSGDRn4,
can be updated as long as CPUUPD is hold on ‘10’. As soon as CPUUPD is 
reset to ‘01’,
the respective data frame is transmitted by the associated CAN node 
controller.


Und wenn nicht :-)
http://www.microcontrol-blog.net/2013/03/finger-weg-von-can-remote-frames/

von NurEinGast (Gast)


Lesenswert?

Das das ist doch schon mal eine geniale Antwort.
Danke. Werde ich probieren.

Wieso hab ich das nicht in den Datenblättern gefunden :-)

> Und wenn nicht :-)
> http://www.microcontrol-blog.net/2013/03/finger-we...

Ich würde fürchterlich gerne die Finger von Remote Frames weglassen.
Aber ich muss meinen CanOpen Slave an einen uralten CanOpen Master 
anpassen, der halt noch NodeGuarding macht.
Der CanOpen Slave läuft heute mit Heartbeat - alles ist gut.
Aber jetzt muss er halt mit einem alten Master sprechen können, an dem 
ich nichts ändern kann.

Danke für den Hinweis

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.