Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents

Table of Figures


FIGURE 4.1: MAIN DIALOG SCREEN 5
FIGURE 4.2: THE MPU GROUP TYPE CAN BE SELECTED HERE 5
FIGURE 4.3: STARTUP SUBDIRECTORY WITH FILES FOR EACH ST EVALUATION BOARD 6
FIGURE 4.4: STARTUP SUBDIRECTORY WITH FILES FOR STM32MP157A-DK1 BOARD 6
FIGURE 4.5: USER DEFINED BOARD WITH MP15XX MPU NAME SETUP GUI7
FIGURE 4.6: USER DEFINED BOARD NAME IN THE MAIN GUI7
FIGURE 4.7: OPEN TSV FILE 8
FIGURE 4.8: READ FILES SPECIFIED IN THE TSV FILE 9
FIGURE 4.9: VIEW TSV FILE 10
FIGURE 4.10:USB PORT/HUB EMPTY ASSIGNMENT 10
FIGURE 4.11: USB PORT/HUB NUMBER ASSIGNMENT 11
FIGURE 4.12: RESULT ICONS 12
FIGURE 4.13: ACTIONS THAT CAN BE TAKEN USING THE PROGRAMMER 13
FIGURE 4.14: REPORT WINDOWS (STATUS AND ERRORS) WITH REPORT TARGET SELECTOR – TOTAL AND TARGET 1…813
FIGURE 5.1: CODE FILE DATA. THE SELECTED OPTION ON THE BOTTOM IGNORES ALL BYTES THAT HAVE THE VALUE OF 0XFF, WHICH REPRESENTS EMPTY BYTES 16
FIGURE 6.1: C17
FIGURE 6.2: PEXUSB3S44V 4-PORT PCI EXPRESS USB 3.0 CARD 18

1. Introduction


The GangFlasher-ST programmer ("the programmer") is designed to program STM32MP15x series MPU devices from ST Microelectronics. The programmer communicates with MPUs using the dedicated USB OTG communication interface used for DFU communication
The programmer package consists of WindowsTM based software available online at www.elprotronic.com (supported on Windows 10 x64).
The programmer enables communication with the target device at high speed and uses the USB 2.0 interface protocol with communication speed up to 480 Mb/s. A standard auto program procedure includes startup initialization using the DFU interface protocol followed by a switch to USB 2.0 that allows the software to program at maximum available communication speed.

The remainder of this manual will explain how to use all of the programmer's different features.

2. Features

The GangFlasher-ST Programmer is designed to program the STM32MP15x series MPU devices from ST Microelectronics.

...

The programmer can also be controlled through user created applications. For this purpose, a DLL is provided to allow the user to develop custom applications that can control the programming process. The DLL allows to fully control and program simultaneously up to 8 target devices from external software written in C++, Python, or other scripting languages.

3. Getting Started

The installation package contains:

  1. A setup.exe installation package for Windows 10 x64.

  2. The GangFlasher-ST Programmer Setup wizard appears automatically after clicking setup.exe. Click Install GangFlasher-ST Programmer to begin the installation process.

  3. Once the installation program starts, on-screen instructions will guide you through the remainder of the installation. You must accept the license agreement before using this software.

  4. IMPORTANT : Do not install Avoid installing GangFlasher-ST software in C“C:\Program Files softwareFiles” location, otherwise you will need to run it using Administrator privileges. This is Default installation location is “C:\Elprotronic”, which is preferable because during normal operation , the software regularly creates and modifies temporary files required for booting up target boards.

  5. During the first installation, it is also required to install the USB driver. Select the checkbox to preinstall the driver.

...

  1. Connect one target STM32MP1xx to a USB port.

  2. A green icon should light up in index 1.

  3. Optionally, go to File->Save USB Port Configuration as… to save the USB setup and reuse it later for other projects.

4. Main Graphical User Interface

The main dialog (Figure 4.1) contains a pull-down menu, interface selection box, device action buttons, report (status and errors) window, open file buttons, target device information box, etc.
All device action buttons have their own status indicators. Each indicator can assume any of the following conditions:

...

The Read function reads partitions from target boards and saves them in the same directory where the original files used for programming are located. The downloaded contents are named as the original file with added prefix "Rdx-" where x is the target board number 1 to 8. If all 8 targets are read then in the directory where the original file is located there will be extra 8 files with prefix Rx1-, Rx2-, … Rx8- etc.
That files are saved using the original extensions. Read can be useful for direct byte-by-byte comparisons using hexcmp, or windiff, etc. or for file retrieval. For purely verification purposes, the Verify command is faster.

5. Data Viewers

Data viewers allow the user to view code file data like OTP bytes in the host application. In the pull- down menu you can select a viewer for OTP file data, OTP Memory data and an option for comparing the OTP from file and memory. Contents of a selected OTP file can be viewed by selecting the View→OTP File Data option. The OTP data viewer, shown in Figure 5.1, displays the OTP address on the left side, data in hex format in the central column, and the same data in ASCII format in the right column. Data in hex format is displayed from 0x00000000 to 0xFFFFFFFF (if 4 bytes default Display Option is used) for addresses corresponding to the code file. Data from other addresses is displayed as dots "". If code size exceeds flash memory size in the selected microcontroller, a warning message
will be displayed first. The contents of the code viewer can be converted to *.txt or *.hex file format by clicking on the buttons on the bottom of the GUI.
Contents of OTP Memory Data on the target can be viewed by selecting the View→OTP Memory Data option. To be able to see target memory contents, the Read OTP button must be used first. The OTP Memory Data viewer displays memory addresses, data in hex and ASCII format in the same way as the code data viewer shown in Figure 5.1.
Contents of the OTP file and OTP memory can be compared, and differences can be displayed in the viewer by selecting the View→Compare OTP File and OTP Data option. Only data that are not the same in the code file and flash memory will be displayed. The first line displays code file data, and the second line displays flash memory data. If all the aforementioned data are identical, then a No difference found message will be displayed on the screen.

...

6. Hardware Setup

The maximum programming speed for the MP15x MPU with the EV1 evaluation board and fast eMMC memory has been tested to be as high as 37 MB/s. Reading data in that configuration can be even faster at approximately 40-44 MB/s. This programming and reading speed approaches the maximum transfer bandwidth for USB 2.0 Hi-Speed communication that is effectively 48 MB/s. Although the maximum data transfer rate for USB 2.0 Hi-Speed by spec is 480 Mbits/s, or 60 MB/s, this includes all service bytes used in the USB protocol, whereas in practice the useful transfer speed is 48 MB/s if all overhead bytes are considered.
To achieve maximum performance on 8 boards that the GangFlasher-ST can program, the PC hardware setup has to be given deeper consideration. Default USB connections available on a laptop or coming from a desktop motherboard are usually USB hubs that will share effective bandwidth. Furthermore, even if a USB 3.0 hub is available, the MP1x family supports only USB 2.0 Hi-Speed communication at best. This means that in most cases a USB 3.0 hub will switch down to USB 2.0 mode and the maximum throughput for a hub will generally be 48 MB/s as stated above in total, even if 4 or 8 connections are available for example. However, some dedicated PCI-USB extension cards are designed well enough to provide independent USB 2.0 Hi-Speed, 48 MB/s performance, on each port. Below we list two examples of tested PCI-USB extension cards that fit this criteria.

...


Sonnet PN: USB3-4PM-E. This card uses a PCIe-1 slot. The total bandwidth used by this card can be up to 5Gb/s allowing all USB 2.0 ports max Hi-Speed mode performance at up to 480 Mb/s for each port.
Startech PN: PEXUSB3S44V. This card uses the PCIe-4 slot. Other cards that have good tested performance are those with 4 USB controllers – one controller per one USB port. This card from Startech is a SuperSpeed USB 3.0 Card Adapter w/ 4 Dedicated 5Gbps Channels - UASP - SATA / LP4 Power.

...


Aside from the aforementioned USB per target performance, the host PC computer should have decent performance to be able to handle all targets simultaneously. The GangFlasher uses up to 8 separate threads, one for each target, to read and program data and for some additional tasks. Below is the specification of the PC used during the test.


PC Windows 10 Pro, OS build 18363.1256
Intel @ Core TM i7-4770K CPU @ 3.50 GHz
32.0 GB RAM
64-b OS, x64 CPU.
and two USB cards USB3-4PM-E.

Appendix A

Test results:

Below are provided test results for some setup combination. First are tested units separately then at the end was connect 8 targets STM32MP157A-DK1 boards to PC with configuration as below:

...