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
Ethernet (ENC28J60) und SD Card
10.10.2015, 11:06
Beitrag #1
Ethernet (ENC28J60) und SD Card
Hallo,

ich versuche einen Mega mit dem Ethernet Modul "ENC28J60" und einer SD Card zu betreiben. Leider ohne Erfolg. Einzeln arbeiten die Module problemlos auch mit angepasstem CS.
Hat jemand von euch bereits erfolgreich eine solche eine Kombination erstellt?

Gruss
Jens
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.10.2015, 19:10 (Dieser Beitrag wurde zuletzt bearbeitet: 10.10.2015 19:39 von piepsvo.)
Beitrag #2
RE: Ethernet (ENC28J60) und SD Card
Vielen Dank für Deine Feedback.
Die ganze Umgebung habe ich nochmal mit einem UNO, einem Micro SD Card Adapter und einer ENC28J60 EtherCard nachgebaut. Einzeln kann ich mit den Modulen arbeiten. Sobald aber SD Card und Ethernet verkabelt ist geht kein Ethernet mehr.

Hardware:
- UNO
- Micro SD Card Adapter http://de.aliexpress.com/store/product/S...Id=1263549
- EtherCard (ENC28J60 chip) http://www.ulrichradig.de/home/uploads/i...8j60-1.jpg

Bibliotheken:
- #include <SD.h> (http://www.arduino.cc/en/Reference/SD)
- #include <EtherCard.h> (ENC28J60) (http://jeelabs.net/pub/docs/ethercard/

Source aus Beispielen der Bibiotheken:
SD -> SD Cardinfo (angepasst: const int chipSelect = 4; )
ethercard master -> rbbb_server (angepasst: #define ETH_CS_PIN 8; )

Micro SD Card Adapter Anschlussbelegung:
SD Card -> UNO
MISO -> 12
MOSI -> 11
SCK -> 13
SS (CS) -> 4 (const int chipSelect = 4; )
GND - GND
VCC -> 5V

ENC28J60 Ethernet LAN Network Module Anschlussbelegung:
Ethercard ENC28J60 -> UNO
SO -> 12
SI -> 11
SCK -> 13
CS -> 8 (#define ETH_CS_PIN 8; )
VCC -> 5V
GND -> GND

Source aus Beispiel SD Card (CardInfo): ****************************
/*
SD card test

This example shows how use the utility libraries on which the'
SD library is based in order to get info about your SD card.
Very useful for testing a card when you're not sure whether its working or not.

The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11 on Arduino Uno/Duemilanove/Diecimila
** MISO - pin 12 on Arduino Uno/Duemilanove/Diecimila
** CLK - pin 13 on Arduino Uno/Duemilanove/Diecimila
** CS - depends on your SD card shield or module.
Pin 4 used here for consistency with other Arduino examples


created 28 Mar 2011
by Limor Fried
modified 9 Apr 2012
by Tom Igoe
*/
// include the SD library:
#include <SPI.h>
#include <SD.h>

// set up variables using the SD utility library functions:
Sd2Card card;
SdVolume volume;
SdFile root;

// change this to match your SD shield or module;
// Arduino Ethernet shield: pin 4
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
const int chipSelect = 4;

void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}


Serial.print("\nInitializing SD card...");

// we'll use the initialization code from the utility libraries
// since we're just testing if the card is working!
if (!card.init(SPI_HALF_SPEED, chipSelect)) {
Serial.println("initialization failed. Things to check:");
Serial.println("* is a card inserted?");
Serial.println("* is your wiring correct?");
Serial.println("* did you change the chipSelect pin to match your shield or module?");
return;
} else {
Serial.println("Wiring is correct and a card is present.");
}

// print the type of card
Serial.print("\nCard type: ") ;
switch (card.type()) {
case SD_CARD_TYPE_SD1:
Serial.println("SD1") ;
break;
case SD_CARD_TYPE_SD2:
Serial.println("SD2");
break;
case SD_CARD_TYPE_SDHC:
Serial.println("SDHC") ;
break;
default:
Serial.println("Unknown") ;
}

// Now we will try to open the 'volume'/'partition' - it should be FAT16 or FAT32
if (!volume.init(card)) {
Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
return;
}


// print the type and size of the first FAT-type volume
uint32_t volumesize;
Serial.print("\nVolume type is FAT") ;
Serial.println(volume.fatType(), DEC) ;
Serial.println();

volumesize = volume.blocksPerCluster(); // clusters are collections of blocks
volumesize *= volume.clusterCount(); // we'll have a lot of clusters
volumesize *= 512; // SD card blocks are always 512 bytes
Serial.print("Volume size (bytes): ");
Serial.println(volumesize);
Serial.print("Volume size (Kbytes): ");
volumesize /= 1024;
Serial.println(volumesize);
Serial.print("Volume size (Mbytes): ");
volumesize /= 1024;
Serial.println(volumesize);


Serial.println("\nFiles found on the card (name, date and size in bytes): ");
root.openRoot(volume);

// list all files in the card with date and size
root.ls(LS_R | LS_DATE | LS_SIZE);
}


void loop(void) {

}

Source aus Beispiel ethercard-master (rbbb_server) ****************************
// This is a demo of the RBBB running as webserver with the Ether Card
// 2010-05-28 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

#include <EtherCard.h>
//
#define ETH_CS_PIN 8;
// ethernet interface mac address, must be unique on the LAN
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
static byte myip[] = { 10,10,100,203 };

byte Ethernet::buffer[500];
BufferFiller bfill;

void setup () {
Serial.begin(9600);
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println(F("Failed to access Ethernet controller"));
ether.staticSetup(myip);
}


static word homePage() {
long t = millis() / 1000;
word h = t / 3600;
byte m = (t / 60) % 60;
byte s = t % 60;
bfill = ether.tcpOffset();
bfill.emit_p(PSTR(
"HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\n"
"Pragma: no-cache\r\n"
"\r\n"
"<meta http-equiv='refresh' content='1'/>"
"<title>RBBB server</title>"
"<h1>$D$D:$D$D:$D$D</h1>"),
h/10, h%10, m/10, m%10, s/10, s%10);
return bfill.position();
}

void loop () {
word len = ether.packetReceive();
word pos = ether.packetLoop(len);

if (pos) // check if valid tcp data is received
ether.httpServerReply(homePage()); // send web page data
}


Mit welchen Bibliotheken / Modulen gibt es gute Erfolge?


Gruß
PiepsVO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.10.2015, 20:31
Beitrag #3
RE: Ethernet (ENC28J60) und SD Card
@piepsvo
Es gibt so eine schöne Funktion hier Code formatiert eizufügen, warum wird die nicht genutzt?

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.10.2015, 21:33
Beitrag #4
RE: Ethernet (ENC28J60) und SD Card
Hi,
schätze mal das hier das koordinierte aktivieren der Chip Select Signale mal wieder fehlt. Dazu habe ich bei mir bei der Verwendung von einem ETH-Shield mit SD-Card folgende Routinen eingeführt die ich vor der Benutzung des jeweiligen Parts aufrufe.
Code:
//################# Chip-Select ansteuern #####################  Bitklopfer ##############
void selETH() {     // waehlt den Ethernetcontroller aus
  
digitalWrite(SDselect, HIGH);
digitalWrite(ETHselect, LOW);

}
//####################################
void selSD() {      // waehlt die SD-Karte aus
  
digitalWrite(ETHselect, HIGH);
digitalWrite(SDselect, LOW);

}

//#################################
void selCLK() {      // waehlt die RTC aus bzw. sperrt Ethernet und SD-Karte
  
digitalWrite(SDselect, HIGH);
digitalWrite(ETHselect, HIGH);

}

Natürlich muß man noch die Ports zuordnen und als Ausgang initialisieren.
lgbk

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
11.10.2015, 06:16 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2015 06:18 von piepsvo.)
Beitrag #5
RE: Ethernet (ENC28J60) und SD Card
Doch leider komme ich nicht so weit, weil im Setup das Netzwerkmodul nicht initialisiert wird. Sobald das SD Modul verdrahtet ist, schlägt das ganze fehl.
Code:
//Beipiel des rbbb Server
void setup () {
Serial.begin(9600);
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println(F("Failed to access Ethernet controller"));
ether.staticSetup(myip);
}
Es endet immer mit: "Failed to access Ethernet controller"

(10.10.2015 20:31)hotsystems schrieb:  @piepsvo
Es gibt so eine schöne Funktion hier Code formatiert eizufügen, warum wird die nicht genutzt?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2015, 07:47
Beitrag #6
RE: Ethernet (ENC28J60) und SD Card
(11.10.2015 06:16)piepsvo schrieb:  ...
Es endet immer mit: "Failed to access Ethernet controller"

...ohne ein eigenes Chip Select Management wird sich das auch nicht ändern...Big Grin
Und genau dieses Problem habe ich eben in einem anderen Sketch so behandelt - und da läuft es nun.
lgbk

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Nano und SD Card emjott 3 324 09.09.2016 12:15
Letzter Beitrag: Bitklopfer
  Avr NetIO als Arduino mit Ethernet-Shield amithlon 2 510 18.08.2016 17:42
Letzter Beitrag: amithlon
  SD Card und Stromversorgung/USB Anschluss ARTUSWINGUS 20 968 10.07.2016 10:43
Letzter Beitrag: ARTUSWINGUS
  Probleme mit dem Arduino Ethernet-Shild jalu4601 25 1.338 06.06.2016 16:09
Letzter Beitrag: Bitklopfer
  Ethernet Shield 2 geht nicht Mark79 4 955 19.01.2016 18:01
Letzter Beitrag: Mark79
  Online gehen ohne Ethernet-shield diode1990 0 559 12.12.2015 17:02
Letzter Beitrag: diode1990
  2 mal Ethernet GsibiArOs 11 1.334 02.10.2015 14:48
Letzter Beitrag: hotsystems
Question Arduino Uno R3 + Ethernet Shield + RF Sender Verbrenner 0 737 15.07.2015 21:50
Letzter Beitrag: Verbrenner
  8GB Micro SD auf Ethernet w5100 shield Pit 5 1.172 09.03.2015 22:02
Letzter Beitrag: Bitklopfer
Sad Probleme mit Ethernet Shield und microSD Card S4irence 4 1.266 16.02.2015 23:32
Letzter Beitrag: S4irence

Gehe zu:


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