This document describes the FlashPro-ARM and GangPro-ARM API-DLL, and explains how to use it. The API-DLL is a dynamic library that can control different types of Flash Programming Adapters (FPAs) simultaneously. It is intended for users that need to use multiple ARM FPAs to program a board with multiple ARM microcontroller units (MCUs). An example hardware setup is shown in Figure 1.1.
The FlashPro-ARM API-DLL is actually implemented using two DLLs, the Multi API-DLL and the API-DLL. One instance of the top-level Multi API-DLL controls multiple instances of the API-DLL. The Multi API-DLL manages all global meta-data and control flow while the API- DLL actually performs programming for each MCU. The user only directly interacts with the Multi API-DLL.
Initializing multiple FPAs using the Multi API-DLL is easy. Only specify the index and serial numbers (SNs) of the FPAs you wish to control, and the Multi API-DLL will create enough API- DLL instances to accomplish the task automatically. Using the Multi API-DLL, select which FPA you wish to control (or all at once), and issue commands that will be automatically forwarded to the corresponding API-DLL. Currently, up to 64 individual FPAs can be controlled using the Multi API-DLL (these would normally be connected using USB hubs connected to the host computer’s USB port).
1.1. Getting Started
FlashPro-ARM or GangPro-ARM Programmer package contains:
One FlashPro-ARM or GangPro-ARM programming adapter.
One 6 feet long USB-A to USB-B cable.
FlashPro-ARM programmer allows to program one target device from one adapter.
GangPro-ARM programmer allows to program up to six(6) target devices from one adapter.
FPA to ARM 14-pin to 20-pin adapter (PE036X01) and ribbon cable.
Programming software can be installed by downloading the ARM package from: https://www.elprotronic.com/pages/downloads
A GangSplitter-ARM can be optionally purchased to provide the hardware connections to connect six JTAG/SWD cables to one adapter. GangSplitter-ARM product: https://www.elprotronic.com/products/gangsplitter-arm layout: GANG_ARM_Splitter.pdf
Customizable sockets that can program raw chips are also available here: https://www.elprotronic.com/collections/universal-socket-boards
The FlashPro-ARM/GangPro-ARM software runs under Windows (x86/x64) and Linux (amd64/armhf). Follow instructions below to install the software:
The USB-FPA 6.1 adapter (grey) only supports the Windows x86 installer. The XStream-Iso, and XStreamPro-Iso adapters (black) support all installers.
Download Windows installer (ARM-win.zip), Ubuntu Linux installer (ARM-amd64.tgz), or Raspbian Linux installer (ARM-armhf.tgz)
For Linux installation, follow included README.txt file which will provide instructions on how to run .deb auto installer package.
For Windows, run setup.exe and the setup wizard appears automatically. Click Install to begin the process.
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.
1.1.1. Driver Installation
The Linux installation relies on the default libusb-1.0 packages that can be installed using apt.
The Windows installation will install the Elprotronic USB driver files in Windows directories "Windows\inf" and "Windows\system32\drivers".
Plug in the FlashPro-ARM/GangPro-ARM Programmer to the PC USB Port, using provided cable extender (USB-A to USB-B).
For Windows XP, Vista, 7, 8, 10. The "New hardware has been found - USB-FPA-BOOT" window should be displayed. Follow wizard instructions to install the drivers.
In the first Wizard dialog screen (see Figure 3.1) select the "Yes, this time only" option.
Figure 3.1: New Hardware Wizard, step 1. Select "Yes, this time only."In the second Wizard dialog screen (see Figure 3.2) select the "Install the software automatically (Recommended)" option and press NEXT button.
Figure 3.2: New Hardware Wizard, step 2. Select "Install the software automatically.Software will search for the USB-FPA-BOOT driver. It can take a few minutes to find the necessary files. When the driver is found then the following warning will be displayed (Figure 3.3).
Figure 3.3: New Hardware Wizard, step 3. Ignore this warning.Ignore this message and press button "Continue Anyway". The first USB-FPA-BOOT driver should be installed and the following message will be displayed (Figure 3.4).
Figure 3.4: New Hardware Wizard, step 4. USB-FPA-BOOT driver installed.Press the "Finish" button.
Figure 3.5: New Hardware Wizard, step5. USB-FPA (Elprotronic) driver installed.After a few seconds, a second "New hardware" window will appear regarding the adapter with the name (Elprotronic). Repeat procedures described above to install the Elprotronic driver (see Figure 3.5). If for any reason the wizard cannot find the USB driver's location then use the manual browse option to locate driver files in the software directory "C:\Program Files (x86)\Elprotronic\Drivers USB-FPA\XP,Vista,Win-7,8,10".
For Windows 2000, 98-SE, ME. The "New hardware has been found" window will be displayed instead. Follow wizard instructions to install the drivers.Press "Next" when the Device Wizard Driver screen appears.
Select the following option on the wizard screen: select a suitable driver for my device (recommended) and press "Next".
Select the third option – "Specify a location" for a location of the driver files.
In the application software directory "C:\Program Files (x86)\Elprotronic\Drivers USB-FPAnW2K, W98SE, WinME" and press "Next".
Driver installation process will start.
Driver installation procedures should be done twice to install two USB drivers - the Boot driver and the Application driver.
Reboot computer if necessary.
1.1.2. Hardware Setup
Connect programmer to target device:
Connect the programming adapter to the PC USB Port or via USB-HUB using provided cable extender (USB-A to USB-B) (see Figure 3.6).
Plug in 14-pin ribbon cable to FlashPro-ARM programmer and then the ARM 14-pin to 20-pin adapter (PN: PE036X01) to the end of the ribbon cable. Connect target device to the 20-pin end of the adapter. Make sure that pin 1 on your device board's header is connected to pin 1 of the socket connector (red cable).
Figure 3.6: Hardware setup, cable connections.