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