Forum: Mikrocontroller und Digitale Elektronik USB programmierung 0V an +D -D trotz DETACH = 0


von Ugene (Gast)


Lesenswert?

Hallo Forum,

hab das Problem, dass obwohl ich das hier mache:
1
 
2
        
3
//attach USB device 
4
ClearBit(UDCON, DETACH);
an den Datenleitungen +D -D gar nichts passiert. Laut Datenblatt sollte 
"Atach" die Spannungsänderung bewirken. An Signalleitungen kann ich aber 
nur 0V(30..50mV) gegen GND messen.

von Florian D. (code-wiz)


Lesenswert?

Um welchen µC geht es?

von Ugene (Gast)


Lesenswert?

Sorry, hab total vergessen:

AT90USB1287

von Florian D. (code-wiz)


Lesenswert?

Du meinst sicher:

The D+ or D- pull-up will be activated as soon as the DETACH bit is 
cleared and VBUS is present.

Vermutlich musst Du aber mindestens USBE in USBCON und vielleicht auch 
UVREGE in UHWCON setzen.

von Stefan Salewski (Gast)


Lesenswert?

>Sorry, hab total vergessen:

Auch der Rest Deiner Frage ist nicht sehr klar formuliert.

Tatsächlich ist es etwas trickreich, beim AT90USB den USB-Teil überhaupt 
zu aktivieren -- wenn Du das meinst. Beim Schreiben meiner eigenen 
USB-Firmware hatte ich mehrere Tage vergeblich herumprobiert. Man muss 
ein bestimmtes Bit setzen, dessen Notwendigkeit im Datenblatt aber nicht 
wirklich erwähnt wird. Sonst bleibt der USB-Teil tot.

Aber Du wirst doch wohl eh die Atmel-Firmware verwenden, dann sollte es 
doch keine Probleme geben?

von Ugene (Gast)


Lesenswert?

Danke für die Antwort. Dass man USBE setzen muss und pll starten und und 
und ist mir so weit klar.

@Salewski: Ihre Firmware habe ich angeschaut. Gute Arbeit. Obwohl der 
Code bissle unübersichtlich ist, aber ist ja Geschmacksache :)

Mit dem bestimmten Bit meinen Sie den OTGPADE (aktivierung der OTG) 
nicht wahr? Ich habe das ganze Wochende damit verbracht den "BUG" zu 
finden.

Dank Ihrer Arbeit hab ich ihn auch gefunden: im Datenblatt.

mfg
Ugene

von Stefan Salewski (Gast)


Lesenswert?

>Danke für die Antwort. Dass man USBE setzen muss und pll starten und und
>und ist mir so weit klar.

>Mit dem bestimmten Bit meinen Sie den OTGPADE (aktivierung der OTG)
>nicht wahr? Ich habe das ganze Wochende damit verbracht den "BUG" zu
>finden.
>Dank Ihrer Arbeit hab ich ihn auch gefunden: im Datenblatt.

In der Tat, das OTGPADE Bit muss gesetzt werden, auch für den 
Device-Modus.
Ich habe das jedenfalls in Datenblatt (im Device-Kapitel) nirgends 
finden können.

>@Salewski: Ihre Firmware habe ich angeschaut. Gute Arbeit. Obwohl der
>Code bissle unübersichtlich ist, aber ist ja Geschmacksache :)

Ja, wenn ein absoluter Profi wie Du sowas sagt ...

von Ugene (Gast)


Lesenswert?

> Ich habe das jedenfalls in Datenblatt (im Device-Kapitel) nirgends
> finden können.

das steht auch nicht im Datenblatt drin. Und OTG wird man nicht intuitiv 
einschalten, um Devicemodus zu benutzen.

Einzigste Stelle wo etwas über OTGPADE etwas gesagt wird:
Set to enable the OTG pad. Clear to disable the OTG pad.
Note that this bit can be set/cleared even if USBE=0 (this allows the 
VBUS detection even if the USB macro is disable).

Der Satz in Klammern deutet an, dass OTGPADE mehr als nur für OTG 
genutzt werden "sollte".

> Ja, wenn ein absoluter Profi wie Du sowas sagt ...
War ja nicht böse gemeint. Wie ich schon sagte: gute Arbeit. Danke.

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.