PIC24H vermischt CAN-IDs von Tx-Puffer

Gast #2432298
Lesenswert?
• ▲
▼
Hallo,

ich hab ein seltsames Problem mit einem PIC24HJ64GP506:
Ich habe die ersten beiden Message-Puffer als Transmit (Tx) mit 
29-Bit-Identifier konfiguriert.
Die CAN-ID des TxBuf[0] ist 0x11111111.
Die CAN-ID des TxBuf[1] ist 0x02222222.
Ich versende nur TxBuf[1] zyklisch.

Meine Gegenstelle empfängt zwei Messages mit den Daten von TxBuf[1] mit 
folgenden CAN-IDs:
0x02222222 (korrekt)
0x11122222 -> Mischmasch aus CAN-ID von TxBuf[0] and TxBuf[1].

Nach einem Tag Fehlersuche sieht es für mich so aus, als ob sich der 
CAN-Controller beim Versenden von TxBuf[1] manchmal fälschlicherweiser 
das erste Wort von TxBuf[0] holt. Dort steht die SID drinn. Daher 
bekomme ich dann eine CAN-ID, die aus der SID von TxBuf[0], und der EID 
und den Daten von TxBuf[1] besteht.

Mir ist es sogar gelungen dieses Problem mit dem Microchip-Beispiel-Code 
aus AN1249 nachzustellen (mußte natürlich eine 2.CAN-TX-Nachricht 
einbauen). Der Code im Anhang.

Hat jemand sowas schon mal gesehen?
Angehängte Dateien:
Gast #2433393
Lesenswert?
• ▲
▼
hier ein Zitat aus dem Errata zum PIC24HJ64GP506:

>> 10. Module: ECAN
>> If multiple ECAN transmit buffers are enabled
>> (multiple TXREQ or TXEN bits are set to ‘1’
>> simultaneously), then the message transmissions
>> from the enabled buffers may interfere with one
>> another. As a result, incorrect ID and data
>> transmissions will occur intermittently.
>> Work around
>> Enable only Buffer 0 for transmission at any given
>> time. In the user application, this can be ensured
>> by checking that all other TXREQn and TXENn
>> bits are clear, before setting the TXREQn bit or
>> TXENn to Buffer 0.

Also entweder ein anderer PIC nehmen oder nur TXBuf[0] verwenden.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.