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
  WS2801 - Arduino2560 Mega - Glediator - Ausgabeproblem Royal-mit-Käse 0 115 13.06.2017 14:40
Letzter Beitrag: Royal-mit-Käse
  CAN-Shield iVm 3,3V Arduino Pro Mini Clubsport 12 554 13.04.2017 22:56
Letzter Beitrag: Bitklopfer
  hochladen auf den mega 2560 r3 schlägt fehl Frank1234 2 259 14.02.2017 16:17
Letzter Beitrag: Frank1234
  SM5100B GSM shield huber5093 2 255 01.02.2017 04:19
Letzter Beitrag: bergfrei
  CNC Shield V3 + Nema 17 relay 2 831 26.12.2016 15:01
Letzter Beitrag: Ralla1
  Grundsatz Frage: Ethernet Shield 2 + SQL-Anbindung Beercules 7 503 16.12.2016 13:40
Letzter Beitrag: ardu_arne
  MEGA 2560 mit 5V 12A Netzteil betreiben möglich? Nafetz 18 1.134 11.11.2016 05:59
Letzter Beitrag: peterfido
  3 Arduino Mega, 2 Sender 1 Empfänger claudius 22 1.193 18.10.2016 17:32
Letzter Beitrag: Pardini
  Schrittmotor ruckelt beim Start und im laufenden Betrieb - Arduino+Motor Shield grt35a 3 843 21.09.2016 06:56
Letzter Beitrag: Bitklopfer
  Steuerung eines Schrittmotor und eines Lüfters auf einem Shield phischmi 7 552 18.08.2016 20:58
Letzter Beitrag: phischmi

Gehe zu:


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