Forum: Mikrocontroller und Digitale Elektronik SAM3S USB CDC stall


von Arne Helms (Gast)


Lesenswert?

Hi,

ich bin gerade dabei, den USB Port des SAM3S4B zum Laufen zu bringen. 
Dabie würde ich gerne die CDC Klasse benutzen. Er wird auch als COM-Port 
erkannt und taucht im Geräte manager auf. Wenn ich mit HTerm den Port 
öffne, geht er in den STALL und gibt
-W- Sta 0x8028 [0] -W-
aus. Was soviel bedeutet, wie Force stall = 1 und STALLSENT_ISOERROR = 1

Ich benutze die Bibliothek aus 
SAM3S_softpack_2.1_for_CodeSourcery_2010q1.zip bzw "AT91SAM3S-EK GNU 
Software Package von" 
http://www.atmel.com/tools/SAM3SSOFTWAREPACKAGE.aspx
1
void taskUSB( void *pvParameters )
2
{
3
  uint8_t isUsbConnected = 0;
4
  bool vbus_connected = false;
5
  _ConfigureUsbClock();
6
  /* CDC serial driver initialization */
7
  CDCDSerialDriver_Initialize(&cdcdSerialDriverDescriptors);
8
  for( ;; )
9
  {
10
      if (GET_USB_CONNECTED() && !vbus_connected) {
11
          USBD_Connect();
12
          vbus_connected = true;
13
      }
14
      if (!GET_USB_CONNECTED() && vbus_connected) {
15
          CDCDSerialDriver_Initialize(&cdcdSerialDriverDescriptors);
16
          USBD_Disconnect();
17
          vbus_connected = false;
18
      }
19
      if (vbus_connected){
20
        /* Device is not configured */
21
        uint8_t usbstate = USBD_GetState();
22
      if (usbstate < USBD_STATE_CONFIGURED) {
23
        if (isUsbConnected) {
24
          isUsbConnected = 0;
25
        }
26
      }else{
27
        if(isUsbConnected == 0){
28
          isUsbConnected = 1;
29
        }
30
      }
31
    }
32
    vTaskDelay(( 200 / portTICK_RATE_MS ));
33
  }
34
}

Ist mein Code. GET_USB_CONNECTED() liest einfach nur den VUSB Pin ein.

Hat jemand eine Idee, wo ich anfangen kann zu suchen?

Viele Grüße,

Arne

von centipete (Gast)


Lesenswert?

Arne Helms schrieb:
> Hat jemand eine Idee, wo ich anfangen kann zu suchen?

Lass Dir mal die Daten anzeigen, die übertragen werden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.