Padauk Programmer FW
Padauk Programmer FW - Padauk prosessorien ohjelmointilaitteen Firmware
{{{kuvateksti}}}
| }}Padauk Programmer FW
{{#if: | | }} {{#if: | | }}Tyyppi: | Ohjelmointilaite, USB |
Tekijät: | Martti Paalanen, Matti Nummi |
Aloitettu: | 2020 |
Tila: | valmis |
GitHub: | [{{{github}}}] |
URL: | [{{{url}}}] |
Ohjelman perusversio
Padauk ohjelmoitilaitteen ohjelman (firmware/FW) perusversio on free-pdk version 1.3 suora kopio. Ohjelmasta on Device Firmware Upgrade (DFU) versio EASYPDKPROG.dfu
Padauk Programmer on ohjelmoitavissa Device Firmware Upgrade (DFU) protokollalla. DFU:lla ohjelma voidaan ladata laitteelle, joka tukee DFU:ta, suoraan USB-liitännän kautta ilman ohjelmointilaitteita. STM32 prosessorit tukevat DFU:ta bootloaderin yhteydessä.
DFU käyttöönotto
DFU:n käyttöä varten ohjelmalle dfu-util, Linux, Mac ja Win10 ympäristöissä tarvitaan omat valmistelut, jotta DFU - lataus onnistuu. Ohjeet löytyvät mm. dfu-util:n sivulta
DFU käyttöönotto Linux:lla
Yleisimmillä Linux jakeluilla dfu-util on ladattavissa normaaleilla ohjelmistojen asennus/päivitystoimenpiteillä.
Mahdollisesti libusb pitää myös asentaa. Joskus libusb-1.0-0-dev on tarpeen.
Esimerkiksi Ubuntu/Mint jakeluissa komentot ovat:
sudo apt-get install libusb-1.0-0
#tai
sudo apt-get install libusb-1.0-0-dev
# dfu-util:
sudo apt-get install dfu-util
def-util edellyttää sudo/root oikeuksia, mutta tämän voi ohittaa.
Kopioi tiedosto 70-stm32vcp.rules hakemistoon /etc/udev/rules.d ja uudelleenkäynnistä udev manager seuraavasti:
sudo bash -c 'cp 70-stm32vcp.rules /etc/udev/rules.d/ ; udevadm control --reload'
DFU käyttöönotto Win10:llä
Käyttöönotosta löytyy ohjeita netistä, esimerkiksi Scott Hanselman
Ohjelman Windows versio löytyy osoitteesta http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip
Käyttöönotto vaatinee seuraavat askeleet:
- Asenna dfu-util ohjelma purkamalla paketin dfu-util-0.9-win64.zip dfu-util.
- Asenna ohjelma zadig-2.5.exe tallentamalla tiedosto zadic-2.5.exe.
- Paina ensin boot-painike pohjaan ja kytke Padauk Programmer USB-kaapelilla.
- Kun olet kytkenyt usb-kaapelin, vapauta boot-painike.
- Käynnista Zadic - ohjelma.
- Valitse valikosta Options -> List All Devices
- Valitse ylimmästä valintalistasta "STM32 BOOTLOADER"
- Käynnistä asennus painikkeesta "Replace Driver"
DFU käyttöönotto MAC:llä
Minulle ei ole MAC-ympäristöä käytössäni.
http://dfu-util.sourceforge.net/ ohjeistaa asennuksen seuraavasti:
Mac OS X users can also get dfu-util from Homebrew with "brew install dfu-util" or from MacPorts.
Ohjelman toimivuuden voi tarkistaa esimerkiksi komennolla dfu-util -V:
./dfu-util -V
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/
Padauk Programmer ohjelman lataus dfu-util:lla
- Aloita siten, että Padauk Programmer on kytketty irti USB:sta
- Paina boot - painiketta ja kytke USB
- Kun USB on kytketty, vapauta boot - painike
- Käynnistä dfu-util:
./dfu-util -d 0483:df11 -a "@Internal Flash /0x08000000/064*0002Kg" --dfuse-address 0x08000000 -D EASYPDKPROG.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/
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 = dfuERROR, status = 10
dfuERROR, clearing status
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 "
Downloading to address = 0x08000000, size = 33664
Download [=========================] 100% 33664 bytes
Download done.
File downloaded successfully
- Irroita Padauk Programmer USB:sta. Ladattu koodi käynnistyy vasta USB:n uudelleenkytkennässä.
Padauk Programmer FW - lähdekoodit
Free-PDK lähdekoodit Makefile:llä
Ohjelman lähdekoodit on saatavilla Free PDK sivuilta osoitteesta: https://github.com/free-pdk/easy-pdk-programmer-software/tree/master/Firmware
Lähdekoodit perustuvat STM32CubeMX kirjastoille. Free PDK lähdekoodi sisältää makefile:n kääntämistä varten.
Asenna GNU Arm Embedded Toolchain kääntämistä varten:
Lataa käyttistäsi vastaava paketti osoitteesta: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
Pura paketti esim. työhakemistoosi.
Muokkaa makefile:ssa kääntäjän polkuun tämä hakemisto:
GCC_PATH = ./gcc-arm-none-eabi-9-2020-q2-major/bin
Mikäli sinulla on make - komento käytettävissäsi, voi kääntää sillä lähdekoodit dfu-tiedostoksi.
Free-PDK lähdekoodit STM32CubeIDE:llä
Muokkasin käsin lähdekoodit STM32CubeIDE 1.4.2:lle. En takaa tälle täydellistä yhteensopivuutta alkuperäisen ohjelman kanssa.
STM32CubeIDE:n uudemmat versiot edellyttivät mm. hakemistorakenteen muuttamista ja STM3CubeMX koodien päivittymistä.
STM32CubeIDE:llä koodi pitää ladata ST-LINK:llä programmerin ohjelmointipinnien kautta.
Näin pääset paremmin tutkimaan programmerin ohjelman toimintaa.
Ohjelma on mielestäni hyvä esimerkki STM32-prosessorin käytöstä, käytössä on ainakin:
- USB
- A/D muunnin
- D/A muunnin
- GPIO
- DMA
- SPI
- USART
- TIMER
Jos (kun) et ehdi perehtyä kaikkiin STM32-prossun konfiguraatiovaihtoehtoihin ja -riippuvuuksiin, tästä ohjelmasta voi katsoa vinkkejä miten asioita on toteutettu.
STM32CubeIDE:n export:lla tehty paketti löytyy FW STM32CubeIDE:lle
Ohje STM32CubeIDE export-pakettien lataukseen STM32CubeIDE:een löytyy Hacklabin wikin Vinkit-osiosta. STM32CubeIDE:n import-toiminnot ovat aika sekavat. Toivottavasti vinkki auttaa.
Riippuvuudet
Helsinki Hacklab Padauk Programmer 2.0.0 on yhteensopiva seuraavien versioiden kannassa:
Free PDK Hardware:1.2
Free PDK Firmware:1.3
Free PDK Protocol:1.3
GNU kääntäjä GNU Arm Embedded Toolchain 2020-q2-update
STM32CubeIDE 1.4.2
Tiedostot
Tämän dokumentit tekstissä löytyy alkuperäiset linkit tiedostoihin, jotka on saatu web:stä.
Kaikiin tarvittaviin tiedostoihin on myös linkit hacklabin arkistoon (linkit alla).
Tiedostot ovat versioita ajalta, jolloin projekti on toteutettu.
dfu-util 0.9 Windows:lle dfu-util-0.9-win64.zip
dfu-util lähdekoodit Linux:lle ja Mac:lle dfu-util-0.9.tar.gz
Alkuperäinen EASYODKPROG.dfu EASYPROG.dfu
Zadic-2.5.exe Zadic-2.5.exe
70-stm32vcp.rules Linux:lle 70-stm32vcp.rules
Arm kääntäjä Linux:lle gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
Arm kääntäjä Win10:lle gcc-arm-none-eabi-9-2020-q2-update-win32.exe
Arm kääntäjä Mac:lle gcc-arm-none-eabi-9-2020-q2-update-mac.pkg
Alkuperäinen FW ja easypdkprog ohjelman lähdekoodi easy-pdk-programmer-software-master.zip
Padauk Programmerin FW STM32CubeIDE:lle EASY20200826.zip
Linkit
Linkit käytettyihin sivustoihin. Linkkien voimassaolo tai toimivuus tai tietojen saatavuus riippuu sivustosta.
https://github.com/free-pdk
http://dfu-util.sourceforge.net
https://www.hanselman.com/blog/how-to-fix-dfuutil-stm-winusb-zadig-bootloaders-and-other-firmware-flashing-issues-on-windows
https://github.com/pbatard/libwdi/releases
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
COPYRIGHT AND LICENSE
The Padauk Programmer software is copyright of Free PDK:
Copyright (C) 2019-2020 freepdk https://free-pdk.github.io
free-pdk/easy-pdk-programmer-software is licensed under the
GNU General Public License v3.0
free-pdk/easy-pdk-programmer-hardware is licensed under the Creative Commons Attribution Share Alike 4.0 International
All easypdkprog
software is unmodified copies of the original version 1.3.
The schematic and hardware is modified to:
- Enable smt production (eg. crystal)
- Use components available from JLCPCB for PCB and Assembly
easypdkprog
software structure is modified to work in STM32CubeIDE 1.4.2.
The schematic and hardware is modified to:
- Enable smt production (eg. crystal)
- Use components available from JLCPCB for PCB and Assembly
The Helsinki Hacklab modified hardware is electronically and functionally compatible with the original Free PDK versions:
Hardware:1.2
Firmware:1.3
Protocol:1.3
All files made available here are freely available from web pages by their copyright owners, or have references to the copyright owners. All files from Helsinki Hacklab are made freely available by their corresponding copyright owners.
--Matti Nummi 17. lokakuuta 2020 kello 13.57 (EEST)