Go Down

Topic: SD Library "Datalogger" Beispiel funktioniert nicht (Read 382 times) previous topic - next topic

my_xy_projekt

Die Karte kann nicht auf Anhieb initialisiert werden. Das war bei mir bisher immer so wenn ich einen neuen Sketch geladen habe. Damit die Karte erkannt wird muss ich sie einmal rein und raus machen und dann resetten, was man in der Ausgabe sieht. Muss das so?
Nein.
Hast Du noch irgendwas an dem Aufbau dran?
Kannst Du die Karte mal mit dem SD Formatter im overwrite-Modus formatieren?
https://www.sdcard.org/downloads/formatter/

Ich kann mir auch vorstellen, das das card-Modul nen Schuß hat.

proasis

#16
Feb 23, 2021, 11:12 am Last Edit: Feb 23, 2021, 11:13 am by proasis
Danke für den Hinweis, das kommt einer Lösung ja schon einen Schritt näher. Ich habe die Karte (und auch noch eine andere, zum testen) mit dem verlinkten Tool formatiert und dann erneut das Datalogger example laufen lassen. Jetzt habe ich sofort error und es wird nichts mehr auf die karte geschrieben:
Code: [Select]
11:05:23.753 -> Initializing SD card...card initialized.
11:05:24.408 -> error opening datalog.txt
11:05:25.903 -> 358,349,348
11:05:26.510 -> error opening datalog.txt
11:05:27.116 -> error opening datalog.txt
11:05:27.678 -> error opening datalog.txt
11:05:28.287 -> error opening datalog.txt
11:05:28.897 -> error opening datalog.txt
11:05:29.503 -> error opening datalog.txt
11:05:30.111 -> error opening datalog.txt
11:05:30.719 -> error opening datalog.txt
11:05:31.328 -> error opening datalog.txt
11:05:31.935 -> error opening datalog.txt
11:05:32.546 -> error opening datalog.txt
11:05:33.157 -> error opening datalog.txt
11:05:33.719 -> error opening datalog.txt
11:05:34.331 -> error opening datalog.txt
11:05:34.939 -> error opening datalog.txt
11:05:35.546 -> error opening datalog.txt
11:05:36.154 -> error opening datalog.txt
11:05:36.765 -> error opening datalog.txt
11:05:37.328 -> error opening datalog.txt

CardInfo direkt darauf folgend geladen gibt folgendes aus:
Code: [Select]
11:08:11.288 ->
11:08:11.288 -> Initializing SD card...initialization failed. Things to check:
11:08:13.436 -> * is a card inserted?
11:08:13.483 -> * is your wiring correct?
11:08:13.530 -> * did you change the chipSelect pin to match your shield or module?
11:08:30.110 ->
11:08:30.110 -> Initializing SD card...Wiring is correct and a card is present.
11:08:30.906 ->
11:08:30.906 -> Card type:         SDHC
11:08:30.906 -> Clusters:          122624
11:08:30.953 -> Blocks x Cluster:  64
11:08:30.953 -> Total Blocks:      7847936
11:08:31.000 ->
11:08:31.000 -> Volume type is:    FAT32
11:08:31.049 -> Volume size (Kb):  3923968
11:08:31.049 -> Volume size (Mb):  3832
11:08:31.095 -> Volume size (Gb):  3.74
11:08:31.095 ->
11:08:31.095 -> Files found on the card (name, date and size in bytes):
11:08:31.190 -> SYSTEM~1/     2021-02-23 11:04:36
11:08:31.237 ->   INDEXE~1      2021-02-23 11:04:36 76

Initialisieren der Karte ist wieder nur durch raus und rein stecken + reset möglich. Eine Datei wird nun gar nicht mehr angelegt (nichts anderes heißt der error ja auch). Hat jemand eine Idee wie das mit dem Formatieren der Karte zusammen hängt?

Ist ein neuer Card Reader fällig?

Edit: Am arduino hängt nichts außer dem Card Reader. Alles ist so verdrahtet wie in meinem Post oben beschrieben.

my_xy_projekt

#17
Feb 23, 2021, 11:37 am Last Edit: Feb 23, 2021, 11:54 am by my_xy_projekt
Hat jemand eine Idee wie das mit dem Formatieren der Karte zusammen hängt?

Ist ein neuer Card Reader fällig?
Wie und ob das zusammenhängt muss man sehen.
Installier mal bitte SDFat.lib https://github.com/greiman/SdFat
In deren Beispielen gibt es ein "formatting"
einmal ausführen und den datalogger nochmal laufen lassen.

Wenn das nicht geht, ist der Reader mit hoher Wahrscheinlichkeit das Problem

proasis

Quote
Installier mal bitte nach der SDFat.lib
In deren Beispielen gibt es ein "formatting"
"formatting" gibt folgendes aus:
Code: [Select]
11:51:03.030 ->
11:51:03.030 -> default formatting
11:51:03.077 ->    1    2    3    4    5    6    7    8    9   10
11:51:03.122 ->    2    4    6    8   10   12   14   16   18   20
11:51:03.169 ->    3    6    9   12   15   18   21   24   27   30
11:51:03.265 ->    4    8   12   16   20   24   28   32   36   40
11:51:03.311 ->    5   10   15   20   25   30   35   40   45   50
11:51:03.359 ->    6   12   18   24   30   36   42   48   54   60
11:51:03.407 ->    7   14   21   28   35   42   49   56   63   70
11:51:03.456 ->    8   16   24   32   40   48   56   64   72   80
11:51:03.501 ->    9   18   27   36   45   54   63   72   81   90
11:51:03.547 ->   10   20   30   40   50   60   70   80   90  100
11:51:03.594 ->
11:51:03.594 -> showpos
11:51:03.641 ->   +1   +2   +3   +4   +5   +6   +7   +8   +9  +10
11:51:03.688 ->   +2   +4   +6   +8  +10  +12  +14  +16  +18  +20
11:51:03.734 ->   +3   +6   +9  +12  +15  +18  +21  +24  +27  +30
11:51:03.782 ->   +4   +8  +12  +16  +20  +24  +28  +32  +36  +40
11:51:03.828 ->   +5  +10  +15  +20  +25  +30  +35  +40  +45  +50
11:51:03.875 ->   +6  +12  +18  +24  +30  +36  +42  +48  +54  +60
11:51:03.967 ->   +7  +14  +21  +28  +35  +42  +49  +56  +63  +70
11:51:04.013 ->   +8  +16  +24  +32  +40  +48  +56  +64  +72  +80
11:51:04.060 ->   +9  +18  +27  +36  +45  +54  +63  +72  +81  +90
11:51:04.108 ->  +10  +20  +30  +40  +50  +60  +70  +80  +90 +100
11:51:04.154 ->
11:51:04.154 -> hex left showbase
11:51:04.154 -> 0x1  0x2  0x3  0x4  0x5  0x6  0x7  0x8  0x9  0xa
11:51:04.249 -> 0x2  0x4  0x6  0x8  0xa  0xc  0xe  0x10 0x12 0x14
11:51:04.295 -> 0x3  0x6  0x9  0xc  0xf  0x12 0x15 0x18 0x1b 0x1e
11:51:04.343 -> 0x4  0x8  0xc  0x10 0x14 0x18 0x1c 0x20 0x24 0x28
11:51:04.389 -> 0x5  0xa  0xf  0x14 0x19 0x1e 0x23 0x28 0x2d 0x32
11:51:04.435 -> 0x6  0xc  0x12 0x18 0x1e 0x24 0x2a 0x30 0x36 0x3c
11:51:04.482 -> 0x7  0xe  0x15 0x1c 0x23 0x2a 0x31 0x38 0x3f 0x46
11:51:04.529 -> 0x8  0x10 0x18 0x20 0x28 0x30 0x38 0x40 0x48 0x50
11:51:04.575 -> 0x9  0x12 0x1b 0x24 0x2d 0x36 0x3f 0x48 0x51 0x5a
11:51:04.668 -> 0xa  0x14 0x1e 0x28 0x32 0x3c 0x46 0x50 0x5a 0x64
11:51:04.715 ->
11:51:04.715 -> uppercase hex internal showbase fill('0')
11:51:04.762 -> 0X01 0X02 0X03 0X04 0X05 0X06 0X07 0X08 0X09 0X0A
11:51:04.808 -> 0X02 0X04 0X06 0X08 0X0A 0X0C 0X0E 0X10 0X12 0X14
11:51:04.856 -> 0X03 0X06 0X09 0X0C 0X0F 0X12 0X15 0X18 0X1B 0X1E
11:51:04.902 -> 0X04 0X08 0X0C 0X10 0X14 0X18 0X1C 0X20 0X24 0X28
11:51:04.950 -> 0X05 0X0A 0X0F 0X14 0X19 0X1E 0X23 0X28 0X2D 0X32
11:51:04.996 -> 0X06 0X0C 0X12 0X18 0X1E 0X24 0X2A 0X30 0X36 0X3C
11:51:05.043 -> 0X07 0X0E 0X15 0X1C 0X23 0X2A 0X31 0X38 0X3F 0X46
11:51:05.138 -> 0X08 0X10 0X18 0X20 0X28 0X30 0X38 0X40 0X48 0X50
11:51:05.185 -> 0X09 0X12 0X1B 0X24 0X2D 0X36 0X3F 0X48 0X51 0X5A
11:51:05.232 -> 0X0A 0X14 0X1E 0X28 0X32 0X3C 0X46 0X50 0X5A 0X64
11:51:05.278 ->
11:51:05.278 -> showDate example
11:51:05.278 -> 07/04/2011
11:51:05.326 -> 12/25/2011


Beim anschließenden durchlauf des Datalogger example tritt das gleiche Fehlerbild auf wie zuvor:
Code: [Select]
11:53:25.022 -> Initializing SD card...Card failed, or not present
11:53:34.769 -> Initializing SD card...card initialized.
11:53:36.176 -> error opening datalog.txt
11:53:37.676 -> 391,379,374
11:53:38.284 -> error opening datalog.txt
11:53:38.896 -> error opening datalog.txt
11:53:39.504 -> error opening datalog.txt
11:53:40.110 -> error opening datalog.txt
11:53:40.672 -> error opening datalog.txt
11:53:41.284 -> error opening datalog.txt
11:53:41.895 -> error opening datalog.txt
11:53:42.506 -> error opening datalog.txt
11:53:43.111 -> error opening datalog.txt
11:53:43.674 -> error opening datalog.txt
11:53:44.283 -> error opening datalog.txt
11:53:44.893 -> error opening datalog.txt

Initialisierung der Karte ist wieder nur durch ein und ausstecken der Karte + reset möglich, danach nur error und es wird keine txt Datei angelegt.

Dann werde ich wohl mal einen neuen card reader bestellen. Kann jemand ein gutes Modul empfehlen? 

my_xy_projekt

Kann jemand ein gutes Modul empfehlen?
Da ich nur das Kombimodul mit dem Netzwerkanschluß nutze, kann ich da leider nicht helfen ...

michael_x

Vor Jahren gab es mal Diskussionen über SD-Module, insbesondere deren (nicht funktionierende) LevelShifter. Manche haben an den Signalpins nur Pullup-Widerstände auf 3.3V und bräuchten Signale, die statt 0V/5V eher 0V/HighImpedance schalteten. (Wenn ich mich recht entsinne)

Statt Karte raus/rein würde evtl. auch helfen, das Modul (komplett oder teilweise?) spannungslos zu schalten.

Eigentlich ist außer den 3.3V (und den levelshiftern?) nichts Komplexes auf so einem Modul drauf. Die Intelligenz steckt komplett in der SD-Card. Daher hilft dir das Raus/Rein.
 
Dass dein Datalogger Beispiel Dauerbetrieb-getestet ist, sollte man schon hoffen können.
Für ein Software (RAM)-Problem läuft es eigentlich schon zu gut.

Aber das gilt eigentlich auch für die aktuelle Hardware Diskussion :)

uxomm

Ich habe vor einiger Zeit einen Fünferpack dieser SD-Kartenmodule von AZ-Delivery gekauft. Es sind genau die gleichen, wie in diesem Thread beschrieben. 3 davon habe ich verbaut, 2 warten noch auf ihren Einsatz.

Ich habe das mal nachgebaut.
Neben dem SD-Kartenmodul kommen noch ein Arduino UNO R3 und eine Micro-SD-Karte (16 GB, "Verbatim premium") zum Einsatz.


Sketch ist der aus den Beispielen zur SD-Library: Datalogger*.
Und wie der TO auch, habe ich CS auf Pin 10 geändert. Damit es möglichst so ist wie beim TO.

Wenn ich das Programm laufen lasse, dann werden in etwas weniger als 4 Minuten etwa 10 000 "Datensätze" geschrieben und der Inhalt der Karte sieht dann am PC so aus:


Es funktioniert also ohne Probleme.

-----------------------
*) dass da mit String gearbeitet wird finde ich zwar nicht ganz optimal aber ...
Always decouple electronic circuitry.

proasis

Quote
Wenn ich das Programm laufen lasse, dann werden in etwas weniger als 4 Minuten etwa 10 000 "Datensätze" geschrieben und der Inhalt der Karte sieht dann am PC so aus:
Interessant, das ist exakt mein Aufbau. Gleiche Komponenten (bis auf die SD Karte), gleiche Verkabelung. Gut zu wissen dass es grundsätzlich so funktionieren muss. Ich habe jetzt mal einen zweiten UNO und ein neues SD Lesemodul bestellt. Ich berichte wie es damit läuft. 

Wie ist bei dir das Verhalten beim initialisieren der SD Karte? Musst du auch rein und raus stecken damit sie erkannt wird?

my_xy_projekt

Ich habe jetzt mal einen zweiten UNO und ein neues SD Lesemodul bestellt.
In solchen Fällen empfiehlt sich grundsätzlich mal einen anderen Lieferer auszuprobieren.

Quote
Musst du auch rein und raus stecken damit sie erkannt wird?
Das muss niemand.
Wäre ja kontraproduktiv.
Stell Dir vor, der Watchdog schläg an oder Du löst, warum auch immer, via Fernzugriff einen Neustart aus... ;)

uxomm

Wie ist bei dir das Verhalten beim initialisieren der SD Karte? Musst du auch rein und raus stecken damit sie erkannt wird?
Nein, die SD-Karte wird sofort erkannt. Keine Manipulation der SD-Karte nötig.
Also z.B. sofort nach den Upload oder Reset des Programmes zeigt der serielle Monitor:
Code: [Select]
Initializing SD card...
card initialized.
353,351,358
338,335,342
323,320,326
312,309,316
307,305,312
305,304,312
...

Die Zahlenreihen sind die Messergebnisse ("Datensätze").

Höchstwarhscheinlich gibt es bei dir einen Hardwarefehler. Zum Beispiel defektes SD-Modul, Wackelkontakt bei Verbindungskabeln, SD-Kontaten ...

Oder vielleicht "mag" die SD-Karte nicht. Das hatte ich erst selten, ist aber auch schon vorgekommen, dass eine individuelle SD-Karten nicht mit einem Arduino "zusammenarbeiten" wollte. Manchmal hilft dann neu Formatieren mit einem (schon erwähnten) SD-Formatting-Tool. Aber ist auch schon vorgekommen, dass diese Methode keine Abhilfe brachte.

Ich versuche immer mehrere "Teile" vorliegen zu haben, also mehrere SD-Karten, mehrere SD-Module, mehrere  Mikrocontroller-Boards und mehrere Kabel. Kann ja immer sein, dass eins der "Dinge" nicht "mag" :)
Always decouple electronic circuitry.

proasis

Quote
In solchen Fällen empfiehlt sich grundsätzlich mal einen anderen Lieferer auszuprobieren.
Es wird jetzt wieder ein originaler Arduino UNO R3, aber der card reader kommt von adafruit. Hab keine Lust noch mal eine Woche mit Fehlersuche zu vergeuden. Wie gesagt, ich werde hier berichten und den thread dann gegebenenfalls als gelöst markieren. Bis hier hin erstmal vielen Dank an alle die sich bei der Fehlersuche beteiligt haben!


Quote
Das muss niemand.
Wäre ja kontraproduktiv.
Stell Dir vor, der Watchdog schläg an oder Du löst, warum auch immer, via Fernzugriff einen Neustart aus... ;)
Stimmt du hast recht, wäre bescheuert . . .

Quote
Höchstwarhscheinlich gibt es bei dir einen Hardwarefehler. Zum Beispiel defektes SD-Modul, Wackelkontakt bei Verbindungskabeln, SD-Kontaten ...

Oder vielleicht "mag" die SD-Karte nicht. Das hatte ich erst selten, ist aber auch schon vorgekommen, dass eine individuelle SD-Karten nicht mit einem Arduino "zusammenarbeiten" wollte. Manchmal hilft dann neu Formatieren mit einem (schon erwähnten) SD-Formatting-Tool. Aber ist auch schon vorgekommen, dass diese Methode keine Abhilfe brachte.
Wie gesagt, neue Hardware ist auf dem Weg. Danke dass du meinen Aufbau nachgebaut hast. Gut zu sehen dass es grundsätzlich eigentlich funktionieren muss.
Habe schon mehrere Karten ausprobiert, denke das ist nicht das Problem.


Go Up