FAT16-Problem

  • 1
  • 2
  • 3
  • 5
  • 6
  • 7
  • Page 2 of 7
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: FAT16-Problem

 · 
Posted: 03.01.2019 - 08:40  ·  #9
Guten Morgen allerseits,

habe jetzt 3 SD-Karten getestet: 4 GByte SanDisk, 16 GByte Müller Hausmarke und 4 GByte SanDisk µSD mit Adapter. Bei allen 3 das gleiche: mit 5.09.27 funktioniert es, mit 5.09.52 bekomme ich 0 als Größe zurück. Wie oben geschrieben, kann ich das ignorieren und trotzdem drauf schreiben, aber ich würde dann doch gerne wissen wieviel Platz noch frei ist ;)

Der Code ist immer der gleiche, nur die Version wird gewechselt:
Code

Var SDFree : LongWord;
SDFree:=F16_GetDiskFree;
                If SDFree<1024
                  then                                // Speicherkarte voll
                    SDReady:=false;
                    SDStatus:='F';
                    DispData[3]:='SD-C    Error3  ';
                  else
                    DispData[3]:='SD-C    '+LongToStr(SDFree div 550:5:'0')+'Hr'+' ';
                    //DispData[3]:=LongToStr(SDFree:16:'0');
                  EndIf;


Gruss
Harry

[EDIT]Was neues dazu: Wenn ich trotz Größe 0 auf die Karte schreiben lasse, wird ein Verzeichnis angelegt und auch die Datei darin, aber ich kann die Datei nicht lesen --> defekt. Teilweise kann ich nicht mal in das Verzeichnis wechseln.

[EDIT, die 2.]zurück zu 5.09.27: es funktioniert wieder alles ......

[Edit, die 3.]Falls das von Interesse ist: die SD hängt am Port E eines XMega256A3U. 64 MHz, mit 32 MHz ebenfalls getestet --> keine Änderung. Spannung 3.28V. Kondensatoren am SD-Sockel natürlich vorhanden (10µ & 100n).


@Thorsten: immer noch ein schönes Display :)
Merlin
Administrator
Avatar
Gender:
Age: 24
Posts: 1409
Registered: 03 / 2005
Subject:

Re: FAT16-Problem

 · 
Posted: 03.01.2019 - 10:56  ·  #10
Harry, do you have the asm files generated by the two versions? If so, a file comparison might highlight the differences and point to the problem.

If you send me two files I don't mind doing the comparison for you.
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: FAT16-Problem

 · 
Posted: 03.01.2019 - 11:27  ·  #11
Quote by Harry

...[EDIT]Was neues dazu: Wenn ich trotz Größe 0 auf die Karte schreiben lasse, wird ein Verzeichnis angelegt und auch die Datei darin, aber ich kann die Datei nicht lesen --> defekt. Teilweise kann ich nicht mal in das Verzeichnis wechseln.
...


Hallo Harry,

ist der DISK-INIT sauber durchgelaufen?
Checkdisk?

Beim booten und einstecken der Karte durchlaufe ich :

1. F16_DiskInit;
2. F16_DiskReset;
3. F16_CheckDisk
4. Und dann ziehe ich mir die Größen.

Auszug:
Code
...
sdAktive();   // Timer für SD Anzeige LCD setzen
  bMMCok:= F16_DiskInit; // always the very fist step
  if bMMCok then
    DebugOut('MMC init ok!');
  else
    DebugOut('MMC init fail!');
  endif;
   mDelay(100);
WDTrig; // WD Triggern wenn eingeschaltet

if bMMCok then
  bMMCok:= F16_DiskReset;                             // SD Disk Reset
  if bMMCok then                                      // und SD-Parameter lesen
    DebugOut('MMC reset ok!');
  else
    DebugOut('MMC reset fail!');
  endif;
endif;
   mDelay(100);
WDTrig; // WD Trriggern wenn eingeschaltet

if bMMCok then
  sdAktive();   // Timer für SD Anzeige LCD setzen
  if F16_CheckDisk then                             // ist ein gültiges FAT16 vorhanden,
    SizeMBsd := F16_GetDiskSize;                    // dann die Daten holen
    DebugOut('Grösse ' + LongToStr(SizeMBsd) + ' kbyte');
    SizeMBsdFree := F16_GetDiskFree;
    DebugOut('Frei  ' + LongToStr(SizeMBsdFree) + ' kbyte');
    SizeMBsdUsed := F16_GetDiskUsed;
    DebugOut('Benutzt ' + LongToStr(SizeMBsdUsed) + ' kbyte');
  else
    DebugOut('CheckDisk fail!');
  endif;
endif;
  mDelay(100);
WDTrig; // WD Triggern wenn eingeschaltet
...


Ich prüfe nur 1 mal am Tag den freien Speicher, das mache ich nicht vor jedem schreiben.

Ich meine auch die mDelay(100) waren damals wichtig, beim Init. Ohne diese gab es bei manchen Karten Probleme.

Und irgendwas wurde doch vor ein paar Monaten mal am F16 geändert hmmm...

5.9.25 (procedure F16_FlushBufSec;)

Ich meine mich irgendwo hier im Forum an ein Problem zu erinnern, im Relase steht aber nichts genaues.

Quote
@Thorsten: immer noch ein schönes Display :)

Die blauen gefallen mir noch besser, aber ich habe diese noch für mein Testgerät behalten :-)

Thorsten
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: FAT16-Problem

 · 
Posted: 03.01.2019 - 13:33  ·  #12
Hallo Merlin, hallo Thorsten,

ich teste das eben noch mit dem F16_CheckDisk und sende dann Merlin die asm-Files.

Ich hatte bisher immer nur
1. F16_DiskInit;
2. F16_DiskReset;
3. F16_GetDiskFree;
4. F16_CreateDir;
5. F16_ChangeDir;
6. F16_FileAssign;
7. F16_FileRewrite;
drin. Meine Fehlerausgabe erfolgte bisher nach jedem Schritt und sprang dann nach GetDiskFree an.

Danach probiere ich es noch mit einer ganz anderen Schaltung, die ich auch grad hier habe.

Gruss
Harry

Code

  FAT16          = SPI_E, PortE, 4, iData;
  F16_MMCspeed   = standard;                { standard, slow, fast             }
  F16_FileHandles= 1;
  F16_DirLevels  = 1;
  F16_StrLen     = 100;


[Edit]Mit F16_CheckDisk und einer Pause geht's auch nicht. Teste grad die andere Schaltung. Merlin hab ich die asm-Files geschickt.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: FAT16-Problem

 · 
Posted: 03.01.2019 - 17:53  ·  #13
Bei der anderen Schaltung funktioniert es mit der Version 5.09.52 ..... einziger Unterschied der 2 Schaltungen (was die SD-Karte betrifft): hier hängt die SD-Karte an Port D.
Merlin hat massive Änderungen bei FAT16 zwischen Version 5.09.27 und 5.09.52 festgestellt und konnte das Problem leider nicht lokalisieren.

@Merlin: darf ich dir nochmal 2 asm schicken von 5.09.27 und 5.09.28 (ab da geht es nicht mehr)?

Gruss
Harry
Merlin
Administrator
Avatar
Gender:
Age: 24
Posts: 1409
Registered: 03 / 2005
Subject:

Re: FAT16-Problem

 · 
Posted: 03.01.2019 - 18:34  ·  #14
Hi Harry.

Yes, you can send, but also could you send the PORTD and PORTE versions with 5.09.52. I assume that is the only difference. But I would also look at alternate pin functionality for PORTD and PORTE, because it may be that something entirely different may be causing pins to behave unexpectedly. It could even be the dsc file. Which XMEGA are you using?

I will look at the PORTD/PORTE differences first.

Edit
Actually, Harry, could you send me the dsc files for 5.09.27 and 5.09.28 as well? I might see something there (it will be the dsc file corresponding to the Device statement in your main file.
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: FAT16-Problem

 · 
Posted: 03.01.2019 - 19:01  ·  #15
Harry,

wenn Du den Hardware-Treiber nutzt, stelle doch mal zum test auf Software um.
Wahrscheinlich wird es dann laufen ;)

Thorsten
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: FAT16-Problem

 · 
Posted: 04.01.2019 - 09:15  ·  #16
Guten Morgen zusammen,

ich habe jetzt den Quellcode so weit wie möglich reduziert und mit den Versionen 5.09.27, ...28 und ...52 compiliert und geflasht. Es hat sich nichts geändert: nur mit der ...27 wird der freie Platz auf der SD-Karte angezeigt, bei den anderen Versionen wird 0 zurück gegeben.
Alle Dateien inkl. Quellcode und den jeweiligen DSC-Files sind nun bei Merlin.

Gruss
Harry
  • 1
  • 2
  • 3
  • 5
  • 6
  • 7
  • Page 2 of 7
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   135   149 · Page-Gen-Time: 0.069735s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI