Programmation de l'ATtiny817

Une interface dite UPDI (Unified Program and Debug Interface) permet d'écrire l'exécutable dans la mémoire de programme de la puce. Malgré des ressemblances, elle est différente de l'interface PDI des ATXmega. L'UPDI est aussi différente de la TPI utilisée avec les AVRtinies comme l'ATtiny4. Comme la PDI, l'UPDI prend en charge le débogage, mais elle n'utilise qu'un fil ; à l'instar de la TPI, une impulsion de 12 V appliquée sur la broche de réinitialisation active le mode UPDI (la programmation d'un fusible le permet aussi). Le connecteur à six broches reste compatible avec les trois interfaces.

Avant d'adopter l'ATtiny817 et les autres membres de la famille, assurez-vous d'avoir l'outil adéquat pour les programmer. 

Atmel Studio 7 (AS7) reconnait la carte ATtiny817 Xplained Mini
Une fois lancé, AS7 détecte la carte dès qu'elle est connectée. L'IDE ouvre une page avec un lien vers la documentation. Vous pouvez aussi cliquer sur « New ASF Example Project » mais la page qui s'ouvre n'affiche rien. Si vous essayez « Update Kit Information » cela ne s'améliore pas, mais un nouveau lien vers le site Atmel Start apparaît. Si vous cliquez sur « Kit Userguide », restez calme : erreur 404 (page inaccessible).

Revenons sur le lien « Atmel Start ». Il ouvre une interface de configuration en ligne d'un projet similaire à celle de l'assistant ASF d'AS7. Vous pouvez sélectionner une carte et ses pilotes, essayer le multiplexeur de ports et le système d'événements, configurer les bibliothèques Middleware, et quand vous êtes satisfait, vous pouvez télécharger (exporter) le projet dans votre ordinateur, le ré-importer dans AS7, IAR Embedded Workbench ou l'utiliser comme fichier autonome avec makefile. Il est aussi posible d'exporter les trois variantes dans un « pack ». L'extension du fichier téléchargé ci-dessus est .atzip, mais en le renommant avec une extension .zip vous pourrez le décompacter avec un programme standard.

J'ai configuré un projet pour commander la LED utilisateur sur PC0, lire le bouton utilisateur sur PC5, et déclencher une action par les boutons QTouch sur PA6 et PA7. J'ai commencé par ajouter les pilotes nécessaires : le contrôleur tactile PTC, une USART car c'est toujours utile, et le système d'événements pour voir si j'arriverais à l'utiliser. L'assistant a créé un diagramme logique, mais sans le PTC. Dans la prévisualisation du code, je n'en ai pas non plus trouvé trace. Le seul endroit où il apparaît, est la documentation, mais le fichier associé est vide. En retournant à l'étape d'ajout d'un composant, j'ai trouvé une bibliothèque QTouch dans la partie Middleware. En l'ajoutant, un nouvel onglet « QTouch Configurator » est apparu.

J'ai alors pu créer des boutons et les connecter aux lignes PA6 et PA7 (il faut s'assurer qu'elles sont libres dans le configurateur PINMUX). Toujours aucune trace du PTC, admettons que cela soit normal. Dans le configurateur, j'ai créé des étiquettes pour led0 et user_button. Dans le configurateur Event System, j'ai connecté PC5 à la voie 2 (aucune autre possibilité) puis à la Event Output 0 (possibilités : 0, 1 & 2).
J'ai ensuite téléchargé ma configuration pour pouvoir l'utiliser ultérieurement puis exportée