Padauk Programmer FW

Kohteesta Helsinki Hacklabin wiki
Loikkaa: valikkoon, hakuun

Padauk Programmer FW - Padauk prosessorien ohjelmointilaitteen Firmware

Padauk Programmer FW

Tyyppi: Ohjelmointilaite, USB
Tekijät: Martti Paalanen, Matti Nummi
Aloitettu: 2020
Tila: valmis


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"


Zadic.png


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)