Forum: FPGA, VHDL & Co. USB-Stick, PLL oder Quarz?


von Bert (Gast)


Lesenswert?

Hallo Gemeinde,

ich möchte auf einen USB-Stick mitttels FPGA zugreifen. Meine Frage 
wäre, ob dies auch konsquent mit 12 Mbit (Full Speed) möglich wäre. Im 
Datasheet steht, dass ein Hi-Speed-Device seine gesamte Funktionalität 
nicht notwendigerweise auch in Full Speed zur Verfügung stellen muss. 
Wenn der Stick nun aber über keinen eigenen fixen Clock-Generator 
verfügt, könnte ich die Daten ja in Hi-Speed langsamer senden und 
empfangen.

Besitzt der Stick einen eignen Quarz oder erzeugt er den Ausgangsclock 
durch Vorgabe der Frequenz von der Hostseite?

von Sven P. (Gast)


Lesenswert?

In meinem Stick isn 12MHz-Quarz verbaut.

von Falk B. (falk)


Lesenswert?

@  Bert (Gast)

>wäre, ob dies auch konsquent mit 12 Mbit (Full Speed) möglich wäre. Im

Sicher.

>verfügt, könnte ich die Daten ja in Hi-Speed langsamer senden und
>empfangen.

Kaum.

>Besitzt der Stick einen eignen Quarz

ja.

>oder erzeugt er den Ausgangsclock durch Vorgabe der Frequenz von der Hostseite?

Nö.

MfG
Falk

von Bert (Gast)


Lesenswert?

Ah, ja - danke für eure Antworten.

Mal noch 'ne andere Frage. Wenn ich lediglich auf einen einzigen 
(physisch vorhanden) USB-Stick zugreifen möchte, muss ich da 
zwangsläufig auch SOF (Startof Frame) permanent senden? Oder reicht da 
auch bloss eins zu Beginn? So wie ich das aus dem Datasheet 
herausgelesen habe, dient das Signal lediglich zur Synchronisation der 
Hub's. Dann könnte ich es quasi ganz weglassen oder unregelmässig mit 
einem µController generieren und ne Menge Platz im Fpga sparen. Geht 
das?


@Karl der Kleine
Mit Standard IO's geht das auch.

von Falk B. (falk)


Lesenswert?

@ Bert (Gast)

>zwangsläufig auch SOF (Startof Frame) permanent senden?

Logisch, du musst ja einen nahe zu kompletten USB-Master emulieren.

> Oder reicht da
>auch bloss eins zu Beginn? So wie ich das aus dem Datasheet
>herausgelesen habe, dient das Signal lediglich zur Synchronisation der
>Hub's.

Glaub ich nicht so recht.

MfG
Falk

von Thomas B. (yahp) Benutzerseite


Lesenswert?

> Mal noch 'ne andere Frage. Wenn ich lediglich auf einen einzigen
> (physisch vorhanden) USB-Stick zugreifen möchte, muss ich da
> zwangsläufig auch SOF (Startof Frame) permanent senden? Oder reicht da
> auch bloss eins zu Beginn? So wie ich das aus dem Datasheet
> herausgelesen habe, dient das Signal lediglich zur Synchronisation der
> Hub's. Dann könnte ich es quasi ganz weglassen oder unregelmässig mit
> einem µController generieren und ne Menge Platz im Fpga sparen. Geht
> das?

SOF gibt für alle Geräte am Bus - nicht nur Hubs - die Frameeinteilung 
an, daher wahrscheinlich auch der Name. Das kannst du nicht weglassen, 
das ist das wichtigste Paket aufm Bus.

von Christian R. (supachris)


Lesenswert?

hatt denn dein FPGA einen integrierten Prozessor? Oder wo willst du das 
komplette Protokoll eines USB Masters incl. universellem 
Mass-Storage-Devive Treiber abfackeln?

von Bert (Gast)


Lesenswert?

Aber natürlich hat der einen Prozessor. Ich schrieb es auch weiter oben 
schon.

von Christian R. (supachris)


Lesenswert?

Na dann. Und ja, du kannst einen USB Stick natürlich an einem FullSpeed 
Host anschließen, geht ja an einem PC genauso. Was das allerdings mit 
dem Quarz auf dem Stick zu tun hat erschließt sich mir nicht. Du 
scheinst dich bei USB (noch) nicht auszukennen....

von Erik (Gast)


Lesenswert?

Hallo,

USB-Sticks sollten ihre "Funktionalität" auch bei 12MBit komplett zur 
Verfügung stellen. Außer die geringe Performance bestehen da IMHO keine 
Einschränkungen.

Das SOF-Paket wird man schon ab und an mal senden müssen, für ein 
Mass-Storage-Devive ist das Timing sicher nicht besonders kritisch. Man 
kann es eventuell auch mal länger weglassen aber dann kommt der 
Stand-By-Mode.

Zum Verständnis sollte man aber mal die USB-Spec möglichst komplett 
gelesen haben. Wenn man auf den Hi-Speed-Kram verzichten kann ist es 
besser sich auf die 1.1-Spec zu beschränken (hat nur halb so viele 
Seiten).


Grüße
Erik

von Bert (Gast)


Lesenswert?

Hallo Erik,

ja wie schon geschrieben, im 2.0 Datasheet steht, dass ein Device das 
nicht notwendigweise mit der gesamten Funktionsvielfalt tun muss. Ich 
vermute aber, dass es trotzdem auch mit Full-Speed funktionieren wird.

Das mit dem SOF sehe ich eigentlich genauso wie du. Es ist eigentlich 
nur für das Scheduling notwendig. Da ich nur ein Device habe sollte es 
keine oder nur eine untergeodnete Rolle spielen. Aus der Sicht des 
Stick's gibt es keine Notwendigkeit das Signal auszuwerten und Standby 
kommt nur, wenn absolut keine Busativität mehr eingetreten ist.

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.