Die Programmierung des ATtiny817...

...besteht darin, den ausführbaren Code in den Programmspeicher des Chips zu bugsieren. Dies erledigt man mit Hilfe eines sogenannten UPDI (Unified Program and Debug Interface). Das erinnert an PDI bei den MCUs der ATxmega-Serie, ist aber nicht das Gleiche. UPDI unterscheidet sich auch von TPI der kleinen AVRtinies wie etwa dem ATtiny4. Ähnlich wie PDI unterstützt UPDI das Debugging, allerdings mit nur einer Leitung. Wie TPI führt ein 12-V-Impuls am Reset-Pin zur Aktivierung des UPDI-Modus (er kann auch durch Setzen einer Fuse aktiviert werden). Der typische sechspolige Anschluss bleibt kompatibel.

Bevor man sich ATtiny817 etc. anschafft und loslegt, sollte man sich aber um das passende Tool zur Programmierung kümmern.

Atmel Studio 7 erkennt das ATtiny817 Xplained Mini
Startet man AS7 und verbindet das Board mit dem PC, wird es von der IDE erkannt, und es öffnet sich eine Seite mit Links zur Dokumentation. Man kann auch auf „New ASF Example Project“ klicken, aber das sich öffnende Fenster zeigt nichts an. Selbst ein Klick auf „Update Kit Information“ macht es nicht besser, aber er erscheint dann immerhin ein Link zur Webseite Atmel Start. Ein Klick auf „Kit Userguide“ zieht die ärgerliche Meldung „404 Not Found“ nach sich. 



Folgt man Atmels Start-Link, führt das zu einem Interface, wo man ein Projekt so konfigurieren kann wie beim ASF-Wizard von AS7, nur eben online. Hier kann man das Board samt Treibern auswählen und mit dem Port-Multiplexer oder dem Event-System spielen. Man kann die Middleware-Libraries konfigurieren und anschließend das Projekt auf den PC exportieren und wieder in AS7 oder IAR Embedded Workbench importieren, bzw. „stand-alone“ per Makefile damit operieren. Man kann auch alle drei Varianten in einem „pack“ exportieren. Die heruntergeladene Datei hat dann die Extension ATZIP. Man kann sie aber auch als ZIP-Datei umbenennen und ganz normal entpacken.

Ich habe mir ein Projekt zusammengestellt, um die User-LED an PC0 zu steuern, den Taster an PC5 einzulesen und auf die beiden QTouch-Pads an PA6 und PA7 abzufragen. Zunächst habe ich die Treiber für das Gewünschte hinzugefügt: den P-Touch-Controller, ein USART ist immer nützlich und das Event-System, um herauszufinden, was ich damit machen kann. Der Wizard erstellt hierfür ein Block-Diagramm, aber der PTC war nicht enthalten. Auch in der Code-Vorschau zeigte sich keine Spur vom PTC. Nur in der Dokumentation gab es einen Hinweis, der zu einer leeren Datei führte. Zurück beim Schritt „Add Component“ fand ich die QTouch-Library in der Middleware-Sektion. Das Hinzufügen brachte den neuen Tab „QTouch Configurator“. Damit konnte ich die Touch-Tasten kreieren und mit PA6 und PA7 verbinden (dazu müssen die Pins im „PINMUX Configurator“ frei sein). Doch immer noch keine Spur vom PTC – vermutlich ist das normal. Per PINMUX Configurator erstellte ich die Labels für „led0“ und „user_button“. Im Event System Configurator verband ich PC5 mit Channel 2 (die einzige Möglichkeit) und mit Event Output 0 (Optionen: 0, 1 & 2).



Für spätere Verwendung sicherte ich die Konfiguration und exportierte das Projekt für Atmel Studio.