Forum: Mikrocontroller und Digitale Elektronik Low speed USB atmega8 oder attiny85?


von Maxim W. (maxim_w)


Lesenswert?

Ich möchte den Input einer USB-Maus abhören und gegebenenfalls 
manipulieren. Soweit ich weiß verwenden die meisten Mäuse Low-Speed USB. 
Würde mir dazu ein ATmega8 mit 8 MHz Taktung reichen oder sollte ich 
lieber einen ATmega48 mit 20 MHz nehmen?

Gruß
Maxim

EDIT:
Und nein... ich möchte keine seriellen Adapter oder sonstiges verwenden. 
Nur USB.

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Maxim W. schrieb:
> Ich möchte den Input einer USB-Maus abhören und gegebenenfalls
> manipulieren. Soweit ich weiß verwenden die meisten Mäuse Low-Speed USB.
> Würde mir dazu ein ATmega8 mit 8 MHz Taktung reichen oder sollte ich
> lieber einen ATmega48 mit 20 MHz nehmen?

Weder noch.
Du willst also ein Gerät bauen, was auf einer Seite einen Anschluss für 
eine USB-Maus hat und auf der anderen Seite einen Anschluss für einen 
PC. Richtig? Und dann willst Du Daten zwischen den beiden Ports 
austauschen und ggf modifizieren. Auch richtig? Heißt also: Du brauchst 
einmal USB Host und einmal USB Device.

Für die Implementation einen USB Devices gibts ja diese Low Speed 
Frickellösungen. Ein USB Host ist aber eine Zehnerpotenz aufwändiger. 
Hier musst Du passende Hardware haben, sonst geht das nicht.

Du brauchst also einen Controller, der einen USB Host Port und einen USB 
Device Port hat. Es gibt keinen AVR, der das hat. Es gibt ARM 
Controller, die das können.

fchk

von Maxim W. (maxim_w)


Lesenswert?

> Heißt also: Du brauchst
> einmal USB Host und einmal USB Device.

Kann ich nicht einfach den rohen USB Datenstrom quasi abfangen und 
verändert weiterleiten ohne extra einen Host und ein Device zu 
erstellen? Das muss doch möglich sein.

von Frank K. (fchk)


Lesenswert?

Maxim W. schrieb:
>> Heißt also: Du brauchst
>> einmal USB Host und einmal USB Device.
>
> Kann ich nicht einfach den rohen USB Datenstrom quasi abfangen und
> verändert weiterleiten ohne extra einen Host und ein Device zu
> erstellen? Das muss doch möglich sein.

... sofern es in Echtzeit quasi verzögerungsfrei geschieht. Mit einem 
FPGA könnte man das vielleicht versuchen. Wenn Du das in Software machen 
willst: nein. Da geht nur Store&Forward, und dafür brauchst Du eben die 
passende Peripherie im Controller.

fchk

von holger (Gast)


Lesenswert?

>Kann ich nicht einfach den rohen USB Datenstrom quasi abfangen und
>verändert weiterleiten ohne extra einen Host und ein Device zu
>erstellen? Das muss doch möglich sein.

Für wen soll das möglich sein? Für dich sicher nicht.
Vergiss den Quatsch.

von Detlef K. (adenin)


Lesenswert?

Maxim W. schrieb:
>> Heißt also: Du brauchst
>> einmal USB Host und einmal USB Device.
>
> Kann ich nicht einfach den rohen USB Datenstrom quasi abfangen und
> verändert weiterleiten ohne extra einen Host und ein Device zu
> erstellen? Das muss doch möglich sein.

Ah, ein USB-Experte.
Nein, kannst Du nicht, mit dem Wissensstand wird das nix.

von PittyJ (Gast)


Lesenswert?

Du solltest dir erst einmal anschauen, wie die USB-Kommunikation 
überhaupt läuft. Die Rollen von Host und Device. Die festen Timings. Den 
ganze Protokoll-Overhead, um nur ein Bytes zu übertragen. Oder wie ein 
Device überhaupt angemeldet wird.
Unter Linux kann man mit Wireshark gucken, was auf dem Bus passiert. 
Schau es dir an, und dann überlege, ob du das alles implementieren 
willst und kannst.

von Schreiber (Gast)


Lesenswert?

Maxim W. schrieb:
> sollte ich
> lieber einen ATmega48 mit 20 MHz nehmen?

der reicht definitiv. Man muss der Maus nur vorgaukeln, dass sie an 
einem PS2-Port hängt, fast alle Mäuse sind zu beiden Standards 
kompatibel.
Also ein PS2=>USB-Umsetzer mit zusatzfuktionen

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.