C167CR CAN- BUS

Gast #422887
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
Gast #422951
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?infineon.pdf.Guest.Home.Products.Product_Categories.Microcontrollers.Application_Notes___16_bit_Microcontrollers.p2902410_Interupt_register_CAN.pdf&ns_type=pdf&ns_url=[http://www.infineon.com/upload/Document/AIM/Microcontroller/16bit/p2902410_Interupt_register_CAN.pdf

Robert
Gast #422957
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
Gast #423127
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
Gast #431266
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren