Pentabug/AtmelStudio

Aus C3D2
Version vom 15. November 2016, 07:28 Uhr von Oisín (Diskussion | Beiträge) (erste Rohfassung (Formatierung folgt noch))
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Voraussetzungen

mySmartUSB light Stick installieren und Pentabug anschließen

  • Stick einstecken. Im Windows Geräte-Manger nachschauen, dass Treiber automatisch installiert wurden. Hier sieht man auch gleich, an welchen COM-Anschluss der Stick zu nutzen ist. Diesen merken wir uns. Sollte der Treiber nicht automatisch installiert werden, kann man die Installation auch noch einmal anstoßen. Die automatischen Treibersuchen von Windows findet den Treiber eigentlich alleine.
  • Der Pentabug bekommt den Strom von den Batterien. Diese werden angeschlossen und der Jumper auf BAT gesetzt. Das Verbindungskabel kann am mySmartUSB-Stick nur in eine Richtung eingesteckt werden. Am Pentabug kommt der Stecker so auf die 2x3 Pins, dass das rot markierte Kabel auf der Seite mit der 1 auf dem Pentabug sitzt.

PentaBug Firmware herunterladen

Damit man nicht sofort Bits im Pentabug schubsen muss, gibt es eine Firmware, die die Ansteuerung der auf dem Pentabug verbauten Teile etwas vereinfacht. Diese findet man in der aktuellen Version bei GitHub. Entweder mit einem Git-Client oder als ZIP-Paket von https://github.com/c3d2/pentabug laden und in ein lokales Verzeichnis, z.B. nach <Eigene Dateien>\Pentabug\Firmware\GitHub, entpacken.

AtmelStudio installieren

Für die Programmierung benutzen wird das kostenfreie AtmelStudio. Die aktuelle Version bekommt man unter http://www.atmel.com/tools/atmelstudio.aspx#download Bei der Installion reicht es aus, die AVR-8bit MCU Architektur zu installieren.

Pentabug im AtmelStudio bekannt machen

  • Nach dem Start des AtmelStudio:
    • Menü Tools -> Add target ...
    • Select Tool -> STK500
    • COM-Port des Sticks auswählen. Dieser ist in den Eigenschaften im Windows Geräte-Manager (s.o.) zu finden.
    • Apply
  • Nun schauen wir noch nach, ob die Kommunikation klapp:
    • Menü Tools -> Device Programming (Strg+Shift+P)
    • Tool -> STK500
    • Device -> ATmega88A
    • Interface -> ISP
    • Mit Apply wird Verbindung zum Pentabug aufgenommen.
      • Sollte das nicht klappen, wird nach einem Timeout ein Fehler gemeldet. Bei Erfolg sind im unteren Teil des Fensters Informationen zum Pentabug zu finden.

Erstes eigenes Testprojekt

  • AtmelStudio starten
  • Neues Projekt anlegen:
    • Menü File -> New -> Project (Ctrl+Shift+N)
    • Im Dialog New Project
      • GCC C Executable Project auswählen
      • Name -> ErstesTestprojekt
      • Location -> <Eigene Dateien>\Pentabug
      • Solution name -> EigenePentabugProjekte
        • OK
    • Im Dialog Device Selection
      • über die Suche nach 88a suchen -> es bleibt nur noch ein Eintrag übrig
        • Atmega88A anklicken
        • OK
    • Nun ist das Projekt erstellt.
      • Der Einfachheit halber wollen wir die Hauptmethode aus der Test-Firmware des Pentabug nutzen. Diese ermöglicht bereits das Laden von mehreren Programmen zwischen denen mit einem langen Tastendruck am Pentabug gewechselt werden kann. Deshalb benötigen wir die generierte Datein main.c nicht. Diese kann über das Kontextemenü im Solution Explorers gelöscht werden:
        • Remove -> Delete
    • Nun müssen in die Projekteinstellungen, um den Pentabug dem Projekt zuzuordnen:
      • Menü Project -> Properties (Alt + F7)
      • Tool -> Select debugger/programmer -> STK500
      • Interface -> ISP
    • Nun fügen wir dem Projekt die Firmware-Header-Dateien hinzu:
      • Menü Project -> Properties (Alt + F7)
        • Toolchain -> im Baum zu AVR/GNU C Compiler -> Directories -> rechts Schaltfläche Add Item -> Pfad zu <Eigene Dateien>\Pentabug\Firmware\GitHub\firmware\include auswählen
        • OK
    • Jetzt müssen noch die Pentabug-Firmware-Bibliotheken eingebunden werden:
      • rechts im Solution Explorer Kontextmenü auf ErstesTestprojekt -> Add -> Existing Item .. (Shift+Alt+A)
        • zum Verzeichnis <Eigene Dateien>\Pentabug\Firmware\GitHub\firmware\lib wechseln -> alle Dateien auswählen
        • den kleinen Pfeil auf der Add-Schaltfläche nutzen -> Add As Link
    • Ebenso müssen wir die bereits angesprochene Hauptmethode aus der Test-Firmware einbinden:
      • rechts im Solution Explorer Kontextmenü auf ErstesTestprojekt -> Add -> Existing Item .. (Shift+Alt+A)
        • zum Verzeichnis <Eigene Dateien>\Pentabug\Firmware\GitHub\firmware wechseln -> main.c auswählen
        • den kleinen Pfeil auf der Add-Schaltfläche nutzen -> Add As Link
    • Nun sollte sich das Projekt eigentlich bereits compilieren lassen. Das können wir auch gleich testen:
      • Menü Build -> Build Solution (F7)

Unser erstes Programm schreiben

  • Dazu benötigen wir eine eigene Quellcode-Datei:
    • rechts im Solution Explorer Kontextmenü auf ErstesTestprojekt -> Add -> New Item (Ctrl+Shift+A)
    • C File auswählen
    • Name: ErstesTestprogramm.c
    • Schaltfläche Add
  • Den grundlegenden Aufbau eines Programms kann man sich in den Beispielen unter <Eigene Dateien>\Pentabug\Firmware\GitHub\firmware\apps anschauen.
  • Wir wollen hier einfach nur die LED blinken lassen. Dazu benötigen wir den folgenden Code unserer ErstesTestprogramm.c-Datei:

  1. include <stdlib.h>
  1. include <pentabug/app.h>
  2. include <pentabug/hal.h>
  3. include <pentabug/matrix.h>

static void run(void) { led_on(RIGHT); wait_ms(100); led_on(LEFT); wait_ms(100); led_off(RIGHT); wait_ms(100); led_off(LEFT); wait_ms(100); }

REGISTER(run, NULL, NULL);

  • Das Projekt sollte sich immer noch compilieren lassen. Dies können wir mit F7 testen.

Programm auf Pentabug überspielen

  • Dazu müsst Ihr das Programm einfach nur ausführen:
    • Menü Debug -> Continue (F5)
    • Nun sollte das Programm auf den Pentabug überspielt werden und dieser sollte anfangen abwechselnd recht und links zu blinken.