mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C167CR CAN- BUS


Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!!

habe ein problem mit dem CAN- Bus des C167CR

möchte daten von einem Teilnehmer zum anderen schicken, dafür habe ich 2 
Phytec- Kitcon Boards, zwischen welchen ich über den CAN-Bus etwas 
senden möchte.
hat schon jemand ein ähnliches projekt gemacht?

bei mir funktioniert anscheinend der interrupt zum empfangen nicht!

hat vl. jemand ein bsp programm welches einfach eine Test Nachricht über 
den CAN-Bus schickt und diese auf der anderen seite im Serial window 
anzeigt.

Sitz schon seit 4 Tagen dabei und finde den fehler einfach nicht.
Wär euch sehr dankbar, wenn mir jemand helfen könnte, bin schon total 
verzweifelt

Grüße Alex

Autor: Robert Teufel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Alex,

hast Du schon mal die ApNote von Infineon angeschaut: "Interrupt 
Register behavior of the CAN module in our 16-bit Microcontrollers."
Schon etwas betagt aber das ist der C167CR ja auch
Weiss nicht ob dieser dynamische Link funktioniert?
http://de.sitestat.com/infineon/infineon/s?infineo...

Robert

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex!

Was sich bei C167-Controllern anbietet ist DAVE von Infineon. In dem 
Programm gibst Du an, welche Komponenten Du nutzen willst. DAVE erzeugt 
Dir dann ein C-Rahmenprogramm, in dem Du Deine Änderungen vornimmst.

Lohnt sich bei CAN auf jeden Fall. Auch wenn Du nur nachsehen willst, 
was Du falsch machst.

Geht denn nur der Interrupt nicht, oder ist es mehr?

Grüße,
Rainer

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

habe die Konfiguration mittels DAVE durchgeführt, jedoch erreichen 
anscheinend die Nachrichten den anderen CAN- Teilnehmer nicht, ich 
denke, dass es am Empfangs Interrupt liegt. In DAve hab ich jedoch den 
CAN INT gesetzt.
hab keine ahnung warum es nicht funktioniert!

Kann ich euch unter umständen mal den Source schicken

Grüß alex

Autor: Reinhard B. (brainstorm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Wenn ich mich nicht irre, musst du nicht nur den Empfangs-INT 
aktivieren, sondern diesen auch noch einer der 8 Interrupt-Nodes des 
CAN-Moduls zuweisen. Zumindest beim XC16x ist es glaube ich so.

mfg
Reinhard

Autor: Microman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex,

damit Du CAN-Messages empfangen kannst mußt Du im CAN-Controller eines 
er 15 Messagebuffer für den Empfang konfigurieren, das machst du indem 
Du in das
Message Control Register (MCRn wobei n für eines der 15 Messagebuffer 
steht) in das 2 Bit Feld RXIE (Receive Interrupt Enable) eine 0b01 
einträgst. In diesem Zusammenhang darf man auch nicht die 
CAN-Mask-Register vergessen, damit die CAN-Nachricht nicht schon von der 
Hardware weggefiltert wird und gar nicht erst zu den Messagebuffern 
kommt.
Hier noch ein Beispiel aus dem aktuellen Manual des C167CR von der 
Infineon Seite www.infineon.com . Dort ist jetzt auch ein Beispiel für 
die Konfiguration eine Objektes enthalten, hier ein Auszug :

MCR (Message object is idle, i.e. waiting for a frame to be received)
1514   1312  1110    98     76     54   32   10
01      01    01     01     10     01   10   01
RMTPND TXRQ  MSGLST NEWDAT MSGVAL TXIE RXIE INTPND

Ich gehe jetzt mal davon aus das deine Bitrate auf beiden Modulen 
korrekt sind. Denk auch an die Abschlußwiderstände die der CAN-Bus 
braucht. An jeden Ende ein Widerstand mit 120 Ohm. Mir einem 
funktioniert er auch mit kleinen Längen noch, aber ohne ist er nicht 
funktionsfähig.

Viel Erfolg, vielleicht konnte ich helfen.

Microman

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.