PicoBasic für den ATtiny3216                             

Elektronik-Labor  Projekte  Mikrocontroller  PicoBasic         




Seit einiger Zeit bin ich ein großer Freund der Tiny-Serien 0 und 1. Diese Controller sind sehr leicht über nur einen Pin (UPDI) zu programmieren, sind sehr vielseitig und außerdem preiswert. Hier kommt der ATtin3216 mit 20 Beinchen zum Einsatz. Es sollte ein möglichst kleines Platinchen für den universellen Einsatz werden. Deshalb liegt der USB/Seriell-Adapter extern. Hier habe ich ein FT232-Kabel verwendet, das über eine vierpolige Stiftleiste angeschlossen wird. Wenn ein Programm entwickelt wurde und in das EEPROM gebrannt wird, hat man ein kleines System, das auch für Batteriebetrieb geeignet ist.


Weil das ursprüngliche PicoBasic des Rpi Pico mit der Arduino-IDE entwickelt wurde, war der Umstieg auf einen anderen Controller relativ einfach. Nur die speziellen Eigenheiten des neuen Controllers mussten angepasst werden. Die acht digitalen Ein/Ausgänge D0 bis D7 wurden auf die drei Ports, PB, BC und PA verteilt, sodass sie auf einer Seite liegen. Auf der anderen Seite hat man dann RXD, TXD und die analogen Anschlüsse. Wie bisher beim RPI Pico gibt es AD0 bis AD2. Eine Besonderheit des Tiny3216 ist sein echter 8-Bit-DA-Wandler. Darauf wollte ich nicht verzichten und habe ihn an die Stelle von PWM2 gesetzt, während PWM1 ein normaler PWM-Ausgang geblieben ist. Weil der Reset-Eingang als UPDI-Anschluss gebraucht wird, wurde ein Ersatz-Reset mit einem Tastschalter an PB1 erzeugt. Damit kann man jederzeit den Grundzustand herstellen oder auch ein Programm aus dem EEPROM neu starten.




Anders als der Rpi Pico hat der Tiny3216 keine internen Pulldown-Widerstände. Die dadurch freigewordene Befehlstaste hat nun eine andere Funktion und heißt Pout = NOT 0...255, sie invertiert also die angegebene Konstante für die Portausgabe. Tatsächlich wird hier dasselbe Kommando 0x09 wie beim Pout-Befehl verwendet. Das hat immerhin den Vorteil, dass man oft eine Änderung der Konstante einspart und damit etwas schneller programmieren kann. Mit dem Tiny3216 entwickelte PicoBasic-Programme sind trotzdem voll kompatibel zur Pico-Version und können dort direkt eingelesen werden.



Download incl. Firmware: PicoBasicTiny.zip

Die zweite Änderung betrifft den analogen DA-Ausgang, der an die Stelle von PWM2 tritt. Die interne Referenz des DA-Wandlers wurde auf 2,5 V eingestellt. Mit DA = 100 erhält man dann relativ genau eine Spannung von 1,0 V, und das ganz unabhängig von der Betriebsspannung im Bereich 3 V bis 5 V. Dieselbe Referenz wurde auch für alle drei Kanäle des AD-Wandlers verwendet. Damit hat man auch bei Batteriebetrieb eine genaue Spannungsmessung.


Elektronik-Labor  Projekte  Mikrocontroller  PicoBasic