Kleine Aufmerksamkeit für die Freundin: Attiny2313 mit 8×8 LED-Matrix

Die Besonderheit bei diesem Projekt: die 8×8 LED-Matrix (übrigens bei Reichelt bestellt) wurde 1:1 an den Attiny2313 gelötet. Auf die Idee bin ich im Blog auf evilmadscientist.com gestoßen. Hier wurde der Attiny allerdings ohne Platine direkt auf die LED-Anzeige gelötet. Da ich die Matrix nach dem fertigen Aufbau jedoch weiterhin programmieren möchte, wollte ich nicht auf einen ISP-Header verzichten.

Attiny2313 8x8 LED-Matrix

Weiterlesen

USBASP USB AVR Programmer

Da mein neues T400s keinen Parallel-Port mehr besitzt (auch nicht über die Docking-Station), musste ich mich nach einem neuen AVR-Programmer umsehen.

Entschieden habe ich mich für einen USBASP von Thomas Fischl.

Die Schaltung basiert auf einem Atmega8 und ein paar weiteren passiven Komponenten.

Der Vorteil dieser Schaltung:
Für die USB-Anbindung wird kein spezieller USB-Controller benötigt, dies wird alles über die Firmware auf dem Atmega8 geregelt.

Aufgebaut habe ich die Schaltung auf einer Lochraster-Platine. Klar hätte ich mir auch einen fertigen Bausatz bestellen können, aber wo bleibt da der Bastelspaß wenn nur noch die Widerstände eingelötet werden müssen? ;)

Außerdem wollte ich noch die Belegung des ISP-Steckers anpassen, damit diese mit meinem LPT zu ISP Programmieradapter kompatibel ist und auch für bestehende Schaltungen ohne zusätzlichen Adapter genutzt werden kann.

USBASP AVR Programmer

USBASP AVR Programmer

Nachdem der USBASP fertig aufgebaut war, spielte ich die Firmware über meinen LPT-Programmieradapter (an meinem Entwicklungsrechner, welcher dank dem USBASP jedoch bald überflüssig sein wird) ein und setzte die Fuses für den externen 12 Mhz Quarz.

Daraufhin wurde er dann am T400s unter Ubuntu 9.04 64Bit auf Anhieb erkannt!

lsusb
Bus 006 Device 006: ID 16c0:05dc VOTI

Um den USBASP mit Linux benutzen zu können, werden noch folgenden Pakete benötigt:

  • gcc-avr
  • avrdude
  • binutils-avr
  • avr-libc

Der Programmer kann dann direkt mit Avrdude verwendet werden:

avrdude -c usbasp

Uhr mit 7-Segment Anzeigen und Attiny2313

So hier hätten wir es – das erste „richtige“ Projekt in Sachen Microcontroller in diesem Blog. Eine Uhr, basierend auf einem Attiny2313 sowie sechs 7-Segement Anzeigen und 2 Tastern zum einstellen der Minuten und Stunden.

Uhr mit 7 Segment Anzeigen und Attiny2313

Auf dieser Version auf dem Breadboard wurde noch der interne Oszillator des Attiny2313 verwendet (8Mhz), dies wird sich jedoch in der finalen Version ändern, da dieser ziemlich ungenau ist. In der gelöteten Version wird dann ein externer Quarz mit 14,7456 Mhz seinen Dienst verrichten.

Der Attiny2313 ist wie geschaffen für dieses Projekt, die Ports reichen haargenau aus. :-)
Erhältlich ist dieser beispielsweise im Online-Shop element14.

An PB0-PB7 die einzelnen Segmente (a,b,c,d,e,f,g,h sowie dp), Port PD0-PD5 zur Ansteuerung der 6 Anzeigen sowie PA2 und PD6 für die Taster zum einstellen der Minuten und Stunden. An PA0 und PA1 wird in der finalen Version der Quarz seinen Platz einnehmen.

Programmiert wird der AVR mit dem bereits beschriebenen ISP-Programmieradapter und dem Programm Ponyprog.

Auf dem Breadboard wird der Attiny über den Spannungswandler 7805 mit einer 5V Spannung versorgt. In der endgültigen Uhr wird dieser dann durch 3x 1,5V Batterien ersetzt.

LPT zu ISP Programmieradapter

Hier nun endlich mein erster Artikel zu Mikrocontrollern. Ich befasse mich hauptsächlich mit 8-Bit AVR Microcontrollern (z.B. ATtiny2313, Atmega8, Atmega32). Um diese Microcontroller programmieren zu können, habe ich mir einen Programmieradapter vom LPT-Port auf ISP-Schnittstelle gebaut.

LPD zu ISP Porgrammieradapter

Die von mir beschriebene Version des ISP-Programmierkabels benötigt an Bauteilen lediglich 2 Widerstände mit jeweils 1k.

LPD zu ISP Porgrammieradapter Schaltplan

Bei der Verwendung eines solchen Programmieradapters ist unbedingt darauf zu achten, das der ISP-Stecker immer richtig aufgesteckt wird, da ansonsten euere LPT-Schnittstelle bzw. euer Mainboard Schädem davontragen könnte. Der ISP-Adapter besteht aus den Anschlüssen GND, RESET, MOSI, MISO und SCK, welche sich auch auf den Datenblättern der oben genannten µC wiederfinden. Wie der Microcontroller letztendlich mit dem ISP-Adapter verbunden wird und über welches Programm dieser dann beschrieben werden kann, folgt in einem weiteren Artikel.