Hallo,
Ich programmieren im Rahmen meiner DA den AT91SAM7X und habe Probleme
beim USB. Zur Verfügugng steht mir ein selbst Designtes Board und ein
Bluetooth-Evalboard das auch USB hat. Eigendlich wollte ich hier meine
ganzen Probleme schildern, jedoch schwarnt mir gerade das bei meinem
Board vielleicht ein Fehler unterlaufen ist. Daher erstmal kurz und
knapp:
Muss die DDP Leitung auf 3V3 gezogen werden? Ich bin davon ausgegangen
das der intern Pullup dies tut, und habe keine Pullupresistoren an den
DDP und DDM Leitungen. Nur Leitungswiederstände (27R).
Falls das nicht die "Lösung" sein sollte hier mal mein ganzes Problem:
Ich habe mir von Atmel das "USB HID Keyboard Project" genommen und
musste es ein wenig anpassen damit es fehlerfrei kompiliert wird.
Jedoch findet nach dem Flashen keine Enumeration statt und ich (sowie
alle die ich fragen kann) sind mit unserem latein am Ende.
Über DBUG habe ich schon jede Menge Debugmsg ausgeben lassen, und das
Programm hängt in einer Endlosschleife
1 | while (USBD_GetState() < USBD_STATE_CONFIGURED)
|
USBD_GetState() liefert den Devicestatus zurück, dieser ist aber immer 0
1 | /// The device is currently suspended.
|
2 | #define USBD_STATE_SUSPENDED 0
|
3 | /// USB cable is plugged into the device.
|
4 | #define USBD_STATE_ATTACHED 1
|
5 | /// Host is providing +5V through the USB cable.
|
6 | #define USBD_STATE_POWERED 2
|
7 | /// Device has been reset.
|
8 | #define USBD_STATE_DEFAULT 3
|
9 | /// The device has been given an address on the bus.
|
10 | #define USBD_STATE_ADDRESS 4
|
11 | /// A valid configuration has been selected.
|
12 | #define USBD_STATE_CONFIGURED 5
|
Es findet also gar keine Enumeration statt, daher meldet der PC auch
garnichts wenn ich das Board anschließe.
Ich benutze:
Eclipse IDE for C/C++ Developers Build id: 20100218-1602
Yagarto
SAM ICE JTAG
SAM-BA 2.9
Danke im Vorraus
Gruß
Kristof