INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Seeedstudio CAN-Bus Shield auf Mega 2560 R3
30.09.2013, 06:34
Beitrag #1
Seeedstudio CAN-Bus Shield auf Mega 2560 R3
Hallo,

ich habe das Problem, dass ich das CAN-Bus Shield auf dem Arduini Mega nicht zum Laufen bekomme...

Hier ein Tutorial mit Beispiel vom Hersteller. Ich verwende das example "send", welches zyklisch einen Frame auf die Leitung sendet.
Seeedstudio Wiki

Sobald ich das ganze auf den Mega spiele und die Kummunikation über die serielle Schnittstelle öffne, kommt die Fehlermeldung "CAN Init fail!".

Nun hab ich mich schon durch die mcp_can.h durchgearbeitet und herausgefunden, dass es an der SPI-Kommunikation zwischen Board und Shield liegen soll.
Weiterere Recherche hat gezeigt, dass die SPI-Pins beim Mega, im Vergleich zum Uno, "ausgelagert" sind (SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) Quelle). Da das Tutorial für das Uno geschrieben ist, hab ich natürlich schon versucht, die 4 Pins "umzulegen". Der Versuch, das komplette Shield mit Leitungen (also nicht aufs Board gesteckt) zu nutzen, ist ebenfalls gescheitert...

Wenn ich das Shield aufs Arduiono Uno stecke, funktioniert die CAN-Verbindung absolut fehlerfrei. "CAN Init OK!" und ich kann mir die Nachrichten auf dem Bus ansehen.

Wie bekomme ich dieses Shield auf dem Mega zum laufen??

Vielen Dank für die Hilfe!

MfG demo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.09.2013, 19:40 (Dieser Beitrag wurde zuletzt bearbeitet: 30.09.2013 19:45 von rkuehle.)
Beitrag #2
RE: Seeedstudio CAN-Bus Shield auf Mega 2560 R3
Hallo demokrit,

gehe mal bitte in die mcp_can_dfs.h und ändere
Code:
#define SPICS 10
in
Code:
#define SPICS 53
Oder du schreibst das #define direkt in den Sketch-Code.
Wenn du dann noch deine "Umverkabelung" machst sollte es laufen.

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.10.2013, 00:57
Beitrag #3
RE: Seeedstudio CAN-Bus Shield auf Mega 2560 R3
Hallo zusammen,
also ich habe hier auch einen ADk 2560 R3 und habe zwar kein CAN Shield drauf sondern das Ethernet Shield das ja auch den SPI Bus benutzt. Von daher müßten die Anschlüße passen....habe mir das Schaltbild von dem CAN Shield mal angesehen.
AHJA....beim UNO wird der Interrupt 0 benutzt....beim Mega geht die gleiche Leitung aber auf den Interrupt 4....vielleicht sucht ihr mal an dieser Ecke das was nicht passt nachdem Ricardo wohl schon eine unstimmigkeit beim Chip Select entdeckt hat....wobei diese Leitung gleich adressiert wird meine ich...
Gruß
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.10.2013, 06:51
Beitrag #4
RE: Seeedstudio CAN-Bus Shield auf Mega 2560 R3
Hey,

sorry wegen der späten Rückmeldung... 03.10 etc Sleepy

Also, ich hab das Ganze jetzt noch mal mit der Änderung von rkuehle ausprobiert. Leider ohne Erfolg.

Neben der Zeilenänderung (#define SPICS 53) habe ich folgende Verkabelung verwendet:
Mega2560 - CAN-Shield
50 - 12
51 - 11
52 - 13
53 - 10

Dass die Extra-Kabel benötigt werden, wird (wenn auch nur sehr sperrlich) hier im FAQ beschrieben.

Weitere Ideen? Wink

MfG demo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.10.2013, 07:36
Beitrag #5
RE: Seeedstudio CAN-Bus Shield auf Mega 2560 R3
Moin demokrit,

die Verkabelung ist so richtig.
eine vielleicht blöde Frage: du hast die Pins 10-13 aber auch so "verbogen" dass sie nicht im Mega stecken?

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.10.2013, 08:19
Beitrag #6
RE: Seeedstudio CAN-Bus Shield auf Mega 2560 R3
(07.10.2013 07:36)rkuehle schrieb:  Moin demokrit,

die Verkabelung ist so richtig.
eine vielleicht blöde Frage: du hast die Pins 10-13 aber auch so "verbogen" dass sie nicht im Mega stecken?

Grüße Ricardo

Danke für deine Antwort!
Cool ich muss zugeben, das habe ich gerade vergessen. Bei meinen vorherigen Versuchen hab ich das ganze Shield mal auch mal nur über Kabel verbunden und die Pins frei gelassen.

Lange Rede - kurzer Sinn: Auch, wenn ich die Pins zur Seite biege und die Jumperkabel stecke, funktioniert das ganze noch nicht...

MfG demo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.10.2013, 12:37 (Dieser Beitrag wurde zuletzt bearbeitet: 07.10.2013 13:21 von rkuehle.)
Beitrag #7
RE: Seeedstudio CAN-Bus Shield auf Mega 2560 R3
Hast du noch irgend etwas anderes über SPI am laufen?
Mit welcher Baudrate startest du den CAN BUS?
Ich habe gelesen, dass den CAN BUS selbst (CANL/CANL) mit 120 Ohm abgeschlossen werden soll.
Kannst du vllt. mal ein Code-Snippet posten?

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.10.2013, 05:38
Beitrag #8
RE: Seeedstudio CAN-Bus Shield auf Mega 2560 R3
(07.10.2013 12:37)rkuehle schrieb:  Hast du noch irgend etwas anderes über SPI am laufen?
Mit welcher Baudrate startest du den CAN BUS?
Ich habe gelesen, dass den CAN BUS selbst (CANL/CANL) mit 120 Ohm abgeschlossen werden soll.
Kannst du vllt. mal ein Code-Snippet posten?

Grüße Ricardo

Hey,
also ich betreibe nur dieses Shield allein auf dem Board. Gestartet wird das Ganze mit 500k Baudrate.
Das mit den Abschlusswiderständen ist zwar korrekt, darf aber nichts mit der Initialisierung zu tun haben. Abgesehen davon ist der Ausgang des Shields bereits mit 60Ohm abgeschlossen. Das reicht bei kurzen Leitungslängen. Wenn ich alles auf dem Uno (nicht Mega) betreibe, funktioniert es problemlos. Ich kann die CAN-Nachrichten auf dem Oszilloskop nachvollziehen und mein CANalyzer von vector sieht jede Nachricht fehlerfrei auf dem Bus.

Hier das Codesnipped (das ist eine sende-demo des Shieldherstellers):
Code:
// demo: CAN-BUS Shield, send data
#include <mcp_can.h>
#include <SPI.h>

void setup()
{
  Serial.begin(115200);
  // init can bus, baudrate: 500k
  if(CAN.begin(CAN_500KBPS) ==CAN_OK) Serial.print("can init ok!!\r\n");
  else Serial.print("Can init fail!!\r\n");
}

unsigned char stmp[8] = {0, 1, 2, 3, 4, 5, 6, 7};
void loop()
{
  // send data:  id = 0x00, standrad flame, data len = 8, stmp: data buf
  CAN.sendMsgBuf(0x00, 0, 8, stmp);  
  delay(100);
}

Danke für die Hilfe!

MfG demo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Seeedstudio Grove OLED Display (0.96") ansteuerung ohne Basis Shield möglich? Grooxy 5 284 22.05.2018 00:09
Letzter Beitrag: avoid
  [Arduino Mega 2560]Will als ISP nicht arbeiten; IDE macht Fehler? ManniP 24 1.725 20.04.2018 09:35
Letzter Beitrag: ManniP
  USB Schnittstelle am Mega Franz54 7 505 27.03.2018 21:02
Letzter Beitrag: Franz54
  Ethernet-Shield Ardusil 9 741 09.03.2018 18:09
Letzter Beitrag: hotsystems
  Mega und Ethernet W5100 gehen PWM Pin verloren? sepp01 5 401 26.02.2018 09:04
Letzter Beitrag: hotsystems
  Arduino Mega mit TFT Shield Diskusguppy 6 842 16.02.2018 10:35
Letzter Beitrag: Tommy56
  SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield Bikandajyo 31 3.154 15.01.2018 15:11
Letzter Beitrag: Bikandajyo
  2.8" TFT Touchscreen ST7783 mit Arduino Mega arduinoma 7 767 22.12.2017 09:11
Letzter Beitrag: Chopp
  Welches GSM Shield Kaufen ?? huber5093 7 646 19.12.2017 07:53
Letzter Beitrag: Chopp
  nano, micro oder? für LAN Shield sepp01 10 1.204 12.11.2017 11:30
Letzter Beitrag: sepp01

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste