www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN: NEC V850/FX2 und AksenBoard


Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Development Board von NEC (V850/FX2) und einen AksenBoard 
(mit einem SJA1000 Controller).
Dabei verwende ich das Beispielprogramm "CAN-NEC" auf dem NEC (war auf 
der NEC-CD dabei) und "2can-receive" auf dem AksenBoard (auf der 
Aksen-CD).
Ich möchte einfach eine Nachricht (es geht mir dabei erstmal nur um die 
MessageID) vom NEC zum AksenBoard senden.
Ich hoffe es gibt jemanden der sich mit beiden auskennt.
Beim Code vom NEC habe ich folgende MsgID eingestellt:
message.midh = 0x04E0; // Set up Same ID as is defined for CAN0 reception in afcan.h

in bits wäre das also 0000 0100 1110 0000

Leider kommt beim AksenBoard 0x2700 an, in bits: 0010 0111 0000 0000
Nachdem ich das mit verschiedenen MsgIDs ausprobiert habe ist mir 
aufgefallen, dass alle Bits immer um << 3 verschoben ankommen.
Ich habe keine Ahnung woran es liegt. Hat jemand eine Idee?

Mfg

Markus

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

wahrscheinlich werden die Register des SJA1000 nicht korrekt 
ausgewertet.

Im "CAN address 20" befindet sich ID-Bit 0 ab Bit 3 - somit also genau 
um 3 Bit verschoben.

Siehe SJA-Datenblatt Seite 41.

Gruss Otto

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Otto,

erstmal danke für deine Hilfe. Leider bekomme ich es immernoch nicht 
hin. Ich habe folgenden mitgelieferen Code auf dem AksenBoard:
xdata at 0x4110 unsigned char CAN_TRANSMIT_FRAMEINFO;
xdata at 0x4111 unsigned char CAN_TRANSMIT_ID1;
xdata at 0x4112 unsigned char CAN_TRANSMIT_ID2;
xdata at 0x4113 unsigned char CAN_TRANSMIT_ID3;
xdata at 0x4114 unsigned char CAN_TRANSMIT_ID4;

Hat das damit zu tun? Bin total ratlos... Habe schon einiges 
ausprobiert.

Gruß
Markus

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey markus!

Ich habe ebenfalls den v850, jedoch zwei Starterkits. Ich möchte beide 
untereinander kommunizieren lassen.
Ich kann Dir zwar leider nicht zu Deinem Problem helfen, aber vielleicht 
kannst Du mir helfen. Ich krieg das nämlich nicht hin.
Es w#re super, wenn Du dich mal unter jendevi@web.de melden könntest.

Vielen Dank und viele Grüße

Autor: Andreas W. (geier99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

>
> xdata at 0x4110 unsigned char CAN_TRANSMIT_FRAMEINFO;
> xdata at 0x4111 unsigned char CAN_TRANSMIT_ID1;
> xdata at 0x4112 unsigned char CAN_TRANSMIT_ID2;
> xdata at 0x4113 unsigned char CAN_TRANSMIT_ID3;
> xdata at 0x4114 unsigned char CAN_TRANSMIT_ID4;
> 
>
> Hat das damit zu tun? Bin total ratlos... Habe schon einiges
> ausprobiert.

Ich kenne Dein Teil zwar nicht, aber hier werden wohl die 
Register-Adressen vom SJA festgelegt. 0x4100 ist wohl die Basis Adresse. 
Somit greift dann z.B. CAN_TRANSMIT_ID4 mittels externen Speicherzugriff 
auf die SJA-Adresse 20d  zu.

Benutzt Du das Standard oder das Extended Frame Format?

Ich vermute mal, das Du das SFF - Format verwendest.

Somit wären für Dich die Bits ID.28 - ID.18 interessant.
Allerdings liegt das Bit ID.18  auf dem Bit 5 der CAN Adresse 18.

Somit muss Deine MsgID mit 0x20h multipliziert bzw. dividiert werden.

Beispiel von oben:
>message.midh = 0x04E0; // Set up Same ID as is defined for CAN0 reception in 
afcan.h

  0x04E0 / 0x20  = 0x0027

Wie gesagt, ich kenne Dein System nicht.
Aber anscheinend werden dann noch die beiden Bytes getauscht.
(was hier im Beispiel dann die   0x2700 ergibt)

Ich hoffe mal ich konnte etwas Licht ins Dunkel bringen.

Gruss
  Andy

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.