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
  MEGA 2560 mit 5V 12A Netzteil betreiben möglich? Nafetz 18 477 11.11.2016 05:59
Letzter Beitrag: peterfido
  3 Arduino Mega, 2 Sender 1 Empfänger claudius 22 619 18.10.2016 17:32
Letzter Beitrag: Pardini
  Schrittmotor ruckelt beim Start und im laufenden Betrieb - Arduino+Motor Shield grt35a 3 263 21.09.2016 06:56
Letzter Beitrag: Bitklopfer
  Steuerung eines Schrittmotor und eines Lüfters auf einem Shield phischmi 7 275 18.08.2016 20:58
Letzter Beitrag: phischmi
  Avr NetIO als Arduino mit Ethernet-Shield amithlon 2 514 18.08.2016 17:42
Letzter Beitrag: amithlon
  Welches WiFi-Shield? alpenpower 1 337 14.07.2016 11:19
Letzter Beitrag: alpenpower
  Arduino 2560 p900 1 499 28.03.2016 14:04
Letzter Beitrag: hotsystems
  Motor Shield wird Heiß erwin 8 1.119 24.03.2016 11:29
Letzter Beitrag: hotsystems
  Per Keypad Shield zwischen zwei Programmen schalten Rob-LE 9 920 09.03.2016 14:27
Letzter Beitrag: iks77
  Multi functional Expansion Board Sensor Shield Astropikus 5 781 03.03.2016 22:32
Letzter Beitrag: hotsystems

Gehe zu:


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