Forum Rule: Always post complete source code & details to reproduce any issue!
Page 4 of 13 FirstFirst ... 2 3 4 5 6 ... LastLast
Results 76 to 100 of 303

Thread: USBHost_t36 USB Mass Storage Driver Experiments

  1. #76
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    @WMXZ

    Cool. Making good progress as Kurt said. Pretty much everything I have tested here is working. Only Kurt's 1gb cruzer isn't working. Only think I haven't tried is a HDD - have to find one of my old ones to see if it works

  2. #77
    @WMXZ, @mjs513

    I do have a Github account but I have never used it. I think it is time I set it up and used it. The MSC.zip file that WMXZ does have all of the latest changes I have. Just need to eliminate the obsolete uSDFS directory in MSC.zip.

    @Kurte

    Thanks for pointing me in the right direction withe msGetmaxLun() issue. I knew I was not doing something right. A lot of information I read about this said that getting the max lun's can give strange results. I'll be gone for a week in Jesup Georgia (our sister plant) but will work on implementing the changes to MSC when I can while there. Kinda curious if the Targus Multi SD card reader will show more than 1 LUN.

  3. #78
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781

    On Github soon ...

    Here is today MSC.zip from mjs513 with the uSDFS_Files directory removed.

    I didn't build with it yet - but will link first post here … actually found I could remove old zip and link in this one to OP ..

    USBHost_t36 updates working with this : https://github.com/KurtE/USBHost_t36...WIP2-Bluetooth
    Attached Files Attached Files
    Last edited by defragster; 05-14-2019 at 06:40 PM.

  4. #79
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Using Post #78 zip and github : ...\libraries\uSDFS\examples\uSDFS_test\uSDFS_test .ino
    Compiled and built for T$ - using SD card as #1_SDHC the card works. Moving that card to #2_USB in a USB adapter - get TONS of spew that ends like this:
    Code:
     Full debug output from T_3.6 noted below : uSDFS.txt

    Code:
    // …
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
       <dir>  System Volume Information
    17173152  SDTEST4.WAV
           0  SomeFile.txt
     8894873  workshop.pdf
    16787550  SDTEST1.WAV
    16425698  SDTEST2.WAV
    13617358  SDTEST3.WAV
       <dir>  Ascii
       <dir>  Binary
    
    Test completed.
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 20004000
    periodictable = 20004000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    So it see the files then goes into an odd state were the #1 interface ended with a blink, the #2 ends with LED ON?

    And the T$ is in an odd state - it won't take an upload without a button press - or placed into bootloader before?

    Using TyCommander from SublimeText editor:
    upload@5794870-Teensy Uploading to board '5794870-Teensy' (Teensy 4.0)
    upload@5794870-Teensy Triggering board reboot
    upload@5794870-Teensy SetCommState() failed on '\\.\COM25': The semaphore timeout period has expired.
    Putting this code and same card on a T_3.6 [ FrankB Teensy64 ] it is similar and asking for fresh upload turns off LED and the T_3.6 disappears >> Full text attached above:
    Code:
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
       <dir>  System Volume Information
    17173152  SDTEST4.WAV
           0  SomeFile.txt
     8894873  workshop.pdf
    16787550  SDTEST1.WAV
    16425698  SDTEST2.WAV
    13617358  SDTEST3.WAV
       <dir>  Ascii
       <dir>  Binary
    
    Test completed.
    sizeof Device = 36
    sizeof Pipe = 96
    sizeof Transfer = 64
    power up USBHS PHY
     reset waited 5
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 1FFF4000
    periodictable = 1FFF4000
    Using TyCommander from SublimeText editor:
    Code:
           upload@2272100-Teensy  Uploading to board '2272100-Teensy' (Teensy 3.6)
           upload@2272100-Teensy  Triggering board reboot
           upload@2272100-Teensy  Reboot didn't work, press button manually
           upload@2272100-Teensy  Board '2272100-Teensy' has disappeared
    And like the T$ - on the T_3.6 same code on #1 SDHC leaves it running with LED blink on same card:
    Code:
    Test uSDFS
    1:/
    
    Change drive
    
    Create a new subdirectories.
    
    Create a new file /Ascii/HELLO13.TXT.
    Write some text lines. (Hello world!)
    Close the file.
    
    Open same file /Ascii/HELLO13.TXT.
    Get the file content.
    Hello world!
    Second Line
    Third Line
    Fourth Line
    Habe keine Phantasie
    Close the file.
    
    open binary file
    write file
    close file
    Binary test done
    
    Open root directory.
    Directory listing...
       <dir>  System Volume Information
    17173152  SDTEST4.WAV
           0  SomeFile.txt
     8894873  workshop.pdf
    16787550  SDTEST1.WAV
    16425698  SDTEST2.WAV
    13617358  SDTEST3.WAV
       <dir>  Ascii
       <dir>  Binary
    
    Test completed.
    Last edited by defragster; 05-14-2019 at 05:58 AM.

  5. #80
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220

    Does it work or not?

    OK,
    I have following observation
    8 GB Transcend formatted exFAT (with Win10)
    use program logger_RAWWrite from uSDFS/examples

    case 1: BUFFSIZE 8*1024 -> program blocks
    case 2: BUFFSIZE 2*1024 -> program runs fine
    case 3: BUFFSIZE 4*1024 -> program blocks

    same with 128 GB Transcend (fresh out of box, never used before, Edit: was formatted FAT32)

    not sure where to look

    program did run fine with uSD USB adapter and BUFFSIZE 8*1024

    edit: BUFFSIZE 8*1024 equiv. 32 kB
    Last edited by WMXZ; 05-14-2019 at 08:00 AM.

  6. #81
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    Here is a typical hang
    Code:
    Test logger_RawWrite
    2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 20014000
    periodictable = 20014000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 10 02 00 00 00 40 64 85 00 10 00 11 01 02 03 01 
        VendorID = 8564, ProductID = 1000, Version = 1100
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: JetFlash
    enumeration:
    Product: Mass Storage Device
    enumeration:
    Serial Number: 17Q880DIDAVC35MP
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 00 80 96 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 00 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 01 02 00 02 00 
        Endpoint = 1 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 82 02 00 02 00 
        Endpoint = 2 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    msController claim this=20013780
    Descriptor 4 = INTERFACE
    msController claim this=20013780
    09 04 00 00 02 08 06 50 00 07 05 01 02 00 02 00 07 05 82 02 00 02 00 
    numendpoint=2
    endpointIn=82
    endpointOut=1
    packet size in (msController) = 512
    packet size out (msController) = 512
    polling intervalIn = 0
    polling intervalOut = 0
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 02 00 00 00 00 00 00 00 80 00 06 1B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 02 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 03 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 03 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 04 00 00 00 24 00 00 00 80 00 06 12 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 36
    00 80 06 02 1F 73 6D 69 4A 65 74 46 6C 61 73 68 54 72 61 6E 73 63 65 6E 64 20 38 47 42 20 20 20 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 04 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 05 00 00 00 08 00 00 00 80 00 0A 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 8
    00 E1 3F FF 00 00 02 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 05 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 06 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 06 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 07 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 07 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 08 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 08 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 09 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 20 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    EB 76 90 45 58 46 41 54 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 09 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0B 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 80 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    83 09 54 00 52 00 41 00 4E 00 53 00 43 00 45 00 4E 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0D 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    Free Disk Size -1 clusters
    Cluster Size 64 sectors
    Sector Size 512 bytes
    
    Change drive
    X_00001.dat
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0F 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 80 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    83 09 54 00 52 00 41 00 4E 00 53 00 43 00 45 00 4E 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 10 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 10 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 11 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 81 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 DA E7 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 11 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 12 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 12 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 13 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 82 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 01 00 0B BB 70 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 F0 03 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 13 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 14 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 14 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 15 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 83 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 31 00 34 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 15 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 16 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 16 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 17 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 84 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 59 2B 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 17 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 18 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 18 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 19 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 85 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 01 00 0B FB 6E 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 C0 0B 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 19 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1B 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 86 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 33 00 30 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1D 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 87 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 44 52 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1F 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 88 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 03 00 0B 3B 6D 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 0C 29 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 20 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 20 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 21 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 89 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 34 00 36 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 21 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 22 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 22 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 23 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8A 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 82 B1 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 23 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 24 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 24 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 25 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8B 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 03 00 0B 5B 70 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 AC 38 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 25 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 26 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 26 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 27 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8C 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 36 00 32 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 27 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 28 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 28 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 29 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8D 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 45 CE 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 29 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2B 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8E 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 03 00 0B 9B 6E 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 4C 48 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2D 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8F 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 37 00 38 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2F 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 90 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 03 EE 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 30 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 30 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 31 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 91 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 03 00 0B BB 71 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 EC 57 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 31 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 32 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 32 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 33 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 92 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 39 00 34 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 33 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 34 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 34 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 35 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 93 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 D0 8F 20 00 00 00 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 35 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    stat FR_OK 0
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 36 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 36 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 37 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 80 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    83 09 54 00 52 00 41 00 4E 00 53 00 43 00 45 00 4E 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 37 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 38 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 38 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 39 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 81 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 DA E7 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 39 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3B 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 82 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 01 00 0B BB 70 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 F0 03 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3D 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 83 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 31 00 34 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3F 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 84 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 59 2B 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 40 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 40 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 41 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 85 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 01 00 0B FB 6E 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 C0 0B 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 41 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 42 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 42 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 43 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 86 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 33 00 30 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 43 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 44 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 44 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 45 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 87 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 44 52 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 45 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 46 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 46 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 47 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 88 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 03 00 0B 3B 6D 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 0C 29 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 47 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 48 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 48 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 49 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 89 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 34 00 36 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 49 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4B 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8A 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 82 B1 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4D 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8B 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 03 00 0B 5B 70 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 AC 38 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4F 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8C 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 36 00 32 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 50 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 50 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 51 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8D 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 45 CE 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 51 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 52 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 52 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 53 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8E 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 03 00 0B 9B 6E 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 4C 48 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 53 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 54 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 54 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 55 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 8F 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 37 00 38 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 55 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 56 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 56 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 57 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 90 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 03 EE 20 00 00 00 00 00 21 50 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 57 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 58 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 58 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 59 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 91 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C0 03 00 0B BB 71 00 00 00 00 7D 00 00 00 00 00 00 00 00 00 EC 57 00 00 00 00 7D 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 59 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 5A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 5A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 5B 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 92 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    C1 00 5A 00 5F 00 30 00 30 00 30 00 39 00 34 00 2E 00 64 00 61 00 74 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 5B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 5C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 5C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 5D 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 93 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    85 02 D0 8F 20 00 00 00 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 5D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
     opened FR_OK 0
    
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 5E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 5E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 5F 00 00 00 00 02 00 00 00 00 0A 2A 00 00 00 30 93 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    85 02 D0 8F 20 00 00 00 00 00 21 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 5F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 60 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 60 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 61 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 61 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 62 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 62 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 63 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 01 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 63 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 64 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 64 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 65 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 02 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 65 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 66 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 66 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 67 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 03 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 67 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 68 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 68 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 69 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 04 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 69 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 6A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 6A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 6B 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 05 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 6B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 6C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 6C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 6D 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 30 06 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 6D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 6E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 6E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 6F 00 00 00 00 80 00 00 00 00 0A 2A 00 00 19 18 80 00 00 40 00 00 00 00 00 00 00
    It is not always with the same "sequence number" (here 6F) in other occasion it was 97

  7. #82
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    @WMXZ - Are you testing T_3.6 or T$? In my post 79 both seem the same (generally) - which was generally the case when we … KurtE and msj513 … did UsbHost_Bt and ili9488.

    This card in USB adapter is SanDisk Ultra 32GB.

    I just started 'default' logger_RW sketch on SDHC #1 w/T_3.6 - started with PC Quick fat32 SDFormat and that is working - up to the point of new upload:
    Code:
           upload@2272100-Teensy  Uploading to board '2272100-Teensy' (Teensy 3.6)
           upload@2272100-Teensy  Triggering board reboot
           upload@2272100-Teensy  Reboot didn't work, press button manually
           upload@2272100-Teensy  Board '2272100-Teensy' has disappeared
    *I've just started pushing button after starting compile in SublimeTest so TyCommander completes the upload with Compile.cmd and defragster/Tset.

    I see the same in 2k {works} .vs. 8k (or 4k or larger) log fails on T_3.6:
    Code:
    Test logger_RawWrite
    8192<< BUFFSIZE _ Dev Type >>2:/
    
    Change drive
    Z_00001.dat
    stat FR_OK 0
     opened 0 0
    // THEN NOTHING
    
    Test logger_RawWrite
    2048<< BUFFSIZE _ Dev Type >>2:/
    
    Change drive
    Z_00001.dat
    stat FR_OK 0
     opened 0 0
    
    ................................................................
    .................................... (7111926 - 1.151868 MB/s)
     (open: 5064 us; close: 25000 us; write: min,max: 4945 191951 us)
    I put his mod in setup to track the buffer size:
    Code:
      while(!Serial);
      Serial.println("Test logger_RawWrite");
      Serial.print(BUFFSIZE);
      Serial.print("<< BUFFSIZE _ Dev Type >>");
      Serial.println(Dev);
    Wow - only formatted before first test - T_3.6 with 2K buffer get really bogged down … and never over 1.27 MB/s::
    Code:
    Z_00008.dat
    stat FR_OK 1586
     opened 0 0
    
    ................................................................
    .................................... (7109975 - 1.152184 MB/s)
     (open: 238928 us; close: 24999 us; write: min,max: 4945 585951 us)

  8. #83
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    I have only T$ with USBHost possibility

    concerning my hang
    maybe it has something to do with USBHost::queue_Data_Transfer

    Code:
    	// last qTD needs info for followup
    	data->qtd.next = 1;
    	data->pipe = pipe;
    	data->buffer = buffer;
    	data->length = len;
    	data->setup.word1 = 0;
    	data->setup.word2 = 0;
    	data->driver = driver;
    	// initialize all qTDs
    	data = transfer;
    	while (1) {
    		uint32_t count = len;
    		if (count > 16384) {
    			count = 16384;
    		} else {
    			last = true;
    		}
    		init_qTD(data, p, count, pipe->direction, 0, last);
    		if (last) break;
    		p += count;
    		len -= count;
    		data = (Transfer_t *)(data->qtd.next);
    	}
    as it hangs in msDoCommand
    Code:
    else { // Data to device
    		queue_Data_Transfer(datapipeOut, CBW, sizeof(msCommandBlockWrapper_t), this);
    		if(CBW->CommandData[0]==CMDWR10) println("A");
    		while(!msOutCompleted);  // Wait for out transaction to complete.
    		if(CBW->CommandData[0]==CMDWR10) println("B");
    		msOutCompleted = false;
    		queue_Data_Transfer(datapipeOut, buffer, CBW->TransferLength, this);
    		if(CBW->CommandData[0]==CMDWR10) println("C");
    		while(!msOutCompleted);  // Wait for second out transaction to complete.
    		if(CBW->CommandData[0]==CMDWR10) println("D");
    
    		msOutCompleted = false;
    		if((CSWResult = msGetCSW()) != 0)
    			return CSWResult;
    	}
    "D" is never printed as seen here
    Code:
    Write 191880 64
    TransferLength 32768 CommandData  2A 0 0 19 18 80 0 0 40 0
    A
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 6F 00 00 00 00 80 00 00 00 00 0A 2A 00 00 19 18 80 00 00 40 00 00 00 00 00 00 00 
    B
    C
    but maybe not as it seems also not to work with exactly 16384

    But there it is a different hang position
    Code:
    Write 191880 32
    TransferLength 16384 CommandData  2A 0 0 19 18 80 0 0 20 0
    A
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 6F 00 00 00 00 40 00 00 00 00 0A 2A 00 00 19 18 80 00 00 20 00 00 00 00 00 00 00 
    B
    C
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 6F 00 00 00 00 40 00 00 00 00 0A 2A 00 00 19 18 80 00 00 20 00 00 00 00 00 00 00 
    D
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 6F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 70 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    Edit: the last CallbackOut, where it hangs, is a call to deviceAvailable()
    Which seems to never return.

    Another Edit:
    in a previous Write I have
    Code:
    Write 103c6 1
    TransferLength 512 CommandData  2A 0 0 1 3 C6 0 0 1 0
    A
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 29 00 00 00 00 02 00 00 00 00 0A 2A 00 00 01 03 C6 00 00 01 00 00 00 00 00 00 00 
    B
    C
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    5A 5F 30 30 30 39 36 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 62 5D 00 00 7D 00 
    D
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 29 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    EndWrite
    note the emmphasized length of dataOut
    which conflicts with
    Code:
    D
    Write 199440 32
    TransferLength 16384 CommandData  2A 0 0 19 94 40 0 0 20 0
    A
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2D 00 00 00 00 40 00 00 00 00 0A 2A 00 00 19 94 40 00 00 20 00 00 00 00 00 00 00 
    B
    C
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2D 00 00 00 00 40 00 00 00 00 0A 2A 00 00 19 94 40 00 00 20 00 00 00 00 00 00 00 
    D
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    EndWrite
    Last edited by WMXZ; 05-14-2019 at 10:44 AM.

  9. #84
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    Quote Originally Posted by defragster View Post
    Using Post #78 zip and github : ...\libraries\uSDFS\examples\uSDFS_test\uSDFS_test .ino
    Compiled and built for T$ - using SD card as #1_SDHC the card works. Moving that card to #2_USB in a USB adapter - get TONS of spew that ends like this:
    Code:
     Full debug output from T_3.6 noted below : uSDFS.txt

    Code:
    …...
    So it see the files then goes into an odd state were the #1 interface ended with a blink, the #2 ends with LED ON?

    And the T$ is in an odd state - it won't take an upload without a button press - or placed into bootloader before?

    Using TyCommander from SublimeText editor:

    Putting this code and same card on a T_3.6 [ FrankB Teensy64 ] it is similar and asking for fresh upload turns off LED and the T_3.6 disappears >> Full text attached above:
    Code:
    …..
    Using TyCommander from SublimeText editor:
    Code:
    …..
    And like the T$ - on the T_3.6 same code on #1 SDHC leaves it running with LED blink on same card:
    Code:
    @defragster

    Interesting - been using the T$ for al the tests I have done. Tried to repeat your test with a SD Card in the Audio Adapter (64GB SanDisk Ultra) and didn't have an issue with the T$ is a strange state. When it finished reading the card the LED stayed on for a sec and then started blinking. The only thing I notice is hot swapping doesn't work for me.

    EDIT: OK if I run the same test on USB I see the same issue with the T$ as you do

    Code:
    Test uSDFS
    0:/
    
    Change drive
    
    Create a new subdirectories.
    
    Create a new file /Ascii/HELLO13.TXT.
    Write some text lines. (Hello world!)
    Close the file.
    
    Open same file /Ascii/HELLO13.TXT.
    Get the file content.
    Hello world!
    Second Line
    Third Line
    Fourth Line
    Habe keine Phantasie
    Close the file.
    
    open binary file
    write file
    close file
    Binary test done
    
    Open root directory.
    Directory listing...
       29162  DATALOG.TXT
       <dir>  System Volume Information
       <dir>  Ascii
      772140  operational.wav
       <dir>  2001
       <dir>  Flac
    30401785  Berlin - Take My Breathe Away theme from Top Gun with Lyrics.flac
     3177823  Christina Aguilera - Candyman (2009) 720p.aac
           0  mtpindex.dat
       21430  odd.mp3
       46888  odd1.mp3
      489461  zarathustra.mp3
      553004  odd1.wav
    16787550  SDTEST1.wav
      426300  calculations.wav
       <dir>  Binary
    131072000  Z_00001.dat
    131072000  Z_00002.dat
    131072000  Z_00003.dat
    131072000  Z_00004.dat
    131072000  Z_00005.dat
           0  Z_00006.dat
    
    Test completed.

  10. #85
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    Quote Originally Posted by mjs513 View Post

    EDIT: OK if I run the same test on USB I see the same issue with the T$ as you do
    Yes, All tests, where system hangs, are done with true USB memory sticks. uSD card with uSD-USB adapter worked without problems.
    USB memory sticks where also very slow (As you noticed)

    Conclusion: for high speed logging will stick with build-in SDIO (about 15 MB/s)

  11. #86
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    …..
    Is the extra while for "D" needed - seems to be there for A,B, and C
    [ERROR] Never mind my mistake

  12. #87
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    4,852
    Good Morning... Sorry I may not be able to help here much... Other diversions....

    But in the code that queues the transfer, my version I put in stuff to detect if the calls fail...
    Code:
    uint8_t msController::msDoCommand(msCommandBlockWrapper_t *CBW,	void *buffer)
    {
    	if(CBWTag == 0xFFFFFFFF)
    		CBWTag = 1;
    	if((CBW->Flags == CMDDIRDATAIN)) { // Data from device
    		if (!queue_Data_Transfer(datapipeOut, CBW, sizeof(msCommandBlockWrapper_t), this)) {
    			println("msController::msDoCommand QDT failed CMDDIRDATAIN OUT");
    		}
    		if (!queue_Data_Transfer(datapipeIn, buffer, CBW->TransferLength, this)) {
    			println("msController::msDoCommand QDT failed CMDDIRDATAIN IN");			
    		}
    		while(!msOutCompleted);  // Wait for out transaction to complete.
    		while(!msInCompleted);  // Wait for in transaction to complete.
    	} else { // Data to device
    		if (!queue_Data_Transfer(datapipeOut, CBW, sizeof(msCommandBlockWrapper_t), this)) {
    			println("msController::msDoCommand QDT failed ELSE OUT");			
    		}
    		while(!msOutCompleted);  // Wait for out transaction to complete.
    		if (!queue_Data_Transfer(datapipeOut, buffer, CBW->TransferLength, this)) {
    			println("msController::msDoCommand QDT failed ELSE OUT 2");			
    		}
    		while(!msOutCompleted);  // Wait for second out transaction to complete.
    	}
    	// Reset completion flags. 
     	msOutCompleted = false;
    	msInCompleted = false;
    	return msGetCSW();  // Get status of last transaction
    }
    Again my version here may not be up to date with changes that @wwatson made on some of this...

    My guess is we are running out of transfer objects... Might add some USB Objects to get some more transfers allocated...
    Maybe start off the sketch something like:
    Code:
    //Copyright 2019 by Walter Zimmer
    // Version 07-may-19
    //
    #include "uSDFS.h"
    #include <USBHost_t36.h>
    extern USBHost myusb;
    USBHub hub1(myusb);
    USBHub hub2(myusb);
    
    #define TEST_DRV 2
    //
    #if TEST_DRV == 0
      const char *Dev = "0:/";  // SPI
    #elif TEST_DRV == 1
      const char *Dev = "1:/";  // SDHC
    #elif TEST_DRV == 2
      const char *Dev = "2:/";  // USB
    #endif
    And see if that changes your run any. Good part is by adding these, you will be able to run with disk or the like plugged into USB HUB, which is probably a good thing.

  13. #88
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    4,852
    for above the 8K transfer (2K * 4) I am thinking that some of the underlying stuff may need to debugged in usbhost_t36...
    In queue_Data_Transfer - Example this code:
    Code:
    	for (count=(len >> 14); count; count--) {
    		next = allocate_Transfer();
    		if (!next) {
    			// free already-allocated qTDs
    			while (1) {
    				next = (Transfer_t *)transfer->qtd.next;
    				free_Transfer(transfer);
    				if (transfer == data) break;
    				transfer = next;
    			}
    			return false;
    		}
    		data->qtd.next = (uint32_t)next;
    		data = next;
    	}
    At 8K This for (count=(len >> 14); count; count--) { I believe sets count to 0 Using 8K which should then be 32K passed in here,
    count I think will be 2...
    And then how it works with the next loop:
    Code:
    	while (1) {
    		uint32_t count = len;
    		if (count > 16384) {
    			count = 16384;
    		} else {
    			last = true;
    		}
    		init_qTD(data, p, count, pipe->direction, 0, last);
    		if (last) break;
    		p += count;
    		len -= count;
    		data = (Transfer_t *)(data->qtd.next);
    	}
    	return queue_Transfer(pipe, transfer);
    Example there may be issue with passing in 16384 as a length. As the first loop will say count=1 and allocate the a next unit... Then
    the next loop will only need the first one as 16384 will fit the first condition...
    So second one will not be init...

  14. #89
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    Got it
    IMO, the line must read
    Code:
    	for (count=((len-1) >> 14); count; count--) {
    for 16k and smaller there should be no additional transaction

  15. #90
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    4,852
    Quote Originally Posted by WMXZ View Post
    Got it
    IMO, the line must read
    Code:
    	for (count=((len-1) >> 14); count; count--) {
    for 16k and smaller there should be no additional transaction
    I agree, other than I also put that test in a conditional if (count)...
    Not sure what it would do with 0 count, but...

  16. #91
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    Quote Originally Posted by KurtE View Post
    I agree, other than I also put that test in a conditional if (count)...
    Not sure what it would do with 0 count, but...
    I let you the mods and PR

  17. #92
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    4,852
    Quote Originally Posted by WMXZ View Post
    I let you the mods and PR
    Maybe someone will beat me to it, I did push up a change into my PS3_Motion.... branch, but have not tried to see if it fixes all of the issues yet.

    May be awhile before I will get a chance to try it out.

  18. #93
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    @WMXZ, @wwatson and @KurtE

    Just tried your change and seems to working. I first tried it with my very old Microcenter 1gb memory stick but it was taking so long to finish I swapped with a transcend card reader with the fast 64gb card I had:
    Code:
    Test logger_RawWrite
    2:/
    
    Change drive
    Z_00001.dat
    stat FR_OK 0
     opened FR_OK 0
    ................................................................
    .................................... (29888996 - 4.385293 MB/s)
     (open: 366048 us; close: 20000 us; write: min,max: 23889 247891 us)
    
    Z_00002.dat
    stat FR_OK 801
     opened FR_OK 0
    ................................................................
    .................................... (30065996 - 4.359477 MB/s)
     (open: 361989 us; close: 20000 us; write: min,max: 23889 249891 us
    UPDATE:
    With the microcenter 1gb memory stick:
    Code:
    Z_00001.dat
    stat FR_OK 0
     opened FR_OK 0
    ................................................................
    .................................... (968335988 - 0.135358 MB/s)
     (open: 4051 us; close: 390000 us; write: min,max: 626891 1846877 us)
    With a 32Gb from SanDisk:
    Code:
    Test logger_RawWrite
    2:/
    Change drive
    Z_00001.dat
    stat FR_NO_FILE 0
     opened FR_OK 0
    ................................................................
    .................................... (62346995 - 2.102298 MB/s)
     (open: 76045 us; close: 25000 us; write: min,max: 39889 2925891 us)
    Last edited by mjs513; 05-14-2019 at 03:10 PM.

  19. #94
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    For the heck of it I tried it with my SSD external drive but got an error:
    Code:
    Change drive
    Z_00001.dat
    stat FR_OK 0
     opened FR_OK 0
    
     write FR_DISK_ERR
    It did write the file name though

  20. #95
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    Quote Originally Posted by mjs513 View Post
    For the heck of it I tried it with my SSD external drive but got an error:
    Code:
    Change drive
    Z_00001.dat
    stat FR_OK 0
     opened FR_OK 0
    
     write FR_DISK_ERR
    It did write the file name though
    I may add a better write error (say how many records are already written)
    along the line
    Code:
    Serial.printf(" write FR_DISK_ERR at count #%d\n",count);

  21. #96
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    @WMXZ
    Sounds like a good idea. I did look at the file contents but it was an empty file. Possibly because it didn't close correctly.

  22. #97
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Update to this post above with USBHost_T36 link - will link it to here ...

    @mjs513 - you can edit ... it looks like @KurtE made some MSC edits?
    @WMXZ you can ping Robin if you'd like Sr+ as a T4_Beta and get 'old post edit' ability.
    @wwatson - if you get moved to github - or maybe @mjs513 could put 'current/evolving' WIP copy there for now?

    Quote Originally Posted by defragster View Post
    Here is today MSC.zip from mjs513 with the uSDFS_Files directory removed.

    Code:
    MSCv3.zip
    this MSCv3 did build ...

    USBHost_t36 updates working with this : https://github.com/KurtE/USBHost_t36...WIP2-Bluetooth

    Does this represent the known 'state of the art code'?

    Found an older 8GB Flash drive Windows Fat32 formatted and used to work with - just need to make sure code is complete. With old USBHost code it just starts and stalls … will get back with updated code ...

  23. #98
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    @defragster

    All I did was to download Kurt's USBHost_t36 ps3_Move_bluetooth branch and substitute it for what is installed with Teensyduino. Did not touch MSC.h at all as far as I know.

  24. #99
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Using the latest @KurtE USBHost and turning on debug to Serial I got this on the 8GB Kingston Fat32 USB stick on T_3.6 - does it show anything helpful?::
    Code:
    Test logger_RawWrite
    2048<< BUFFSIZE _ Dev Type >>2:/
    Test logger_RawWrite
    2048<< BUFFSIZE _ Dev Type >>2:/
    sizeof Device = 36
    sizeof Pipe = 96
    sizeof Transfer = 64
    power up USBHS PHY
     reset waited 5
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 1FFF5000
    periodictable = 1FFF5000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 00 02 00 00 00 40 30 09 45 65 00 01 01 02 03 01 
        VendorID = 0930, ProductID = 6545, Version = 0100
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: Kingston
    enumeration:
    Product: DataTraveler SE9
    enumeration:
    Serial Number: 001D0F1F90CAECB0472700A4
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 00 80 64 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 00 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 81 02 00 02 00 
        Endpoint = 1 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 02 02 00 02 00 
        Endpoint = 2 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    Descriptor 4 = INTERFACE
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT

  25. #100
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Quote Originally Posted by mjs513 View Post
    @defragster

    All I did was to download Kurt's USBHost_t36 ps3_Move_bluetooth branch and substitute it for what is installed with Teensyduino. Did not touch MSC.h at all as far as I know.
    Okay wasn't sure if @KurtE post #87 or other resulted in changes.

    Here are the libs in use on my system:
    Code:
    "T:\\TEMP\\arduino_build_logger_RawWrite.ino/logger_RawWrite.ino.elf"
    Multiple libraries were found for "USBHost_t36.h"
     Used: T:\tCode\libraries\USBHost_t36
     Not used: T:\Ard186t4b2\hardware\teensy\avr\libraries\USBHost_t36
    Using library uSDFS at version 1.1.0 in folder: T:\tCode\libraries\uSDFS :: 12 May WMXZ github
    Using library MSC at version 1.0.0 in folder: T:\tCode\libraries\MSC :: posted MSCV3 zip
    Using library USBHost_t36 at version 0.1 in folder: T:\tCode\libraries\USBHost_t36 :: linked KurtE github

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •