Infrarot-USB-Maus im Eigenbau

Aus BraLUG-Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Motivation

Bei der Entwicklung des BLIT2008-Board ist eine Beispiel-Applikation erstellt worden, mit der es möglich ist, dieses Board als Infrarot-USB-Maus zu verwenden. Da ich gerade etwas Zeit hatte, habe ich nun dieses Beispiel in einer, hardwareseitig abgerüsteten Variante, als eigene Baugruppe aufgebaut. Kernstück dieses Moduls ist diesmal ein ATtiny45, der für diese Funktion vollkommen ausreicht. Entstanden ist eine kleines kompaktes Modul, welches hier beschrieben werden soll.

Hardware

Schaltung

IR-USB-Maus Schaltplan IR-USB-Maus Baugruppe

Grundlage der Schaltung ist das BLIT2008-Board gewesen. Unnötige Komponenten (z.B. LED, I²C- und ISP-Anschluss) wurden weggelassen. Der ATmega8 wurde durch einen ATtiny45 ersetzt. Die Schaltung wurde auf einer kleinen Lochrasterplatine aufgebaut. (Der ISP-Anschluss ist im Schaltbild noch enthalten, ist aber dann nicht einbaut worden. Siehe dazu auch weiter unten...)

Programmieradapter

Programmieradapter Programmieradapter auf ATtiny gesteckt

Um nicht unnötig Platz auf der Platine zu verschwenden, ist auch auf den ISP-Anschluss, den man ja eigentlich zum Flashen des Programmes auf den Mikrocontroller benötigt, verzichtet worden. Vielmehr habe ich diese Idee für eine Art Adapter aufgegriffen, die ich mal durch Zufall beim Rumstöbern im Internet gefunden hatte. Auf obigen Bildern sieht man meine Umsetzung. Die Jumperstifte sind so angeordnet, dass sie auf den ATtiny aufgesteckt werden können und mit etwas Glück auch halten (;-)). Die entsprechenden Pins zum Programmieren des MC (RESET, SCK, MISO, MOSI, Vcc und GND) sind zum Wannenstecker auf der anderen Seite geführt und dort so verdrahtet, dass hier die übliche Flash-Hardware angeschlossen werden kann.

Die ganze Geschichte ist etwas fummlig. Aber da es sich bei der IR-USB-Maus quasi um ein Fertiggerät handelt, was nicht ständig neu programmiert werden muss, ist es eine gangbare Lösung, um den Platz für den ISP-Stecker auf der Platine einzusparen. Natürlich hätte man auch einen Bootloader auf dem ATtiny installieren können, aber auch der muss erstmal im Flash installiert werden...

Fuse-Bits

Im Auslieferungszustand des ATtiny sind dessen Fuse-Bits auf 0xDF (High) und 0x62 (Low) gesetzt. U.a. ist damit die Taktquelle des Mikrocontroller auf den internen Oszillator eingestellt, was für obige Schaltung nicht brauchbar ist, weil ein externer 12MHz-Quarz die Taktversorgung übernehmen soll. Also müssen die Fuses, z.B. via avrdude, umgestellt werden. Mit folgendem Befehl kann man sinnvolle Werte (lfuse=0XEF; hfuse=0xDD) einstellen (als Programmieradapter wird dabei ein USBasp verwendet):

avrdude -c usbasp -p attiny45 -U hfuse:w:0xDD:m -U lfuse:w:0xEF:m

Wer genau wissen möchte, was mit diesen Fuse-Bits auf dem ATtiny45 eingestellt wird, ist z.B. der AVR Fuse Calculator zu empfehlen.

Software

Firmware: Tiny_rc5_usb_mouse.tar.gz

Kontakt

Ich, Uwe, bin jederzeit an weiteren Ideen zum Thema Mikrocontroller interessiert!

Weitere Mikrocontroller-Projekte von mir:

'Persönliche Werkzeuge