Tech-Ecke / Elektronik Inhalt / Mikrocontroller |
![]()
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 als Software die 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 kann die BASCOM IDE-Entwicklungsumgebung in Verbindung mit einem kompatiblen Programmer verwendet werden. In meinem Fall ist das der myMultiProg V1.06 (MK1 - LPT - SP12 kompatibel). Nach dem Start von BASCOM stellt man zunächst den Programmer über "Options/Programmer" ein. Für meinen Programmer wähle ich hier oben "Universal MCS Interface" und weiter unten "WinARV and SP12" aus. 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) laden. Jetzt clickt man auf "Compile
program" oder drückt [F7] und dann auf "Program chip" oder [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 auch das brachte keinen Erfolg. Da ich ja den Code nicht ändern musste habe ich mich kurzer Hand entschlossen 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 wunderbar, nachdem ich einmal mit AVRDude 5.3.1 einen Chip erfolgreich beschrieben hatte. Selbst auf einer virtuellen Win73-Bit-VMware-Maschine, mit weitergeleiteten, physikalischen LPT und Win10-64Bit als Host-System. Wieso, weshalb, warum? Scheinbar bewirkt der von AVRDude benötigte Treiber "giveio.sys" hier etwas, jedoch benötigt BASCOM diesen eigentlich nicht und läuft auch noch wenn der Treiber deinstalliert wurde. Egal, Hauptsache es läuft. Ich stelle hier mal ein AVRDude Komplettpaket zur Verfügung falls jemand das gleiche Problem ereilen sollte. Einfach das Zip-Archiv entpacken, zuerst "Inst-LPT.bat" und dann "StartMich.bat" und das war es dann schon. 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.
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:
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. Nachdem der korrekte COM-Port ausgewählt
wurde kann das Programm per [Start Programming] Button
übertragen werden. Und nochmal kurz 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. Wichtig ist dabei, dass die Pin-Belegung genau wie oben Abgebildet vorgenommen wurde, dass also die Beiden Taster S1 und S2 vom DTR und RTS des COM-Ports bedient werden. Der Resettaster wird in diesem Fall dann nicht angesteuert, da der TxD-Ausgang bei diesen Adaptern nicht funktioniert. Setzt man jedoch das Board von Hand in den Programiermodus und startet dann erst die Übertragung klappt es auch.
Beim Start zeigt der Programme ein
Beispielcode welcher folgende Befehle ausführt:
Fertiger Aufbau Entwicklungsboard + TPS Programmer Erweiterung
Die Integration in eigene Schaltungen gestaltet sich aufgrund der überschaubaren Anazahl an benötigten Peripheriebausteine als recht einfach. Die Eingänge können direkt mit der Versorgungsspannung (Positiv) angesteuert werden. Da die Ausgangsströme sehr gering sind und man damit bestenfalls eine LED zum Leuchten bringen kann 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, Transistor und Freilaufdiode für alle 4 Ausgänge (ULN2003 -> bis zu 7) in einem Baustein.
Belastbarkeit der Ausgänge am ATTiny 44 A:
|
||||||||
Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !
[letzte Aktualisierung 28.01.2015]