dsPIC33 ECAN Sendeprobleme

Gast #1240957
Lesenswert?
• ▲
▼
Hallo,

ich kämpfe gerade etwas mit dem ECAN-Modul des dsPIC33F...

Als Grundlage dient die AN1249 von Microchip (hier Beschreibung und 
Code)
http://ww1.microchip.com/downloads/en/AppNotes/01249A.pdf
http://ww1.microchip.com/downloads/en/AppNotes/AN1249%20Source%20Code.zip

Die AN beschreibt die Konfiguration für 4 ECAN-Buffer: 1x Sendepuffer 
(buffer-0) und 3x Empfangspuffer (buffer-1..3).


Für meine Anwendung möchte ich mehrere Sendepuffer haben, also wurde die 
Anzahl der Buffer auf 8 geändert:
'ecan.h'
1
#define ECAN1_MSG_BUF_LENGTH  8

und 'ecan.c' Funktion 'initECAN'
1
C1FCTRLbits.DMABS = 0b010; // 8 CAN Messages to be buffered in DMA RAM
2
...
3
_TXEN4 = 1; // ECAN1 Buffer 4 is a Tx Buffer
4
_TXEN5 = 1; // ECAN1 Buffer 5 is a Tx Buffer
5
_TXEN6 = 1; // ECAN1 Buffer 6 is a Tx Buffer
6
_TXEN7 = 1; // ECAN1 Buffer 7 is a Tx Buffer
(Die Prioritäten für die Sendepuffer seien mal vernachlässigt)

Jetzt tritt nun folgender Effekt auf:
- Sende ich eine Botschaft mit Buffer-0 ('ursprünglicher' Tx-Buffer) 
dann funktioniert die Geschichte wunderbar

- Sende ich jedoch mit einem meiner 'neuen' Buffer senden, also Buf4..7, 
dann funktioniert dies NICHT zuverlässig.
Es wird nur etwa jede 5te Botschaft richtig abgesendet - bei den 4 
fehlerhaften stimmt zwar die Länge und die Nutzdaten, jedoch wird ein 
standard Identifier (11-bit) mit 0x00 0x00 0x00 0x00 verschickt und 
NICHT die eigentliche Msg-ID der Nachricht.

So, nun die eigentliche Frage;
Ist das ein generelles Problem, oder habe ich 'nur' eine wichtige 
Konfiguration vergessen?

Was mich an der Sache so stört ist, dass es mit der ID ja ab und zu 
funktioniert, dann wieder nicht - jedoch DLC und Nutzdaten IMMER passen.

Gruß
#1251903
Lesenswert?
• ▲
▼
Hallo Manuel,
nein, Lösung habe ich leider keine gefunden.
Als workaround verwende ich halt nur einen Tx Puffer (0) und mache meine 
Sende-queue unsinnigerweise wieder im RAM als FiFo Ringpuffer...

Das Errata-Sheet kannte ich noch gar nicht, danke der Info! Scheint ja 
echt ein Hardware-Bug zu sein.

Gruß
Christian

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.