www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik XC164CM_CAN-Remoteframe in SW beantworten

Autor: Gerd (Gast)
Datum: 14.11.2007 13:18

Hallo,
ich beschäftige mich mit dem TwinCAN auf dem XC164CM.
Ich benutze 5 Message Objekte und Knoten A und B im LoopBackMode.
Ich kann Datenframes zwischen den Konten senden und empfangen.
Ebenso ein Remoteframe, der mit einem Message Objekt direkt in HW (ohne
Interrupt) beantwortet wird.

Nun möchte ich mehrere Remoteframes unter SW (mit RX-und TX-Interrupt)
von EINEM Message Objekt beantworten (um nicht so viele Message Objekte
dafür zu verschwenden).
Das automatische Aussenden durch die HW soll duch das Setzen von
'CPUUPD' verhindert werden, gemäss Datenblatt.
Das Transmit-Message-Objekt (Empfänger für den Remoteframe) ist nach
Reset mit Daten 'vorbelegt'. Im RX-Interrupt werden 'andere' Daten in
das Transmit-Message-Objekt geladen und durch löschen von CPUUPD
gesendet. Im TX-Interrupt, also wenn das Datenframe ausgesendet wurde,
wird CPUUPD wieder gesetzt.

Problem:
Ein Remoteframe wird empfangen. Der RX-Interrupt wird ausgelöst. Aber
obwohl CPUUPD definitiv gesetzt ist(ich lasse es mir im INT ausgeben),
empfängt der andere Knoten das Datenframe mit den 'vorbelegten' Daten.
Ein zweiter Remoteframe bewirkt ein Datenfarme mit den 'anderen' Daten.
Ein TX-Interrupt wird definitiv ausgelöst=>eine Datenframeaussendung hat
also stattgefunden.

Wenn die 'anderen' Daten im Interrupt nicht geladen werden (Code
auskommentiert) und das Datenframe nicht ausgesendet wird, gleiches
Ergebnis, mit dem Unterschied, dass bei zweimaligen Remoteframe zweimal
die 'vorbelegten' Daten im anderen Knoten empfangen werden. Ein
TX-Interrupt wird zweimal sicher erzeugt.

Frage:
Warum wird ein Datenframe ausgesendet, obwohl CPUUPD gesetzt ist? Was
habe ich falsch gemacht?
Wie sind die Erfahrungen mit dem Aussenden von Datenframes per
SW-Unterstützung bei Remoteframes?

Gruss
Gerd
Autor: Gerd (Gast)
Datum: 16.11.2007 13:23

Hallo,
ich habe nichts falsch gemacht.
Im errata für XC164CM bei infineaon gibts ein workaround.
Gruss
Gerd

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel





Hinweis: der Originalbeitrag ist mehr als 6 Monate alt.

webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net