Aktivierung von PB5 am AtTiny13 mittels Fusebits



... am Beispiel eines 6-Kanal-Lauflichtes


Der Pin1 am Attiny13 ist im Auslieferungszustand der RESET-Eingang, der beim Programmrüberschieben benutzt wird.
Soll statt dessen Pin1 als PB5 benutzt werden, muß eines der sogenannten FUSE BITs gesetzt werden.

Damit verbauen wir uns jedoch die Möglichkeit des weiteren Programmierens unseres Attiny13!
Mit anderen Worten: dieses Bit darfst Du erst setzen, nachdem Dein Programm im Attiny drin ist.



In dem Code-Ordner hier findest Du ein 6-Kanal-Lauflicht und ein neues Makefile.

Nachdem Du in den entpackten Code-Ordner hineingewechselt bist, solltest Du mal eingeben: make help
Es erscheint folgender Hilfetext:

Moegliche Befehle:
    make all - compiliert Dein Programm und erzeugt die .hex-Datei
    make load - compiliert Dein Programm und schiebt es in den Attiny13
    make clean - loescht die beim Compilieren erzeugten Dateien
    make rdfuses - gibt Dir Informationen ueber die gesetzten Fusebits und mehr
    make wrfuse4.8mhz - setzt Fusebit fuer 4.8 MHz intern
    make wrfuse9.6mhz - setzt Fusebit fuer 9.6 MHz intern
    make wrfusecrystal - setzt Fusebit fuer externen Quarz / Crystal (Achtung!)
    make wrfusenoreset - setzt Fusebit fuer PB5 (Achtung!)
    make help - zeigt diesen Hilfetext

Achtung: ohne Quarz hast Du keine Chance, wrfusecrystal rueckgaengig zu machen!

Achtung: wrfusenoreset schaltet PB5 frei und deaktiviert RESET!


(Erläuterung: In den Befehlen steht das rd für read und das wr für write. Der Befehl wrfusenoreset steht für: wr_fuse_no_reset.)



Das in der Datei test.c enthaltene Lauflicht ist nicht gerade aufregend.
Beweist aber, daß es geklappt hat, wenn Du wie folgt vorgehst:

  1. Bau Dir eine Schaltung mit LEDs an PB0 bis PB5, z. B. diese hier:




  2. Verändere das in test.c enthaltene Lauflichtprogramm nach Deinen Wünschen oder laß es, wie es ist.

  3. Schiebe es in den Attiny13 mit: make load
    Schaue Dir an, wie's blinkt (noch ohne PB5).
    Passe das Programm noch weiter Deinen Wünschen an oder nicht.

  4. Setze das Fusebit für "Pin1 = nicht mehr RESET, sondern PB5" mit: make wrfusenoreset
    Wie Du siehst: die LED an PB5 blinkt jetzt mit.


Anmerkungen:

  • Nicht vergessen: Dein Attiny13 kann jetzt nicht weiter programmiert werden, denn er wird das beim Programmrüberschieben benötigte RESET nicht ausführen.

  • Du kannst dieses Makefile auch in den Code-Ordnern der anderen Attiny13-Projekte und -Experimente der Mikrocontrollerspielwiese benutzen. Kopiere es einfach in den entsprechenden Ordner und überschreibe so das alte Makefile.

  • Du hast sicher auch bemerkt, daß dieses Makefile auf Wunsch die Arbeitsfrequenz Deines Attiny13 verändern kann. Probier es!

  • Für gleichzeitiges Leuchten mehrerer LEDs solltest Du jeder LED einen Widerstand verpassen (Knotensatz!)

  • Wenn es hier zu Problemen beim Programmrüberschieben kommen sollte:
    Die an PB5 (=RESET) angesteckte LED kann das Reset-Signal stören.
    Abhilfe: erst Programm rüber schieben, dann LED an PB5 anstecken.

  • Was man noch alles mit Fusebits bewirken kann, findest Du z. B. hier. Und natürlich auch im Datenblatt des Attiny13.