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
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 :-)
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
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.
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.
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.
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).
Erinnert mich irgendwie an die App Note 309 dieser Elektor Artikel .... Grüße, Ralf B.
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!
<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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.