Tech-Ecke / Elektronik Inhalt / Mikrocontroller |
Mikrocontroller Grundlegendes
Aber es geht auch sehr viel
einfacher... Vor einiger Zeit (ca. 2015) bin ich beim Bestellen
von Elektronikteilen über das Lernpaket "Mikrocontroller
programmieren" vom Franzis Verlag gestolpert (neue
Bezeichnung: Maker Kit Controller Board). Das Paket wirbt
damit, einen Mikrocontroller, ganz ohne PC, mit nur 3 Tastern
programmieren zu können. Neugier und der günstige Preis hatten
mich verleitet das Lernpaket kurzerhand mitzubestellen. Als ich
dann, Wochen später endlich mal dazu kam die im Paket enthaltene
Experimentierplatine zusammenzulöten, um damit etwas herumspielen war ich schnell von dem TPS-Gedanken begeistert. Die
Möglichkeit einen Mikrocontroller so einfach zu programmieren
ist wirklich eine faszinierende Sache.
Auf www.elektronik-labor.de bin ich auf den Beitrag von Ralf Beesner gestoßen, der die TPS-Steuersoftware auf einen ATtiny44A portiert hat. Dieser Controller ist kleiner und wesentlich einfacher zu bekommen und letztlich auch noch günstiger. Um den ATtiny jedoch als TPS-Controller einsetzen zu können muss dieser zuvor noch die TPS-Steuersoftware erhalten. Zudem benötigt er auch ein eigenes Entwicklungsboard. Beides, also die Steuersoftware und ein Schaltplan des Entwicklungsboards findet man auf der Seite von Ralf Beesner. Die modifizierte Steuersoftware, welche in BASCOM-AVR geschrieben wurde kann mit der BASCOM IDE und einem geeigneten Programmer auf den ATtiny geschrieben werden. An dieser Stelle noch ein Hinweis: Dem ATtiny44A fehlen gegenüber dem Holtek zwei Pins, deswegen wurden hier zwei Eingänge doppelt belegt, Din.3 und ADC.0 sowie Din.4 und ADC.1 können wahlweise als Digital- oder als Analogeingänge abgefragt werden.
Ich verwende BASCOM IDE v1.11.9.0 zusammen mit dem Programmer myMultiProg V1.06 (LPT), auf einem Windows XP Rechner mit LPT-Port. Dieses Setup ist nur ein Beispiel und es kann prinzipielle jede Programmer/Software-Konfiguration verwendet werden, welche mit dem ATtiny44 kompatibel ist. Beschreiben des ATtiny44A mittels BASCOM und myMultiProg Zum Beschreiben des ATtiny44 kann, wie in meinem Fall z.B. die BASCOM IDE-Entwicklungsumgebung in Verbindung mit einem kompatiblen Programmer verwendet werden. Nach dem Start von BASCOM stellt man zunächst den Programmer über "Options/Programmer" ein. Für den MyMultiProg V1.06 (LPT) wäre das die Einstellung "Universal MCS Interface" und "WinARV and SP12". Dann wechselt man zum Tab "Compiler" und wählt unter "Chip" die "attiny44.dat" für den ATtiny44 aus und bestätigt mit [OK].
Nun kann man über "File/Open" die
"TPS-t44-1.bas" (Download) einlesen. Danach klickt man auf "Compile
program" oder drückt [F7] und dann auf "Program chip"
bzw. [F4].
Nachtrag 21.12.2021: In der Zwischenzeit ist mein damaliger XP-32Bit-Rechner zu einem Win10-64Bit-Rechner mutiert und BASCOM (1.11.9.0) verweigert hier den Dienst, trotz Kompatibilitätseinstellung auf WinXP SP3, was unter Win7-32Bit noch prima funktioniert hatte. Aber da ich noch genügen alte Hartware in Form von betagten WinXP-32Bit-Notebooks habe, bin ich darauf ausgewichen. Aber auch hier hatte ich Probleme. BASCOM startete zwar ordnungsgemäß, verweigerte aber letztlich den Zugriff auf den Controller mit der Meldung: "Could not identify chip with ID:000000 oder ID:FFFFFF". Diese Meldung deutet entweder auf eine falsche Hardwarekonfiguration hin, oder der LPT-Port liefert nicht genügend Spannung und der Programmer muss zusätzlich mit einer externen 9V-Spannung versorgt werden. Aber die Hardwarekonfiguration passte und auch das anlegen einer externen Spannungsversorgung brachte keinen Erfolg. Da ich ja den Code nicht ändern musste bin ich auf die Programmersoftware AVRDude 5.3.1 auszuweichen und siehe da, es hat auf Anhieb geklappt. Auch ohne Externe Spannungsversorgung wurde der ATtiny44 korrekt beschrieben. Und auf wundersame Weise läuft ab diesen Zeitpunkt auch BASCOM einwandfrei? Da ich ja an Zufälle glaube habe ich das ganze Spiel an drei weiteren Rechner vollzogen und bei allen lief BASCOM erst, nachdem ich einmal mit AVRDude 5.3.1 einen Chip erfolgreich beschrieben hatte. Wieso, weshalb, warum? Keine Ahnung, egal, Hauptsache es läuft. Ich stelle hier mal ein AVRDude Komplettpaket zur Verfügung, falls jemanden das gleiche Problem ereilen sollte. Dazu einfach das Zip-Archiv entpacken, dann "Inst-LPT.bat" und im Anschluss "StartMich.bat" ausführen und fertig. Voraussetzung ist jedoch, dass der Programmer ein myMultiProg v1.06 ist und am LPT1 hängt, ansonsten muss die "StartMich.bat" entsprechend abgeändert werden. Die TPS-Steuersoftware liegt übrigens im Paket schon mit dabei, AVRDude verlangt hier eine hex-Datei.
AVRmyMiltiprog1-6_AVRDUDE-ATtiny44-TPS.zip
Die Schaltung für das nun benötigte ATtiny44A-TPS-Entwicklungsboard gibt es, wie weiter oben erwähnt auf der Seite von Ralf Beesner. Diese habe ich hier mal auf eine Lochraster-Streifenplatine übertragen.
Bestückung:
Was die Faszination des TPS zu Begin ausgemacht hat, wird dann
im Alltag
allerdings etwas lästig, wenn
man seine Programme durch mehrere Iterationsschleifen prügelt
und immer alles über die Taster, Bit für Bit eintippen muss.
Genau hier setzt folgende Erweiterung ein.
Platine - Bestückung:
TE TPS-Programmer
Software:
Der TPS Programmer schaufelt nicht
nur die einzelnen Bit's zum Mikrocontroller, sondern er
unterstützt auch beim Erstellen des Programmcodes. Mit ihm
lassen sich die einzelnen Befehlszeilen entweder per
Dropdown-Menü oder per Selektion in der Command-Liste erstellen
bzw. vorhandene ändern. Ist das Programm erstellt und der korrekte COM-Port ausgewählt, kann
Quellcode per [Start Programming] Button
an den TPS-Controller übertragen werden. Und noch mal kurz was zum USB-COM-Adapter: Hat man nun doch nur einen der billigen Varianten mit dem CH34x-Chipset zur Hand, so lässt sich dieser, wenn auch mit Einschränkungen doch nutzen. Der Reset-Taster wird über den TxD-Ausgang betätigt, welcher bei diesen Adaptern nicht funktioniert. Setzt man jedoch das Board von Hand in den Programmiermodus und startet dann erst die Übertragung, dann klappt es auch damit :-)
Beim Start zeigt der Programme ein
Beispielcode welcher folgende Befehle ausführt:
Fertiger Aufbau Entwicklungsboard + TPS Programmer Erweiterung
Die Integration in eigene Schaltungen ist recht einfach. Da die Ausgangsströme jedoch sehr gering sind und man damit bestenfalls eine LED zum Leuchten bringt, müssen diese noch Verstärkt werden. Entweder wie im unten stehenden Plan über Transistoren, oder über einen Treiber wie dem ULN2003. Ein Treiberbaustein vereinigt Vorwiderstände, Transistoren und Freilaufdioden in einem Baustein. Der ULN2003 besitzt 7 solcher Ein- und Ausgänge.
Belastbarkeit der Ausgänge am ATTiny 44 A:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !
[Erstellt 28.01.2015 - letzte Änderung 12.11.2023]