Forum: Mikrocontroller und Digitale Elektronik Eigenbau Platine mit AT91SAM7Sxxx - USB-Problem


von Greg (Gast)


Angehängte Dateien:

Lesenswert?

Guten Abend miteinander,

ich habe eine Platine (Schaltplan anbei) entworfen und möchte gerne mit 
SAM-BA über USB auf den Controller zugreifen.
Es gibt drei Jumper:
- für TST: TST nach +3V3
- für RESET: NRST nach GND
- für den USB-Pullup: D+ über 1k5 nach +3V3

Wenn ich das Oszilloskop zwischen Quarz und GND anschließe, sehe ich 
meinen 18.432MHz-Sinus. Schließe ich es an mein Eval-Board an, so sehe 
ich eine Spannung mit gleicher Amplitude.

Ich habe nachfolgende Prozedur durchgeführt:
- TST-Jumper schließen
- USB-Kabel anschließen, ca. 10 bis 20 Sekunden warten
- USB-Kabel entfernen
- TST-Jumper öffnen
- USB-Pullup-Jumper schließen
- USB-Kabel anschließen

--> USB-Gerät wurde nicht erkannt.
(Das Eval-Board wird dann erkannt...)

Mehrere Schaltpläne zu AT91SAM7xxx-Eval-Boards habe ich durchgesehen.
Manche haben einen Spannungsteiler zwischen USB-5V und GND, andere 
nutzen einen Transistor um den USB-Pullup zu schalten. Folglich muss 
dass nicht sein - zumindest fand ich in der Doku zum Controller hierzu 
keinen Hinweis.

Ich habe mit zwei Controllern mein Glück probiert, langsam gehen mir die 
Ideen aus...

Wer hat ähnliche Erfahrungen gemacht oder kann mir einen Tipp geben?

Gruss,
Greg.

von yalu (Gast)


Lesenswert?

> Wenn ich das Oszilloskop zwischen Quarz und GND anschließe, sehe ich
> meinen 18.432MHz-Sinus.

Ich nehme an, du hast diese Messsung gemacht, nachdem du SAM-BA
mittels der TST-Pin-Prozedur aktiviert hast. Vorher sollte der
Quarzoszillator nicht laufen, da er erst durch die Software
eingeschaltet wird.

Wenn er hingegen erst nach dem Aktivieren von SAM-BA läuft, heißt
dies, dass die SAM-BA-Software tatsächlich ausgeführt wird. Wenn die
USB-Schnittstelle trotzdem nicht funktioniert, scheint eher ein Fehler
in der Beschaltung des USB-Anschlusses zu liegen (Steckerbelegung,
Widerstände, Kondensatoren ...).

Ich hatte bei meinem (ähnlich aufgebauten) Board anfänglich das
gleiche Problem. Bei mir fehlte einfach nur der USB-Pullup-Widerstand.

von Feadi (Gast)


Lesenswert?

SAM-BA benötigt die interne PLL, was wiederum für das PLLRC Netzwerk 
einen bestimmten Wert erfordert. Ich habe für meinen AT91Sam7S64 22n+1k5 
& 2n2 genommen. Das funktioniert bisher perfekt. Ich habe aber keine 
Kondensatoren am Quarz, die sind laut Datenblatt schon im Chip 
integriert.

Du weisst aber schon dass Pin19 den Pullup für USB steuert? Er ist 
Active Low. Ich benutze dafür ein PNP Transistor.

Gruß, Feadi

von achtbit (Gast)


Lesenswert?

Hallo,

beim AT91SAM7Sxx musst Du um SAM-BA zu aktivieren mehrere PINs auf High 
(3V3) ziehen:

TST
PA0
PA1
PA2

steht auch so im Datasheet (SAM-BA Recovery).
Dann sollte es funktionieren.

Beim S-Typ ist es halt etwas komplizierter als beim X-Typ (nur tst-pin 
auf high).

Gruss achtbit

von Feadi (Gast)


Lesenswert?

@ achtbit:

Die PA0-2 Pins haben Pullups, daher reicht es auch diese einfach offen 
zu lassen.

Gruß, Feadi

von Greg (Gast)


Lesenswert?

Hallo yalu!

>Ich nehme an, du hast diese Messsung gemacht, nachdem du SAM-BA aktiviert hast.
Ja. Es war ein Controller vom Eval-Board direkt nach der 
TST-Pin-Prozedur.


>Wenn die USB-Schnittstelle trotzdem nicht funktioniert, scheint eher ein
>Fehler in der Beschaltung des USB-Anschlusses zu liegen...
In der Tat hatte ich sogar den Fall, dass ein Widerstand defekt war. 
Mittlerweile habe ich meine 27 Ohm.

Der Pullup-Widerstand liegt zwischen D+ und (über einen Jumper) +3V3.
Wenn ich den Jumper stecke, erhalte ich die Meldung "USB-Gerät wurde 
nicht erkannt".

Nun schmeiße ich den Lötkolben an und löte die Kondensatoren um die 
USB-Schnittstelle herum ab. Mal sehen...


In jedem Fall danke für den Tipp!

Gruß,
Greg.

von Greg (Gast)


Lesenswert?

Zunächst die gute Nachricht:

Das Problem ist gelöst.


Die Lösung:

Der Kondensator zwischen D+ und D- (C1) war der Übeltäter. 33pF die jede 
Menge Ärger gemacht haben.
yalu, nochmals vielen Dank für den Tipp!


@Feadi
Was diese Portleitung zum Schalten des Pullup angeht, so habe ich 
wirklich schon Schaltpläne gesehen, in denen er fest verdrahtet ist. 
Langfristig werde ich ihn doch schaltbar machen (z.B. wegen Reset).


@all
Vielen Dank für eure Ideen.


Im Moment ging es mir lediglich nur darum, mit einem möglichst einfachen 
Board zu einem Erfolgserlebnis zu kommen - deshalb nur absolute 
Minimalstbeschaltung und fast alle Pins mit einem Lötpad versehen.


Viele Grüße,
Greg.

von Feadi F. (feadi)


Lesenswert?

> 33pF die jede Menge Ärger gemacht haben.

Huch? Ich habe den Kondensator eingebaut, und das funktioniert echt gut. 
Ist es auch wirklich ein 33p Kondensator?

Gruß, Feadi

von Greg (Gast)


Lesenswert?

>Ist es auch wirklich ein 33p Kondensator?
Oje, ich sollte mich wirklich schlafen legen!

Gerade habe ich diesen Kondensator nachgemessen: 11,5nF.
Da habe ich mich tatsächlich vergriffen...

Gruß,
Greg

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.