XMEGA USB als Laufwerk unter Windows-Explorer

pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

XMEGA USB als Laufwerk unter Windows-Explorer

 · 
Posted: 30.07.2018 - 11:39  ·  #1
Hallo,

ich bin gerade am überlegen ob ich eine Dateiübertragung zwischen dem XMEGA/SD-Card und dem Windows-System über eine Extra Software machen sollte oder ob ich probiere das Ganze als Laufwerk in den Dateiexplorer zu packen. Hat das schon mal Jemand probiert mit dem Laufwerk und dem USB-Treiber von AVRco?

Thorsten
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: XMEGA USB als Laufwerk unter Windows-Explorer

 · 
Posted: 30.07.2018 - 14:10  ·  #2
Ich habe mich mal in das Thema MTP eingelesen, ich glaube das ist ein möglicher Lösungsweg um eine einfache Einbindung in den Dateiexplorer zu ermöglichen.

MTP Media Transfer Protocol

Von MS gibt es sogar eine richtig gute Beschreibung:
MTP Protokoll von MS
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: XMEGA USB als Laufwerk unter Windows-Explorer

 · 
Posted: 31.07.2018 - 08:46  ·  #3
@miparo,

sag mal ist es mit euren Treiber eigentlich möglich das der XMEGA als USB-DUAL-Device genutzt werden kann?

Sprich:
1 .USB-Smart
2. VirtualComport

oder
1. MSD
2. VirtualComport

Ich habe da leider nicht dazu gefunden.


Thorsten
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 59
Posts: 956
Registered: 09 / 2007
Subject:

Re: XMEGA USB als Laufwerk unter Windows-Explorer

 · 
Posted: 31.07.2018 - 11:16  ·  #4
Hallo Thorsten,
das ist so nicht vorgesehen, da dann zwei Interfaces angegeben werden müssen.


Der USB_Smart kann da nicht geändert werden aber der große USB schon, der aber nicht im Boot funktioniert.

Evtl langt es ja wenn du in der Win App dem User die Möglichkeit gibst auf Update zu klicken und dein Xmega meldet sich dann als MSD. Der kann dann gemütlich das Update draufschieben oder doe Logfiles sicher ...
Dann ins Boot springen und das Update durchführen.

Mann könnte den großen USB auch anpassen, so das man x Interfaces definieren kann, da habe ich aber keine Zeit zu und das ist alles nicht so einfach im AVRco, da er Const Record+ Array nur sehr rudimentär unterstützt.
Und z.Z werden ja nur Vendorrequest an den User weitergeleitet aber du brachst für die SCSI Commands die Classrequest durchgereicht, was nicht im implementiert ist.

Um deinen eigenen USB Setup Descriptor anzulegen musst du VOR dem laden des USB Treibers {$define USBDescFile} anlegen im "USBDescFile" File deine Sachen ausfüllen:

Code


{$IFDEF USBDescFile}
  {$I USBDescFile }   // load User Interface Descriptor
{$ELSE}
Const
  FS_DEVICE_DESCRIPTOR    : TDevice_desc    = (
  18,                                // Descriptor length (18 bytes)
  $01,                               // Descriptor type (Device)
  $01, $01,                          // Complies to USB Spec. Release (1.01)
  $0,                                // Class code (0)
  $0,                                // Subclass code (0)
  $00,                               // Protocol (No specific protocol)
  64,                                // Max. packet size for EP0 (64 bytes) Valid Sizes are 8, 16, 32, 64
  Lo(USBvid), Hi(USBvid),            // Vendor
  Lo(USBpid), Hi(USBpid),            // Product
  Lo(USBprodRel), Hi(USBprodRel),    // Device release number (1.00)
  $01,                               // Mfr string descriptor index (None)
  $02,                               // Product string descriptor index (None)
  $03,                               // Serial Number string descriptor index (None)
  $01                                // Number of possible configurations (1)
  );

  FS_CONFIG_DESCRIPTOR    : TConfigAll =
  (SizeOf(TConfiguration_desc),       // Length of the configuration Descriptor
  2,                                  // Configuration Descriptor
  SizeOf(TConfigAll),                 // Total length of the configurations,interface and class/endpoint
  0,
  1,                                  // Num of interface supported
  1,                                  // Configuration Value
  0,                                  // Index of string descriptor
  $80,                                // Configurations Attributes
  $FA,                                // Maximun Power (500mA)

  SizeOf(TInterface_Desc),            // Length of standard interface descriptor
  4,                                  // Standard Interface Type
  0,                                  // Num of Interface
  0,                                  // Alternate Setting Selector
  USBendPoints,                       // Num of Endpoints    !!!!!!!!!!!!!!!!!!!!!!
  $0,                                 // Interface Class
  $0,                                 // Interface Sub Class
  0,                                  // Interface Protocol
  0,                                  // Index of interface string desriptor
  //##################  USB Endpoints #########################################
  SizeOf(TEndpoint_Desc),             // Length of Standard Endpoint Descriptor
  5,                                  // Standard Endpoint Type
  $81,                                // Endpoint Address
  2,                                  // Endpoint Attributes
  64, 0,                              // Endpoint Max Packet Size
  0,                                  // Interval for Polling Endpoint for data transfer

  SizeOf(TEndpoint_Desc),             // Length of Standard Endpoint Descriptor
  5,                                  // Standard Endpoint Type
  1,                                  // Endpoint Address
  2,                                  // Endpoint Attributes
  64, 0,                              // Endpoint Max Packet Size
  0                                   // Interval for Polling Endpoint for data transfer
  );

{$ENDIF}
{$Validate_off}


miparo
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: XMEGA USB als Laufwerk unter Windows-Explorer

 · 
Posted: 31.07.2018 - 12:27  ·  #5
OK, miparo :-D

So tief bin ich noch nicht im Thema USB drinnen ;-)

Gibt es ein Demo vom "großen USB" ? Wo ich ich mal etwas reinarbeiten kann?

Thorsten
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   95   109 · Page-Gen-Time: 0.022333s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI