Tech-Ecke / Elektronik Inhalt / Mikrocontroller

 

     Mikrocontroller

   Grundlegendes

Mikrocontroller sind kleine Computersysteme die auf einem einzigen Halbleiterchip untergebracht sind. Sie haben neben einem Prozessor und einem Speicher auch Ein- und Ausgänge. Schaltungen können durch den Einsatz von Mikrocontrollern erheblich verkleinert und somit letztlich auch vereinfacht werden. Insbesondere wenn es um Messen, Steuern und Regeln geht können Mikrocontroller ihre Stärken ausspielen. Nun ist es jedoch so das diese kleinen Dinger aber nur das tun, was man ihnen auch vorher beigebracht hat, man muss sie also programmieren. Dies geschieht in aller Regel am PC und dann muss man das Programm mittels geeignetem Programmiergerät auf den Mikrocontroller übertragen.


   Die Tastenprogrammierbare Steuerung (TPS)

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 endlich mal dazu kam die im Paket enthaltene Experimentierplatine zusammenzulöten um damit etwas herumspielen zu können war ich schnell von dem TPS Gedanken begeistert. Die Möglichkeit einen Mikrocontroller so einfach zu programmieren ist wirklich eine faszinierende Sache.

Hat man sein Projekt umgesetzt und den Controller vom Entwicklungsboard genommen und in der eigenen Schaltung verbauen, so muss ein Ersatz fürs nächste Projekt her. Der im Lernpaket enthaltene und mit der TPS-Software bestückte Holtek-Controller HT46F47E ist z.B. hier zu bekommen: www.ak-modul-bus.de


   Portierung auf ATtiny44A

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.

Noch ein Hinweis bevor es ans Beschreiben des Controllers geht: 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.

 

  • BASCOM-IDE

  • kompatibler Programmer

  • TPS-Steuersoftware - BASCOM Code

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 in sich und 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].
In meinem Fall bekam ich die Fehlermeldung "Line: 59 - Unknown CONFIG parameter [AVCC]". Es geht hier um Referenzspannung des Controllers. Es können folgende Parameterwerte gesetzt werden: Aref, Avcc, Internal oder Off. Bei allen Möglichkeiten kommt es zu einem Fehler, darum habe ich kurzer Hand Reference = Avcc" über ein Hochkomme auskommentiert und dann läuft die Kompilierung durch. Wahrscheinlich hat dies Auswirkung auf die Analogen Eingänge, der Rest arbeitet jedoch einwandfrei.
Um letztlich den den Schreibvorgang zu starten klickt man auf "Auto program chip".

Update 21.12.2021: In der Zwischenzeit ist mein damaliger XP-32Bit-Rechner zu einem Win10-64Bit-Rechner mutiert und meine Version von BASCOM 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. 


   TPS Entwicklungsboard für ATtiny44A-TPS

Die Schaltung für das nun benötigte ATtiny44A-TPS-Entwicklungsboard gibt es ebenfalls auf der Seite von Ralf Beesner, welche ich hier mal auf eine Lochraster-Streifenplatine übertragen habe.

vergrößern vergrößern

Bestückung:

  • 1x Textolsockel 24-Pol
  • 4x LED rot
  • 1x LED grün
  • 4x Widerstand 150 Ohm
  • 1x Widerstand 120 Ohm
  • 1x Kondensator 220 nF
  • 3x Taster
  • optional: 2-Pol Anschlussklemme
  • optional: 10-Pol Wannenstecker
  • optional 8-Pol Stiftleiste


   TPS Programmer-Platine und Software

Die eigentliche Faszination der TPS-Idee ist es ja, dass man einen Mikrocontroller ganz ohne PC programmieren kann. Dennoch ist das Prinzip durchaus für kleine Projekte alltagstauglich und genau hier setzt der

vergrößern

Bestückung:

  • 3x Transistor BC 548C
  • 3x Widerstand 1 kOhm
  • 1x 9-Pol SUB-D Stecker (weiblich)
  • optional: 10-Pol Wannenstecker:

Software

Der TPS-Programmer erleichtert die Eingabe der Befehlszeilen erheblich. Man muss hier nicht Bit für Bit über die Tasten eingeben, sondern stellt die Zeilen bequem per Auswahlmenü zusammen und überträgt diese dann automatisch mittels TPS Programmer-Platine via Serieller PC-Schnittstelle (COM) an das Entwicklungsboard und somit auf den Controller.

  Download TE TPS Programmer
 

Fertiger Aufbau Entwicklungsboard + TPS Programmer Erweiterung


  
Tipps

Programmiermodus starten: S2 drücken und gedrückt halten, während dessen kurz die Resettaste betätigen. Der Programmiermodus ist gestartet wenn das erste Bit angezeigt wird, nun kann die S2 Taste losgelassen werden.


   Links

 

 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 28.01.2015]