XMEGA USB als Laufwerk unter Windows-Explorer

pvs-deck
PowerUser
Avatar
Geschlecht:
Alter: 54
Beiträge: 1344
Dabei seit: 02 / 2009
Betreff:

XMEGA USB als Laufwerk unter Windows-Explorer

 · 
Gepostet: 30.07.2018 - 11:39 Uhr  ·  #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
Geschlecht:
Alter: 54
Beiträge: 1344
Dabei seit: 02 / 2009
Betreff:

Re: XMEGA USB als Laufwerk unter Windows-Explorer

 · 
Gepostet: 30.07.2018 - 14:10 Uhr  ·  #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
Geschlecht:
Alter: 54
Beiträge: 1344
Dabei seit: 02 / 2009
Betreff:

Re: XMEGA USB als Laufwerk unter Windows-Explorer

 · 
Gepostet: 31.07.2018 - 08:46 Uhr  ·  #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
Schreiberling
Avatar
Geschlecht:
Herkunft: Germany
Alter: 59
Beiträge: 988
Dabei seit: 09 / 2007
Betreff:

Re: XMEGA USB als Laufwerk unter Windows-Explorer

 · 
Gepostet: 31.07.2018 - 11:16 Uhr  ·  #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
Geschlecht:
Alter: 54
Beiträge: 1344
Dabei seit: 02 / 2009
Betreff:

Re: XMEGA USB als Laufwerk unter Windows-Explorer

 · 
Gepostet: 31.07.2018 - 12:27 Uhr  ·  #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
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   96   110 · Page-Gen-Time: 0.034804s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI