Beispielprojekt mit Demoprogramm und Bootloader für das DMM-Board
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Ilya Elenskiy 1d9fab3c7d README on basic usage 6 years ago
boards PlatformIO Demo version, Test example 6 years ago
include PlatformIO Demo version, Test example 6 years ago
lib PlatformIO Demo version, Test example 6 years ago
src PlatformIO Demo version, Test example 6 years ago
test PlatformIO Demo version, Test example 6 years ago
.gitignore PlatformIO Demo version, Test example 6 years ago
README.md README on basic usage 6 years ago
platformio.ini PlatformIO Demo version, Test example 6 years ago

README.md

DMM Demo

Beispielprojekt zur Demonstration der wesentlichen Funktionen des DMM-Boards. Wird auch zur Installation des Bootloaders und Test nach der Inbetriebnahme eingesetzt.

Anleitung

Build-System und Entwicklungsumgebung

Als plattformübergreifendes Build-System Dient das PlatformIO. Diese steht sowohl als Kommandozeilen-Tool, als auch als Erweiterung zum Visual Studio Code. (auch unter Linux und MacOS verfügbar!)

Nutzt man das VSCode, so können nach der Installation der Erweiterung die unten aufgeführten Befehle auch ohne Installation der PIO im Betriebssystem in den Terminals innerhalb der IDE genutzt werden.

Nur Linux: zur Programmierung des Bootloaders mit JTAGICE muss dieser für nicht-root Nutzer per udev-Regel freigegeben werden. Erstelle dazu Datei /etc/udev/rules.d/99-jtagice3.rules mit:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2140", MODE="0666"

Auschecken und bauen

Es sollte sichergestellt sein, dass Git installiert und der eigene SSH-Schlüssel im GitLab-Profil hinterlegt ist. Für Git-Anfänger finden sich im Internet zahlreiche Anleitungen, zum Beispiel diese.

GUI: VSCode unterstützt Git direkt und kann nach der Einrichtung als GUI genutzt werden.

Auschecken:

$ git clone git@teach.emg.ing.tu-bs.de:dmm/dmm-demo.git
$ cd dmm-demo 

Es sind zwei PlatformIO-Environments definiert. release wird standardmäßig genutzt und ist auf die Programmierung per Bootloader ausgelegt. debug wird für das Aufspielen des Bootloaders oder Debugging mittels JTAGICE3 genutzt.

Bauen von release:

$ pio run

Bauen von debug:

$ pio run -e debug

Dabei werden neben der Toolchain automatisch die für DMM-Projekte vorgesehenen Bibliotheken in den Ordner dmm-demo/depends heruntergeladen.

Programmierung & Nutzung

GUI: die aufgeführten Befehle können auch aus dem PlatformIO-Toolbar des VSCode per Mausklick ausgeführt werden.

Aufspielen des Bootloaders

Auf einem neuen Board muss zunächst mittels JTAGICE3 ein Bootloader aufgespielt werden. Dazu wird es mit dem JTAG-Header verbunden (Polung beachten!).

$ pio run -t bootloader -e debug

Aufspielen des Programms

Das Board muss per USB verbunden und Bootloader gestarted werden. Zum Start des Bootloaders den Joystick in Richtung unten halten, Reset-Taste drücken und den Joystick loslassen. Die Aktivierung des Bootloaders erkennt man an zwei leichtenden roten LEDs auf dem Board

$ pio run -t upload

Anschließend Reset-Taste drücken um das Programm zu starten.

UART-Kommunikation

Ein Teil des Demos beschäftigt sich mit Kommunikation über einen virtuellen SerialPort via USB. Der COMx (Windows) oder /dev/ttyUSBx (Linux) Port wird von PlattformIO automatisch erkannt. Dies geschieht anhand des hwid Parameters unter boards/emgdmm_v3.json, der den VID/PID des FTDI-Chips des DMM-Boards angibt. Ein Terminal kann somit einfach geöffnet werden:

pio device monitor

Beim Drücken des Joystick im entsprechenden Teil des Demos wird nun eine Meldung angezeigt.

Unit-Test

Die Demo enthält im Ordner tests einen Beispiel zur Ausführung von Unit-Tests auf dem Mikrocontroller. Dazu muss wie oben beschrieben der Bootloader aktiviert werden.

$ pio test

Nach dem Befehl wird eine Firmware auf das Board heruntergeladen, die bei der Ausführung per UART (wie auch bei pio device monitor) die Ergebnisse der Tests im Terminal ausgibt.