Go Down

Topic: problema SDuFAT arduino mega 2560 (Read 689 times) previous topic - next topic

Buongiorno, sto provando a far funzionare il modulo microSD della libelium
http://www.cooking-hacks.com/index.php/microsd-2gb-module-for-arduino.html

ho scaricato la libreria indicata per arduino mega e ho seguito le indicazioni per il collegamento.
Il problema è però in fase di compilazione: mi da i seguenti errori:

Code: [Select]
In file included from C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/SDuFAT.h:34,
                 from SD_uFAT_basic.pde:122:
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/mmc.h:52: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/mmc.h:53: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/mmc.h:54: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/mmc.h:129: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/mmc.h:146: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/mmc.h:147: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/mmc.h:163: error: 'byte' does not name a type
In file included from C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/SDuFAT.h:35,
                 from SD_uFAT_basic.pde:122:
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:8: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:9: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:10: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:11: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:19: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:22: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:24: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:27: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:34: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:35: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:36: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:40: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:41: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:48: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:49: error: 'byte' does not name a type
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:60: error: 'byte' was not declared in this scope
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/microfat.h:60: error: 'buffer' was not declared in this scope
In file included from SD_uFAT_basic.pde:122:
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/SDuFAT.h:117: error: 'byte' has not been declared
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/SDuFAT.h:120: error: 'byte' has not been declared
C:\Users\Gio\Documents\Arduino\libraries\SDuFAT/SDuFAT.h:127: error: 'byte' has not been declared


La versione di Arduino è la 1.0.5

leo72

Vedo l'estensione .pde nei messaggi di errore. Significa che quel software è stato scritto per la vecchia versione dell'IDE, la 002x.
In teoria basterebbe aprire i file della lib e cercare #include "WProgram.h" e sostituirli con #include "Arduino.h"
Poi però va visto se la lib o lo sketch necessitano di altre modifiche.

ok, ho fatto le sostituzioni che mi hai detto!

ora in compilazione mi da questo errore:
Code: [Select]
C:\Users\Gio\Documents\Arduino\libraries\SDuFATmod\SDuFAT.cpp: In member function 'int SDuFAT::cat(const char*)':
C:\Users\Gio\Documents\Arduino\libraries\SDuFATmod\SDuFAT.cpp:273: error: 'BYTE' was not declared in this scope
C:\Users\Gio\Documents\Arduino\libraries\SDuFATmod\SDuFAT.cpp: In member function 'int SDuFAT::append(const char*)':
C:\Users\Gio\Documents\Arduino\libraries\SDuFATmod\SDuFAT.cpp:447: error: 'BYTE' was not declared in this scope

leo72

Allora la lib non è compatibile con l'IDE 1.0 e richiede ulteriori modifiche.
Non puoi usare altre lib, ad esempio la SD ufficiale o altre per gestire la uSD?

PaoloP

Considerando che nella documentazione (http://www.cooking-hacks.com/skin/frontend/default/cooking/pdf/arduino_mega_Sd.pdf) si cita l'IDE 0.15 e che nel sito c'è scritto "Library developed by David Cuartielles (Arduino team)", ti consiglio di scaricarti l'IDE 1.0.5 e utilizzare la libreria SD ufficiale, che presumo sia più aggiornata della SDuFAT.

OK ho scaricato l'IDE 1.0.5 e se faccio il test con arduino UNO funziona bene!!!

Se però collego il modulo all'arduino MEGA non funziona.
Ho seguito le note su http://arduino.cc/en/Reference/SDCardNotes

help please...

leo72

Hai letto questo relativamente al tuo prodotto?
http://www.cooking-hacks.com/skin/frontend/default/cooking/pdf/arduino_mega_Sd.pdf

PaoloP

#7
Aug 29, 2013, 10:36 am Last Edit: Aug 29, 2013, 10:38 am by PaoloP Reason: 1
Perchè l'Arduino Mega ha la distribuzione dei pin diversa e quel modulo non funzionerà.
Sulla UNO il bus SPI è mappato sui pin 11, 12 e 13, più il 10 o  il 4 come Slave Select.
Sulla MEGA sono i pin 50, 51 e 52. Mentre lo SS è sul pin 53.
Quindi ti devi armare di cavetti flessibili e rifare i collegamenti.

Cerca i pin siglati MISO, MOSI e SCKL (sono in blu) --> http://forum.arduino.cc/index.php?topic=151646.0

P.S. Se il modulo si connette tramite l'ICSP non hai problemi su nessuna scheda (compresa la DUE e la Leonardo) eccetto per il pin SS che dovrai cambiare ogni volta.

Ho trovato il problema:
sulla guida http://arduino.cc/en/Reference/SDCardNotes si dice di collegare il modulo SD così:
PIN CORRECTION (da arduino UNO a Mega)
11>50
12>51
13>52
4 OR 10>53


INVECE ho trovato qui:
http://forum.arduino.cc/index.php?topic=165170.0
oppure qui:
http://arduino.cc/en/Reference/SPI

The Arduino SPI pins are:
SPI   Uno   Mega
SS   10   53
MOSI   11   51
MISO   12   50
SCK   13   52

così funziona!!!

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy