Heute gibt es zwei neue Librarys.
Einen USB-MSC-HOST und die Library um FATFS benutzen zu können.
der USB-MSC-Host läuft entweder auf USB-FS oder USB-HS
(muss per Define eingestellt werden)
die FATFS unterstützt entweder USB oder MMC oder beides gleichzeitig.
(muss im H-File eingestellt werden)
Falls USB+MMC gleichzeitig benutzt wird, hat USB den Pfad “0:/”
und MMC den Pfad “1:/”
Ich habe auch ein Update der USB-HID-HOST nachgezogen,
damit sollten HID und MSC auch gleichzeitig möglich sein.
HID auf USB-FS
MSC auf USB-HS
(das habe ich aber nicht getestet)
Hinweis : bei der MMC-Library scheint es noch einen BUG zu geben,
ich habe eine SD-Karte (1GB) die damit NICHT funktioniert.
zur Info, der USB-HighSpeed Port (CN12) funktioniert bei
mir besser, wenn ich das Disco-Board über ein externes 5V Netzteil
per JP2 versorge. k.A. warum
15 = USB-Host-MSC : f746_usb_host_msc_v100
Ich habe keine MMC dabei , aber funktioniert mit :
16Gb Sandisk Ultra USB3 Stick und 32Gb Sandisk Ultra USB3 Stick.
Beide sind in FAT32 formatiert.
Funktioniert nicht mit :
Alte Dane-Elec 1Gb Stick , ich habe in FAT16 und FAT32 ausprobiert.
Gruß.
Fabrice.
Im User Manual steht “The 2GB (or more) MicroSD card connected to SDMMC1 port of STM32F746NGH6 is supported by the board.” . Vielleicht gehen daher keine Karten unter 2 GB?!
Guten Tag,
erstmal vielen Dank für die Lib!
Ich verwende den STM32F746BG in einem eigenständigen Projekt.
Zum loggen einer Kommunikation mit einem anderen Modul wollte ich eine SD-Karte verwenden.
Als Testkarten stehen mir grad eine 2GB Transcend und eine 32GB Sandisk SDHC-Karte zur Verfügung (beide in FAT32 formatiert).
Das Beschreiben der SD-Karte hat bei mir anfangs ebenfalls nicht funktioniert.
Also habe ich die Pull-Up`s ausgelötet, leider ohne Erfolg.
Beim Debuggen habe ich festgestellt, dass der im Beispiel angegebene Dateiname einen Fehler verursacht. Anscheinend ist Pfad+Dateiname+Endung zu lang für einen SFN.
Nenne ich die Datei z.B. 0:/M1.txt kann die Datei erstellt werden.
Vorkehrungen:
in ffconf.h:
_USE_LFN 1
Da durch die Verwendung vom LFN die Funktionen
WCHAR ff_convert(WCHAR chr, UINT dir);
WCHAR ff_wtoupper(WCHAR chr);
für die Umwandlung von Unicode eingebunden werden, aber in der Lib nicht vorhanden sind, müssen die Funktionen noch geschrieben werden.
Hierzu habe ich am Ende der Datei ff.c
WCHAR ff_convert(WCHAR wch, UINT dir)
{
if(wch<0×80) return wch;
return 0;
}
WCHAR ff_wtoupper(WCHAR wch)
{
if(wch=’a’ && wch <= 'z')
{
wch &=~0×20;
}
return wch;
}
return 0;
}
implementiert.
Jetzt Funktioniert das Beschreiben beider SD-Karten mit LFN.