====== MicroPython ======
Ich möchte mich mal kurz mit MicroPython beschäftigen. Deshalb habe ich mir vom Chinesen das unten aufgeführte PBYv1.1 Board welches einen STM32F405 beherbergt gekauft.
===== Funktionstest =====
Nach dem Anstecken an den Mikro-USB meldet sich die Platine als USB-Laufwerk an. Damit man die virtuelle serielle Schnittstellen nutzen kann, muss man im Gerätemanager den Treiber aktualisieren mit der auf dem USB-Laufwerk bereitgestellte Datei: **pybcdc.inf**
Der migelieferte Treiber verursacht unter folgenden Fehler:\\
**Die INF-Datei ... enthält keine Digitalsignaturinformationnen**
Da ab Windows 8 normalerweise nur Treiber mit einer digitalen Signatur installierte werden können. Abhilfe siehe folgendes Dokument:\\
[[https://micropython.org/resources/Micro-Python-Windows-setup.pdf|Micro-Python-Windows-Setup.pdf]]
Nach der Installation des Treibers (mit gedrückter Shift-Taste Neustart auswählen , und dann bei Adavanced mit F7 nach dem Neustart..)
meldet sich das Board im Terminal (aber erst einem Board reset):
MicroPython v1.9.4-85-gdf9b7e8f on 2018-05-24; PYBv1.1 with STM32F405RG
Type "help()" for more information.
>>>
Soweit so gut, allerdings konnte ich mit meinem übliche Terminal Programm keine Befehl senden, bzw. ich bekam keine Antworten zurück. (Handshaking RTS/CTS aktivieren dann gehts auch mit Terminal)
Erst nachdem ich PuTTY ( 115200 8N1 ) verwendet hatte, konnte ich mit dem Board interagieren.
Und hier noch ein kurzes Demo des Beschleunigungssensors:
import pyb
accel = pyb.Accel()
while True:
print(accel.filtered_xyz())
pyb.delay(250)
===== Firmware Update =====
Brücke zwischen +3V3 und DFU-Pin (boot0) setzen und dann mit USB verbinden.
Wenn der Bootloader aktiviert ist leuchten die rote, gelb und blaue LED dunkel.
Als erstes mal eine Sicherung durchführen (512kByte sollten reichen):
Sicherung erstellen mit (Upload):
dfu-util.exe -a 0 -s 0x08000000:524288 -U test_orig_512k.bin
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Upload [=========================] 100% 524288 bytes
Upload done.
und jetzt die aktuellste Firmware (Stand 02.01.2018) auf spielen:
dfu-util.exe -a 0 -D pybv11-20190102-v1.9.4-771-gb33f108cd.dfu
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Match vendor ID from file: 0483
Match product ID from file: df11
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
file contains 1 DFU images
parsing DFU image 1
image for alternate setting 0, (2 elements, total size = 331280)
parsing element 1, address = 0x08000000, size = 14720
Download [=========================] 100% 14720 bytes
Download done.
parsing element 2, address = 0x08020000, size = 316544
Download [=========================] 100% 316544 bytes
Download done.
done parsing DfuSe file
Das Modul meldet sich dann mit:MicroPython v1.9.4-771-gb33f108cd on 2019-01-02; PYBv1.1 with STM32F405RG
Type "help()" for more information.
>>>
Hmm meine modifizierte **main.py** blieb erhalten und wurde nicht zurückgesetzt.
**Achtung:** Jetzt funktioniert auch mein standard Terminal wieder, ohne das das Handshaking aktiviert ist. (muss nun wieder entfernt werden).
===== SD-Karte =====
Kurzes Beispiel, wie man sich den Inhalt der SD-Karte anschauen kann (root Verzeichnis)
import os
sd = pyb.SD
#sd = pyb.SDCard()
os.mount(sd, '/sd')
os.listdir('/sd')
os.umount('/sd')
===== Tipps =====
* STR+E : aktiviert den Paste Modus (das automatische Einrücke wird abgeschaltet)
===== Links =====
* [[https://micropython.org/|Mikropython]]
* [[https://store.micropython.org/product/PYBv1.1|PYBv1.1]]
* [[https://learn.sparkfun.com/tutorials/how-to-load-micropython-on-a-microcontroller-board/pyboard|Update pybV1.1]]
* [[https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html|DFU-Tools ST - V3.0.6]]