Forum: Mikrocontroller und Digitale Elektronik USB mit AVR?


von Micro Sakurai (Gast)


Lesenswert?

Hallo

Ich habe gerade den Artikel auf der Elektorseite  gesehen in dem ein AVR 
direkt mit USB angeschlossen wird. Meine Frage ist. Wie problemlos ist 
so was und wieviel Rechenleitung hat man noch zur Verfügung?

Ich will jetzt nicht nur wegen einem Artikel gleich das Heft kaufen.

http://www.elektor.de/Default.aspx?tabid=27&art=5551005&PN=On


Gruss

Micro Sakurai

von Sigint 112 (sigint)


Lesenswert?

Naja,
  so teuer ist die Elektor doch nun auch wieder nicht.
Aber zum Thema:
  Ich hab selbst schon mehrere Soft-USB Varianten getestet und bin der 
Meinung, daß die ziemlich zuverlässig funktionieren.
Ob man durch die Schaltungen irgendetwas am Mainboard zerstören kann da 
bin ich mir nicht wirklich sicher. Ich hab zur Sicherheit immer einen 
HUB dazwischen... bei einem Kurzschluss bin ich mir aber nicht sicher, 
ob der viel Hilft. Naja: No risk, no fun ;-)
Die wahrscheinlich beste Implementierung findet man hier: 
http://www.obdev.at/products/avrusb/index.html
Es gibt aber noch einige andere...

Gruß,
  SIGINT

P.S.: Ich hab folgenden Adapter schon ca. 6 Monate ständig am Rechner 
und noch nie Probleme:
http://www.c64-wiki.de/index.php/CJoy
Ist prima zum steuern für Winamp :-)

von Micro Sakurai (Gast)


Lesenswert?

Hallo Sigint 112

Danke für die Links. Klingt ja alles sehr vielversprechend.

Aber wie sieht es mit der Auslastung aus. Also wieviel Rechenleistung 
schluckt so ein USB an einem "durchschnittlichen" AVR?

Habe dazu nichts genaues gefunden oder habe es überlesen


Gruss

Micro Sakurai

von Björn (Gast)


Lesenswert?

Ist im Heft auch der Schaltplan zum Board?

von Christian U. (z0m3ie)


Lesenswert?

Ich hab mit der implementierung von obdev experimentiert. Funktioniert 
sehr gut wenn ich das richtig verstanden habe verbrät die wenn auf dem 
bus nichts los ist auch keine rechenleistung da sie INT1 benutzt um 
Daten zu empfangen. USB 1.1 sendet Jede millisekunde einen kurzen Sync 
Frame bei dem die Interrupt routine dann anspringt ist aber wohl kaum 
erwähnenswert.
Beim wirklichen daten empfangen bzw wenn du einen bus hast auf dem viel 
los ist wird der AVR aber schon etwas belastet. Ich habs allerdings 
nicht mit einer Implementierung versucht die ständig was zu tun hat. Bei 
DMX oder ähnlichen sachen wo der controller schon von der 
hauptapplikation ziemlich ausgelastet ist kann es ab und zu schon zu 
Problemen kommen denk ich.

von SeriousSam (Gast)


Lesenswert?

Zerstören sollte man eigentlich nichts können. Gemäss USB-Standard 
müssen konforme Geräte Kurzschlüsse an beiden Datenleitungen nach VBus 
(<5.25V) und GND mindestens für 24h ohne weiteren Schaden überstehen. 
Ich habe allerdings auch schon gelesen, dass nicht alle Chips 
funktionieren, wenn die Datenleitungen mit 5V (normal <3.6V) angesteuert 
werden.

Ich bin selber gerade am Basteln eines AVR mit Soft-USB. Ich benutze 
allerdings einen mit 18MHz. Ich bin wohl noch einige Zeit daran, bis es 
zuverlässig funktioniert. Je nach Anwendung variert die Auslastung. Ein 
HID-Device kann alle 10ms gepollt werden und dabei bis zu 8 Bytes an 
Daten verschicken. Dies sollte jedoch nicht mehr als 2000 Takte 
beanspruchen. Die Konfiguration des Devices beinhaltet grössere 
Datenmengen und braucht entsprechend mehr Zeit, aber das sollte nicht so 
ins Gewicht fallen.

Der Bittakt für Lowspeed-USB ist 1.5Mhz. Jedes Packet beinhaltet etwa 
3Bytes overhead (sync, pid, crc). Der Zeitbedarf für CRC-Berechnungen, 
zumindest bei zu sendenden Packeten kommt natürlich noch dazu. Ein 
Keep-alive, welches jede ms einmal auftaucht kostet etwa 50 Takte 
(18MHz) wenn die Interruptroutine vernünftig programmiert ist. Weiteren 
Traffic, der nicht für das Device bestimmt ist sollte man eigentlich 
nicht zu sehen bekommen.

von Christian (Guest) (Gast)


Lesenswert?

Nicht ganz sichere Infos:

ein HUB bekommt eine USB-Adresse
und regelt den trafic zu den angeschlossenen
Geräten.

Er müßte daher aktiv sein => Controller inside.

Da die USB limitiert ist auf 500 mA,
der Strom vom PC (i.d.R. Adresse 0, die steuert alles)
geliefert wird, kann ein Kurzschluß ggf.
den HUB/PC zerstören.

Ich meine im Internet mal gesehen zu haben:
- galvanisch getrennte USB-Anschlüsse (das vertreibt/vertrieb eine 
Firma)
oder
- Strombegrenzerschaltung, quasi zum Testen
(Wo = ?)

Zum AVR: da gibt es einen übertakteten ATtiny (ich meine 20 MHz!),
ich hatte vor einigen Tagen mal etwas "gegooglet" und einiges
gefunden (angeregt durch Elektor)

Sind ggf. die AT90...,
also AVR mit USB inside, keine Lösung ?
Dann braucht man die USB mit per Software nachbilden, wie beim
ATtiny  (PIC18F... können es entsprechend - und andere)

Vorteil wäre:
man kann ggf. mehre der USB-Tarnsferprotokolle einfacher nutzen

Gruß
c.

von F. K. (freddy436)


Lesenswert?

Elektor hat da auch nicht das Rad neu erfunden,
Als Treiber für Windows wird http://libusb-win32.sourceforge.net 
verwendet und das Kernstück der Firmware ist http://www.obdev.at/avrusb/

Von Elektor kommt "nur" das drumherum (Schaltplan/Platine und eine 
entsprechende fertige Firmware).


von Ralf B. (Gast)


Lesenswert?

Erinnert mich irgendwie an die App Note 309 dieser Elektor Artikel ....

Grüße,
Ralf B.

von F. K. (freddy436)


Lesenswert?

Ralf B. wrote:
> Erinnert mich irgendwie an die App Note 309 dieser Elektor Artikel ....

Gerade mal drüber geguckt, die App Note ist 10mal mehr informativer als 
der Artikel!

von Micro Sakurai (Gast)


Lesenswert?

<Gerade mal drüber geguckt, die App Note ist 10mal mehr informativer als
der Artikel!>

Dies ist der Grund warum ich das Heft nur noch selten kaufe und dann bin 
ich  meistens sehr enttäuscht. Ein teures Heft mit wenig Nutzen.


Gruss


Micro Sakurai

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.