Um ein Programm für einen Mikrocontroller erstellen oder bearbeiten zu können, bedarf es eines Texteditors,
der reine Ascii-Texte erstellt. Hierfür empfiehlt der Autor dieses Textes zum Einen Geany für den
Desktop und zum anderen CIDE für die Konsole. Geany kann entweder aus dem Web
heruntergeladen und compiliert werden, oder es kann, wie auch CIDE von hier als Binary gedownloaded werden:
Leider ist der Autor dieses Cores nicht namentlich genannt und deshalb geht von hier aus ein Dank an den
unbekannten Ersteller des Cores.
Installieren des Cores für Arduino Legacy IDE 1.8.x
|
Zum Installieren des Cores starten sie die Arduino-IDE und wählen Sie unter Datei den Punkt "Voreinstellungen"
aus. Ein Fenster öffnet sich und dort müssen sie unter:
Zusätzliche Boardverwalter URLs
|
Die Adresse des Cores für den CH32V003 eintragen:
https://github.com/openwch/board_manager_files/raw/main/package_ch32v_index.json
Nachdem dieses geschehen ist, öffnen sie unter dem Menüpunkt "Werkzeuge => Board => Boardverwalter" das Dialogfenster
des Boardverwalters und geben im Suchfeld "ch32" ein:
Klicken sie auf "Installieren". Dieser Vorgang kann etwas dauern, da Arduino nicht nur den Core, sonden die gesamte
Toolchain-Kette (inklusive Compiler) installiert.
Nachdem der Core installiert ist, können wir zwar Programme für einen CH32V003 erstellen und kompilieren, dieses
jedoch mit Einschränkungen:
-
der Core ist für die originalen Evaluationboards gemacht, die auf dem Board einen externen Quarz als Taktgeber
haben. Aus diesem Grund initialisiert Arduino das Programm eben für einen externen Quarz. Da dieser an einem
blanken Chip nicht vorhanden ist, läuft der Chip nur mit einem reduziertem Takt und u.a. stimmen bspw.
Verzögerungszeiten bei "delay" dann nicht.
-
Arduino kann nach dieser Installation den Chip nur mit einem originalen WCH-LinkE Programmer flashen, aber
arbeitet nicht mit unserem Selbstbauprogrammer zusammen.
Um diese beiden Einschränkungen zu beheben, reden wir der Arduino-IDE gut zu und patchen diese.
platform.txt und boards.txt patchen
|
Öffnen sie hierzu auf dem Desktop ihren persönlichen Ordner und aktivieren sie unter "Ansicht" den Punkt
"Verborgene Dateien" anzeigen. Arduino hat seine Konfiguration in einem versteckten Ordner namentlich ./arduino15 abgelegt).
Dort klicken sie sich zu dem Pfad:
/home/benutzername/.arduino15/packages/WCH/hardware/ch32v/1.0.4/
vor (oder geben diesen manuell ein).
Hier müssen 2 Dateien bearbeitet werden: platform.txt und boards.txt.
Klicken sie hierzu mit der rechten Mousetaste auf platform.txt und wählen sie im aufgehenden Fenster
"Mit <<geany>> öffnen" aus (oder dem von ihnen präferierten Texteditor). Fügen sie am Ende
der Datei folgende Einträge hinzu:
## minichlink
tools.minichlink.path={runtime.tools.openocd-1.0.0.path}/bin/
tools.minichlink.cmd=minichlink
tools.minichlink.upload.params.verbose=
tools.minichlink.upload.params.quiet=
tools.minichlink.upload.config=
tools.minichlink.upload.pattern="{path}{cmd}" -w {build.path}/{build.project_name}.bin flash -b
Speichern sie die Datei ab und öffnen sie die Datei boards.txt ebenfalls in Geany. Dort suchen sie nach
dem Text "Upload menu". Die Datei hat zwar für unterschiedliche Chips mehrere "Upload menu"
Zeilen, dass sie an der richtigen Stelle sind erkennen sie daran, dass die Zeilen mit
CH32V00x_EVT.menu.upload_method.
beginnen. Geben sie unterhalb von
CH32V00x_EVT.menu.upload_method.swdMethod.upload.tool=WCH_linkE
folgende Zeilen ein:
CH32V00x_EVT.menu.upload_method.minichlink=minichlink
CH32V00x_EVT.menu.upload_method.minichlink.upload.protocol=
CH32V00x_EVT.menu.upload_method.minichlink.upload.options=
CH32V00x_EVT.menu.upload_method.minichlink.upload.tool=minichlink
Die IDE von Arduino hat jetzt Menüeinträge zur Auswahl unseres Flasherprogramms für den Selbstbauprogrammer.
Das Flasherprogramm selbst muß jetzt in den Ordner:
/home/benutzername/.arduino15/packages/WCH/tools/openocd/1.0.0/bin/
kopiert werden.
Klicken sie sich zu diesem Verzeichnis vor und öffnen sie ein zweites Dateifenster. Wechseln sie in das Verzeichnis,
das sie beim Auspacken des Archives gewählt haben und dort in den Ordner minichlink.
Von dort kopieren sie die beiden Dateien:
- minichlink (die ausführbare Datei)
- minichlink.so
in den oben aufgeführten Ordner. Arduino kann nun über den Selbstbauprogrammer einen Chip flashen.
Arduino auf internen Clock patchen
|
Als letzten Schritt muß Arduino mitgeteilt werden, dass es sich beim Mikrocontroller um einen Chip ohne
externen Quarz handelt. Hierfür muß im Ordner
/home/benutzername/.arduino15/packages/WCH/hardware/ch32v/1.0.4/system/CH32V00x/USER/
die Datei
bearbeitet werden.
In dieser Datei werden Defines deklariert, die die Takteinstellung des Chips vorgeben. Eine der Zeilen lautet:
//#define SYSCLK_FREQ_48MHZ_HSI 48000000
Diese Zeile ist zu "entkommentieren" nach (die beiden Schrägstriche entfernen):
#define SYSCLK_FREQ_48MHZ_HSI 48000000
Die Zeile
#define SYSCLK_FREQ_48MHz_HSE 48000000
ist "auszukommentieren" aus
//#define SYSCLK_FREQ_48MHz_HSE 48000000
Speichern sie die Datei ab, beenden sie (falls gestartet) Arduino und starten sie Arduino neu.
Geschafft, sie können nun einen CH32V003 aus Arduino heraus programmieren und flashen.
Arduino-Pinout des CH32V003
|
Damit sie wissen, welcher Pin wo zu finden ist und unter welchem Namen Arduino die Pins kennt, gibt es hier
noch das Pinout zu den Chips. Sie können die Pins unter dem Arduinonamen ansprechen (orangene Farbe) oder
auch mit dem Namen des Chips, bspw. PD5 (grüne Farbe)
|