1

Dependencies:   MODSERIAL USBDevice USBMSD_SD V09_01h

Dependents:   V09_01h

info.txt

Committer:
rs27
Date:
2015-01-03
Revision:
4:0e44fe33977a
Parent:
1:efee40e9d116

File content as of revision 4:0e44fe33977a:

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.