Infrarot-USB-Maus im Eigenbau
Aus BraLUG-Wiki
(→Programmieradapter) |
(→Fuse-Bits) |
||
Zeile 18: | Zeile 18: | ||
==Fuse-Bits== | ==Fuse-Bits== | ||
+ | |||
+ | Im Auslieferungszustand des ATtiny sind dessen [http://www.mikrocontroller.net/articles/AVR_Fuses 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 [http://www.mikrocontroller.net/articles/AVRDUDE avrdude], umgestellt werden. Mit folgendem Befehl kann man sinnvolle Werte (lfuse=0XEF; hfuse=0xDD) einstellen (als Programmieradapter wird dabei ein [http://www.fischl.de/usbasp/ 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 [http://www.engbedded.com/cgi-bin/fc.cgi/ AVR Fuse Calculator] zu empfehlen. | ||
=Software= | =Software= |
Version vom 8. Januar 2009, 14:23 Uhr
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
Programmieradapter
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
Funktioniert zwar scon, muss aber noch ein wenig verbessert werden. Kommt also, wenn sie fertig ist...
Kontakt
Ich, Uwe, bin jederzeit an weiteren Ideen zum Thema Mikrocontroller interessiert!
Weitere Mikrocontroller-Projekte von mir: