1
Dependencies: MODSERIAL USBDevice USBMSD_SD V09_01h
Diff: info.txt
- Revision:
- 1:efee40e9d116
diff -r 44b579c983e0 -r efee40e9d116 info.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/info.txt Sat Jan 03 15:27:00 2015 +0000 @@ -0,0 +1,72 @@ +Das Zusammenspiel zwischen dem USB Bus, der SD Karte und der Seriellen Schnittstelle +hat nicht richtig funktioniert. + +Sobald die SD Karte mit MODSERIAL verwendet wird, geht die SD Karte nicht mehr. Mit +der Umstellung auf BufferedSerial hat die SD Karte wieder funktioniert + +SDFileSystem Revison 17 März 2014, screamer + +Ein weiteres Problem ist das Auslesen der Zeit für eine Datei. Wird die Zeit ausgelesen +hängt sich die SD Karte auf. Das Auslesen der Zeit ist somit im mon.cpp auskommentiert. + +SD Formatieren >> FAT16 und FAT32 gehen mit dem SD File System. Mit USB geht nur FAT16 und Standart Formatierung +sind dann 32k Sektoren. + + +//----------------------------------------------------------------------------- +// monitor Aufruf dir +// +// weiter Infos siehe auch +// http://elm-chan.org/fsw/ff/00index_e.html +// +// Start node to be scanned (also used as work area) +FRESULT FATFileSystem::list_files (const char *name) +{ + FRESULT res; + FILINFO fno; + FATFS_DIR dir; + int i; + char *fn; + +// some code + printf("\nscan_files Line 152"); +#if _USE_LFN + static char lfn[_MAX_LFN + 1]; + fno.lfname = lfn; + fno.lfsize = sizeof lfn; +#endif + + printf("\nscan_files Line 159"); + + res = f_opendir(&dir, name); // Open the directory + printf("\nscan_files Line 162"); + if (res == FR_OK) { + i = strlen(name); + for (;;) { + res = f_readdir(&dir, &fno); // Read a directory item + if (res != FR_OK || fno.fname[0] == 0) break; // Break on error or end of dir + if (fno.fname[0] == '.') continue; // Ignore dot entry +#if _USE_LFN + fn = *fno.lfname ? fno.lfname : fno.fname; +#else + fn = fno.fname; +#endif + if (fno.fattrib & AM_DIR) { // It is a directory + // sprintf(&name[i], "/%s", fn); + // res = scan_files(name); + // if (res != FR_OK) break; + // path[i] = 0; + } else { // It is a file. + printf("%s/%s\n", name, fn); + } + } + } + return res; + +---------------------------------------------------------------------------------------------------------------------------- +28.10.2014 +Nach eine Reset und danach kommen ab und zu Zeichen auf der seriellen Schnittselle an. Derzeit ist unklar woher die kommen. +Das hat sich geklärt. Die Zeichen kommen durch mangelhafte RS2323 Treiber. Nach dem Tausch des Treibers war das Problem behoben. + +Die verwendeten Treiber hatten ein Problem mit der Erzeugung der +- 15V. Die Spannung ist in der Beschaltung zeitweise eingebrochen +und hat damit ein Übersprechen auf die Empfangsleitung erzeugt. Unklar ist jedoch, warum sich diese Treiberbausteine so verhalten.