Dies ist eine Kompilierung von ISP-Flash-Tools (In-Systems-Programme) für verschiedene Mikrocontroller, die alle als individuelle Python-Skripte geschrieben wurden. Ihr Single-Script-Format macht es unglaublich einfach, sie in jede Toolchain zu integrieren. Darüber hinaus können diese Tools über PIP installiert und dann als Befehlszeilenbefehle ausgeführt werden.
Damit diese Tools funktionieren, muss Python3 auf Ihrem System installiert werden. Befolgen Sie dazu diese Anweisungen. Zusätzlich müssen Pyusb, Pyserial und Pyhidapi installiert werden. Unter Linux (Debian-basiert) kann all dies mit den folgenden Befehlen erfolgen:
sudo apt install python3 python3-pip
pip install pyusb pyserial hid
Insbesondere Windows -Benutzer müssen auch Libusb installieren.
Mit diesem Tool können fast alle WCH-Mikrocontroller (CH5xx, CH6xx, CH32FXXX, CH32VXXX, CH32XXX und CH32LXXX), die einen Werksbausbootter (v2.xx) haben, über USB geblitzt werden.
Unter Linux müssen Sie keinen Treiber für den USB -Bootloader installieren. Standardmäßig enthält Linux jedoch nicht genügend Berechtigung, Ihren Code hochzuladen. Um dies zu beheben, öffnen Sie ein Terminal und führen Sie die folgenden Befehle aus:
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="4348", ATTR{idProduct}=="55e0", MODE="666"' | sudo tee /etc/udev/rules.d/99-ch55x.rules
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1a86", ATTR{idProduct}=="55e0", MODE="666"' | sudo tee -a /etc/udev/rules.d/99-ch55x.rules
sudo udevadm control --reload-rules
Für Windows benötigen Sie den CH372 -Treiber. Alternativ können Sie auch das Zadig -Tool verwenden, um den richtigen Treiber zu installieren. Klicken Sie hier auf "Optionen" -> "Liste aller Geräte" und wählen Sie das USB -Modul aus. Installieren Sie dann den Libusb-Win32-Treiber. Dazu muss die Platine verbunden sein und der Mikrocontroller muss sich im Bootloadermodus befinden.
Der Bootloader muss manuell für neue Uploads gestartet werden. Dazu muss der Vorstand zunächst vom USB -Anschluss und allen Spannungsquellen getrennt werden. Drücken Sie nun die Kartaste und halten Sie sie drücken, während Sie die Platine wieder mit dem USB -Anschluss Ihres PCs anschließen. Der Chip beginnt jetzt im Bootloader -Modus, die Boot -Taste kann veröffentlicht und neue Firmware über USB hochgeladen werden. Alternativ können Sie die mit dem USB -Anschluss angeschlossene Platine hinterlassen, die Taste gedrückt halten, die Taste zurücksetzen und dann die Taste des Starts loslassen, um den Bootloader -Modus einzugeben. Wenn auf der Platine keine Boot -Taste vorhanden ist, sehen Sie sich das Datenblatt an, um herauszufinden, welche Pin gezogen werden muss, um auf welchen Spannungsebene für den Mikrocontroller in den Startmodus gelangen müssen.
Führen Sie nun den folgenden Befehl aus (Beispiel):
python3 chprog.py firmware.bin
Schauen Sie sich hier an.
Mit diesem Tool können die WCH RISC-V-Mikrocontroller CH32LXXX, CH32VXXX und CH32XXXX mit der WCH-Linke oder WCH-Linkw (achten Sie auf die "e" oder "w" im Namen) über seine serielle Debug-Grenzfläche programmiert werden.
Um den WCH-Link unter Linux zu verwenden, müssen Sie im Voraus Zugriffsberechtigungen erteilen, indem Sie die folgenden Befehle ausführen:
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1a86", ATTR{idProduct}=="8010", MODE="666"' | sudo tee /etc/udev/rules.d/99-WCH-LinkE.rules
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1a86", ATTR{idProduct}=="8012", MODE="666"' | sudo tee -a /etc/udev/rules.d/99-WCH-LinkE.rules
sudo udevadm control --reload-rules
Wenn Sie unter Windows den WinusB -Treiber über die WCH -Schnittstelle 1 mit dem Zadig -Tool installieren können.
Um Firmware hochzuladen, sollten Sie die folgenden Verbindungen zum WCH-Link herstellen (SWCLK ist nicht auf dem CH32V003 vorhanden und muss daher nicht verbunden sein):
WCH-Link RISC-V MCU
+------+ +--------+
| SWCLK| ---> |SWCLK |
| SWDIO| <--> |SWDIO |
| GND| ---> |GND |
| 3V3| ---> |VDD |
+------+ +--------+
Wenn die blaue LED auf dem WCH-Link bleibt, sobald sie an den USB-Anschluss angeschlossen ist, bedeutet dies, dass sich das Gerät derzeit im Armmodus befindet und zunächst in den RISC-V-Modus umgestellt werden muss. Es gibt ein paar Möglichkeiten, dies zu erreichen:
Weitere Informationen finden Sie im WCH-Link-Benutzerhandbuch.
Usage: rvprog.py [-h] [-a] [-v] [-b] [-u] [-l] [-e] [-G] [-R] [-f FLASH]
Optional arguments:
-h, --help show help message and exit
-a, --armmode switch WCH-Link to ARM mode
-v, --rvmode switch WCH-Link to RISC-V mode
-b, --unbrick unbrick chip (power cycle erase)
-u, --unlock unlock chip (remove read protection)
-l, --lock lock chip (set read protection)
-e, --erase perform a whole chip erase
-G, --pingpio make nRST pin a GPIO pin (CH32V003 only)
-R, --pinreset make nRST pin a reset pin (CH32V003 only)
-f FLASH, --flash FLASH write BIN file to flash
Example:
python3 rvprog.py -f firmware.bin
Schauen Sie sich hier an.
Mit diesem Tool können PUYA-Mikrocontroller der Serie PY32F0XX (und möglicherweise andere PY32) über einen einfachen USB-zu-serialen Konverter unter Verwendung des integrierten Fabrik-integrierten eingebetteten UART-Bootloaders blinkt werden.
Bei Bedarf muss ein Treiber für den verwendeten USB-zu-Serial-Konverter installiert werden.
Schließen Sie Ihren USB-zu-Serial-Konverter wie folgt an Ihren PY32F0XX MCU an:
USB2SERIAL PY32F0xx
+--------+ +-------------------+
| RXD| <--- |PA2 or PA9 or PA14|
| TXD| ---> |PA3 or PA10 or PA15|
| VDD| ---> |VDD |
| GND| ---> |GND |
+--------+ +-------------------+
Stellen Sie Ihre MCU mithilfe einer der folgenden Methoden auf den Bootloader -Modus fest:
Usage: puyaisp.py [-h] [-u] [-l] [-e] [-o] [-G] [-R] [-f FLASH]
Optional arguments:
-h, --help show this help message and exit
-u, --unlock unlock chip (remove read protection)
-l, --lock lock chip (set read protection)
-e, --erase perform chip erase (implied with -f)
-o, --rstoption reset option bytes
-G, --nrstgpio make nRST pin a GPIO pin
-R, --nrstreset make nRST pin a RESET pin
-f FLASH, --flash FLASH write BIN file to flash and verify
Example:
python3 puyaisp.py -f firmware.bin
Schauen Sie sich hier an.
Mit diesem Tool können STC8G/8H-Mikrocontroller über einen einfachen USB-zu-seriellen Konverter unter Verwendung des integrierten Fabrik-in-eingebetteten UART-Bootloaders flashen.
Bei Bedarf muss ein Treiber für den verwendeten USB-zu-Serial-Konverter installiert werden.
USB2SERIAL STC8G/8H
+--------+ +------+
| VCC| --/ --> |VCC | interruptible (for power cycle)
| RXD| --|R|-- |P3.1 | resistor (100R - 1000R)
| TXD| --|<|-- |P3.0 | diode (e.g. 1N5819)
| GND| ------- |GND | common ground
+--------+ +------+
Usage: stc8isp.py [-h] [-p PORT] [-t TRIM] [-e] [-f FLASH]
Optional arguments:
-h, --help show this help message and exit
-p PORT, --port PORT set COM port (default: /dev/ttyUSB0)
-t TRIM, --trim TRIM trim IRC to frequency in Hz (128000 - 36000000)
-e, --erase perform chip erase (implied with -f)
-f FLASH, --flash FLASH write BIN file to flash
Example:
python3 stc8isp.py -p /dev/ttyUSB0 -t 24000000 -f firmware.bin
Schauen Sie sich hier an.
Mit diesem Tool können Sie STC8H8KXXU-Mikrocontroller über ihre USB-Schnittstelle unter Verwendung des vorinstallierten eingebetteten USB-Bootloaders über die USB-Schnittstelle flashen.
Da der USB -Bootloader als HID (Human Interface -Gerät) fungiert, müssen Treiber nicht installiert werden. Linux gewährt jedoch zunächst keine ausreichenden Berechtigungen, um auf den Bootloader zuzugreifen. Um dieses Problem zu beheben, öffnen Sie ein Terminal und führen Sie die folgenden Befehle aus:
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="34bf", ATTR{idProduct}=="1001", MODE="666"' | sudo tee /etc/udev/rules.d/99-STC-ISP.rules
sudo udevadm control --reload-rules
Um neue Uploads zu initiieren, muss der Bootloader manuell gestartet werden. Beginnen Sie, indem Sie das Board vom USB -Anschluss entfernen und alle Stromquellen trennen. Halten Sie dann die Starttaste gedrückt, während Sie die Platine wieder mit dem USB -Anschluss Ihres PC anschließen. Diese Aktion löst den Chip aus, um den Bootloader -Modus einzugeben. Sobald Sie in diesem Modus die Boot -Taste veröffentlichen und über USB neue Firmware hochladen können.
Wenn Ihr Board keine Boot -Taste hat, müssen Sie Pin P3.2 mit dem Anschluss an den gleichen Effekt kurzen Pin P3.2 haben.
Usage: stc8usb.py [-h] [-t TRIM] [-e] [-f FLASH]
Optional arguments:
-h, --help show this help message and exit
-t TRIM, --trim TRIM set MCU system frequency
-e, --erase perform chip erase (implied with -f)
-f FLASH, --flash FLASH write BIN file to flash
Example:
python3 stc8usb.py -t 24000000 -f firmware.bin
Schauen Sie sich hier an.
Mit diesem Tool können einige Einstiegs-STM32-Mikrocontroller über einen einfachen USB-zu-serialen Konverter unter Verwendung des integrierten UART-Bootloaders von Fabry-in integriert werden. Derzeit unterstützt es die folgenden Geräte:
Bei Bedarf muss ein Treiber für den verwendeten USB-zu-Serial-Konverter installiert werden.
Schließen Sie Ihren USB-zu-Serial-Konverter wie folgt an Ihre STM32-MCU an:
USB2SERIAL STM32C011/031
+--------+ +------------+
| RXD| <--- |PA9 (PA11) |
| TXD| ---> |PA10 (PA12) |
| 3V3| ---> |VDD (3V3) |
| GND| ---> |GND |
+--------+ +------------+
USB2SERIAL STM32F03xx4/6
+--------+ +------------+
| RXD| <--- |PA9 or PA14|
| TXD| ---> |PA10 or PA15|
| 3V3| ---> |VDD (3V3) |
| GND| ---> |GND |
+--------+ +------------+
USB2SERIAL STM32G03x/04x
+--------+ +------------+
| RXD| <--- |PA2 or PA9 |
| TXD| ---> |PA3 or PA10 |
| 3V3| ---> |VDD (3V3) |
| GND| ---> |GND |
+--------+ +------------+
USB2SERIAL STM32L01x/02x
+--------+ +------------+
| RXD| <--- |PA2 or PA9 |
| TXD| ---> |PA3 or PA10 |
| 3V3| ---> |VDD (3V3) |
| GND| ---> |GND |
+--------+ +------------+
Stellen Sie Ihre MCU mithilfe einer der folgenden Methoden auf den Boot -Modus ein:
Bei STM32G03X/04X -Mikrocontrollern ist der BOOT0 -Pin zunächst deaktiviert. Wenn der Chip brandneu ist oder der Haupt -Flash -Speicher gelöscht ist, ist dies kein Problem, da der eingebettete Bootloader automatisch einnimmt. Durch die Verwendung des STM32isp -Tools wird der BOOT0 -Pin für die spätere Verwendung aktiviert. Wenn der Chip jedoch zuvor mit einem anderen Software -Tool programmiert wurde, kann der Bootloader möglicherweise nicht mehr über den Boot0 -Pin zugegriffen werden. In solchen Fällen muss das NBOOT_SEL-Bit in den Benutzeroption Bytes unter Verwendung eines SWD-Programmierers wie ST-Link und der entsprechenden Software auf 0 gesetzt werden.
Usage: stm32isp.py [-h] [-u] [-l] [-e] [-f FLASH]
Optional arguments:
-h, --help show this help message and exit
-u, --unlock unlock chip (remove read protection)
-l, --lock lock chip (set read protection)
-e, --erase perform chip erase (implied with -f)
-f FLASH, --flash FLASH write BIN file to flash and verify
Example:
python3 stm32isp.py -f firmware.bin
Schauen Sie sich hier an.
Mit diesem Tool können die TinyAVR-Serien 0, 1 und 2 Mikrocontroller mit einem USB-zu-seriellen Konverter programmiert werden, der auf eine spezielle Weise mit dem Updi-Pin (auch als SerialUpDI bezeichnet) verbunden ist. Weitere Informationen finden Sie hier.
Bei Bedarf muss ein Treiber für den verwendeten USB-zu-Serial-Konverter installiert werden.
Schließen Sie den USB-zu-Serial-Konverter über USB an den PC und über die nachstehend beschriebene Schaltung mit dem Updi-Pin des Mikrocontrollers an.
USB2SERIAL tinyAVR
+--------+ +-----------+
| RXD| <------------+---> |UPDI (PA0) |
| | | | |
| TXD| ---|1kOhm|---+ | |
| | | |
| VDD| -----------------> |VDD |
| GND| -----------------> |GND |
+--------+ +-----------+
Alternativ kann ein vormontierter Serialupdi-Programmierer verwendet werden.
Usage: tinyupdi.py [-h] [-d DEVICE] [-e] [-f FLASH] [-fs [FUSES [FUSES ...]]]
Optional arguments:
-h, --help show help message and exit
-d, --device set target device (if not set, it will be auto-detected)
-e, --erase perform a chip erase (implied with --flash)
-f FLASH, --flash FLASH BIN file to flash
-fs [FUSES [FUSES ...]], --fuses [FUSES [FUSES ...]]
fuses to set (syntax: fuse_nr:0xvalue)
-t TRIM, --trim TRIM configure oscillator for given frequency (set fuse 2)
Example:
python3 tinyupdi.py -f firmware.bin -fs 6:0x04 7:0x00 8:0x00 -t 8000000
Schauen Sie sich hier an.