Forum: Mikrocontroller und Digitale Elektronik Full Speed USB ATSAM3U funktioniert nicht


von LaunchPad (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich benutze den Controller ATSAM3U2CA-AU und versuche über Full-Speed 
den Controller als HID anzumelden leider klappt es nicht es wird gar 
nichts erkannt. Die Software ist höchstwahrscheinlich nicht das Problem 
da Sie beim Evolutionboard läuft.

Mein Controller ATSAM3U2CA-AU läuft grundsätzlich auch ich kann auf ihn 
zugreifen, flashen leds ansteuern etc..  Aber das Anmelden als HID 
funktioniert nicht ich habe die USB-Beschaltung aus dem Datenblatt 
übernommen.


Kann einer mal bitte drüber schauen ob ich irgendwo ein Hardware bug 
habe.


Ich habe schon die Spannung gemessen am Spannungsteiler R9 & R10 liegen 
ca. 3.3 V an die auf PA2 gehen ( erkennung ob sich der Controller als 
HID angemeldet hat)


Leider habe ich nicht rausgefunden was für eine Spannung am pin VBG 
anliegen muss bei mir ist sie bei ca. 0V. Weiß einer was für eine Bias 
Referenzspannung da anliegen muss und wo von ist die anhängig da Sie ja 
nur intern erzeugt wird wenn ich das richtig sehe?!

Hat vllt noch eine Idee was bzw wo  ich messen sollte um einen 
Hardwarebug auszuschließen.


P.S Die VDDIO Spannung ist bei 3,3 V und die VDDCORE bei 1,8V.


Muss ich vllt noch irgendwas unbedingt aktivieren um auf die 
USB-Schnittstelle als Full-Speed zu zugreifen zu können?

Danke für alle Tips!!!

von Jim M. (turboj)


Lesenswert?

>  wird gar nichts erkannt.

Wenn bei USB gar nichts erkannt wird, fehlt der Widerstand (1,5 k) von 
D+ nach 3,3 Volt. Manche µC können den intern schalten, andere brauchen 
den extern.

Wenn der Widerstand vorhanden ist zeigt Windoof mindestens ein 
"unbekanntes Gerät" an, allerdings eventuell erst nach einiger Zeit.

von LaunchPad (Gast)


Angehängte Dateien:

Lesenswert?

Jim Meba schrieb:
>>  wird gar nichts erkannt.
>
> Wenn bei USB gar nichts erkannt wird, fehlt der Widerstand (1,5 k) von
> D+ nach 3,3 Volt. Manche µC können den intern schalten, andere brauchen
> den extern.
>
> Wenn der Widerstand vorhanden ist zeigt Windoof mindestens ein
> "unbekanntes Gerät" an, allerdings eventuell erst nach einiger Zeit.

die Widerstände sind laut Datenblatt im Controller vorhanden.

Seite 977

Mir ist jetzt aufgefallen das mein Quarz 
http://www.txccrystal.com/images/pdf/9c.pdf nicht schwingt.

Komischer weise komme ich aber auf den Controller drauf und kannn ganz 
normal flashen.

Kann es sein das der SAM3U automatisch auf den internen RC-Oszillator 
umschaltet und ich deswegen alles machen kann bis auf USB weil der zu 
ungenau für USB ist=?


Woran kann es denn liegen das der Quarz nicht anschwingt? Habe 18pF als 
Anschwing Kondensatoren wie im Datenblatt vorgegeben 
http://www.txccrystal.com/images/pdf/9c.pdf.


Muss ich irgendwie dem Controller beim flashen mitteilen das er den 
externen Quarz benutzen soll. oder sollte er auch so schwingen?



Danke für alle Tips!

von LaunchPad (Gast)


Lesenswert?

Hallo,

das Problem mit dem Quartz ist gelöst er schwingt und wird auch vom 
Controller benutzt.

Leider funktioniert USB immer noch nicht. An der Software kann es nicht 
liegen da Sie bei dem Evolutionboard läuft.


Kann mir einer sagen wofür der PIN VBG zuständigt ist bzw. welcher pegel 
dort anliegen sollte.


Bei mir ist immer 0V egal ob USB eingesteckt ist oder nicht.

Bei dem EVO-Board ist bei eingesteckten USB an dem pin VBG ca 1.2V.


Aber ich habe ja keinen einfluss auf den VBG pin oder?!

So wie ich das sehe ist es eine interne Referenzspannung für USB beim 
Controller, leider steht im Datenblatt dazu nicht viel.


Hat einer ne Idee woran es liegen könnte bzw. muss ich noch irgendwas 
spezielles aktivieren bei dem  ATSAM3U2CA-AU Controller?

von Matthias (Gast)


Lesenswert?

Ok, dann schauen wir mal was "auffällig" ist:

1.
Ich gehe davon aus, dass Du das SAM3U-EK mit "Evaluation Board" meinst.

2.
Im SAM3U-EK wird VBus an PA0 und nicht an PA2 angeschlossen!

"erkennung ob sich der Controller als HID angemeldet hat"

-> Glaub ich nicht. Damit wird die Software erkennen, ob man mit einem 
USB
Port verbunden ist, und wenn ja, dann erst die USB-Softwareschicht 
aktivieren. So ein Spaß hatte ich schon mit einem anderen Controller.
Hab mich gewundert, warum das Teil (USB) net funzt und hab dann 
festgestellt, dass die Demosoftware bzw. die Treiberschicht auf eine 
Spannung (High-Pegel) an einem Port gewartet hat....

3.
Da Du nur einen winzigen Teil deiner Schaltung, kann ich nicht sagen, ob 
da evtl. noch was anderes schief gelaufen sein kann. Ich hoffe mal Du 
hast brav alle xxxUTMI Pins passend verdrahtet und auch die PLL (VCC, 
etc.) korrekt angeschlossen. Ein Augenmerk solltest Du auch auf 
Filtermaßnahmen haben, die in Spannungsversorgungen vorgesehen wurden.


Hoffe mal, das hilft Dir weiter ;-)

von LaunchPad (Gast)


Lesenswert?

Matthias schrieb:
> Ok, dann schauen wir mal was "auffällig" ist:
>
> 1.
> Ich gehe davon aus, dass Du das SAM3U-EK mit "Evaluation Board" meinst.

ja richtig
>
> 2.
> Im SAM3U-EK wird VBus an PA0 und nicht an PA2 angeschlossen!
>
> "erkennung ob sich der Controller als HID angemeldet hat"
>
> -> Glaub ich nicht. Damit wird die Software erkennen, ob man mit einem
> USB
> Port verbunden ist, und wenn ja, dann erst die USB-Softwareschicht
> aktivieren. So ein Spaß hatte ich schon mit einem anderen Controller.
> Hab mich gewundert, warum das Teil (USB) net funzt und hab dann
> festgestellt, dass die Demosoftware bzw. die Treiberschicht auf eine
> Spannung (High-Pegel) an einem Port gewartet hat....

das habe ich auch erst gedacht aber im Quellcode wir das signal gar 
nicht ausgewertet das heißt auch wenn es nicht ein high pegel von 3,3V 
an PA2 bekommt funktioniert es beim evo board.
>
> 3.
> Da Du nur einen winzigen Teil deiner Schaltung, kann ich nicht sagen, ob
> da evtl. noch was anderes schief gelaufen sein kann. Ich hoffe mal Du
> hast brav alle xxxUTMI Pins passend verdrahtet und auch die PLL (VCC,
> etc.) korrekt angeschlossen. Ein Augenmerk solltest Du auch auf
> Filtermaßnahmen haben, die in Spannungsversorgungen vorgesehen wurden.

der Rest passt soweit VDDANA,VDDBU, VDDUTMI,VDDIO habe alle 3,3V und 
VDDPLL VDDCORE haben 1,8V.


Hast du ne Idee was VBG macht bzw. Was für ein Pegel dort anliegen 
sollte?


Muss ich noch irgendwas aktivieren ? bei dem Evo-Board ist ja der große 
bruder  ATSAM3U4E verbaut ich habe aber den ATSAM3U2CA-AU auf meinem 
Board ist dort ein unterschied beim USB ich sehe nichts anderes...



>
> Hoffe mal, das hilft Dir weiter ;-)

von Matthias (Gast)


Lesenswert?

Was ist mit dem GNDUTMI?

So wie's aussieht hast Du den Joker gezogen und darfst jetzt Schritt für 
Schritt den Source der Demo durchgehen und schauen, ob es einen 
Unterschied zwischen ATSAM3U4E und ATSAM3U2CA-AU gibt.

Wenn erst mal nur das USB laufen soll, dann könntest Du auch ein eigenes 
Projekt erstellen und dann mal den Systemtakt (MCLK, USBCLK, ...) 
generieren. Danach den USB-Controller initialisieren und versuchen den 
Code
dafür nachzuvollziehen. Mal einen Breakpoint in die USB-IRQ-ISR setzen 
und prüfen, ob die aufgerufen wird. Der uC ist ja prinzipiell nur 
passiv, da er nur auf Polls vom Master reagiert. Mit VBUS muss Du halt 
den 1,5K Pullup schalten, bzw. schalten lassen, damit der Master den 
Slave erkennen kann.
Ich hoffe mal Atmel verwendet nicht die DMA-Engine dafür.
Dann müsste man das etwas besser nachvollziehen können.

VBG sagt mir nix, aber wenn es so angeschlossen ist, wie am Eval-Board 
bzw. im Datenblatt angegeben, dann sollte das auch gehen.
Wenn ich das Datenblatt richtig verstehe ist VBG irgendeine 
Referenzspannung für's USB (wahrscheinlich zur internen Verwendung).

Dass die VBUS nicht ausgewertet wird ist komisch. Schau mal, ob Du im 
Quelltext irgendwo das UDPHS_CTRL Register findest und wie die Bits 
PULLD_DIS und DETACH gesetzt sind bzw. gesetzt 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.