Default XMP-Series Controller Configuration

Overview

The XMP-Series controller's Flash memory is now pre-loaded at the factory with base firmware. This firmware contains a minimal amount of code to boot the DSP and allows the MPI to identify the XMP-Series controller. To operate the controller you will need to download the binary code included in this MPI software distribution. Please see the sections below for a complete description about software binary management and instructions to download firmware to your controller.
 

Introduction

 

System designers need to give careful consideration to the software configuration management procedures for their machines. To ensure machine consistency and quality, a process for software installation, configuration, version control, and verification must be implemented. Addressing this issue early in the development cycle will significantly reduce confusion and mistakes. Failure to implement some basic procedures can cause unknown machine configurations, costly field repairs/upgrades, mysterious intermittent problems, broken equipment, and possible injury.

The MPI and XMP-Series controllers contain several features to make configuration management easy. Please take the time to understand and implement these features before you begin development.

 

Software Components

The MEI software distribution contains several software components, which need to be loaded onto your machine and controller. The MPI DLL, header files, import libraries, device driver, utility programs, controller binaries, sample code, etc. These are all loaded onto your hard drive by the InstallShield distribution. Additionally, the controller contains on-board flash memory to store DSP code, FPGA code, and configuration information. You will also need to load the appropriate DSP (.bin) and FPGA (.fpg) code into your controller's flash memory. The code is loaded into the DSP and FPGA(s) during power-on or when the controller is reset.

Version Control

 

Each software component has its own version number. These components have been tested together at the factory for interoperability.

The software version numbers have the following format:

Motion Console NN.NN.nn Major, Medium, minor
Motion Scope NN.NN.nn Major, Medium, minor
MPI DLL YYYYMMDD.b...r Year, Month, Day, branch,...rev
XMP Firmware NNNnn Major, minor
FPGA Code RRR Revision

The software has automated compatibility checking. If there is a compatibility problem between software components, an error code will be returned.

If an application (Motion Console and Motion Scope are applications too) and MPI DLL are NOT compatible, the error message "Control: application not compatible with MPI DLL" will be returned. To correct this problem, you can recompile your application with the appropriate MPI import library OR install the proper MPI DLL.

If the MPI DLL and firmware versions are NOT compatible, the error message, Control: firmware version mismatch will be returned. The user or application must download the appropriate firmware to correct the problem. The DLL and firmware versions can be determined with the version.exe utility, Motion Console, or application code.

If the controller flash memory has NOT been configured, the error message Control: no firmware found (factory default) will be returned. To correct this problem, the user or application must download the appropriate XMP firmware and FPGA images. Firmware and FPGA images can be downloaded from Motion Console, flash.exe, or application code.

For example, if Motion Console detects that the controller is in the factory default configuration (no firmware) or if the MPI DLL is not compatible with the firmware, it will prompt the user to download firmware:

Click Yes. Motion Console will then prompt you for the firmware file:

Click Browse and select the appropriate firmware file (.bin). The firmware is stored in the mei\xmp\bin directory (by default):

Select the proper file and click Open.

 

Automated Software Configuration

During the development stage of your machine, several different versions of MPI DLLs and/or XMP firmware might be used. You may want to upgrade to new releases in order to take advantage of new features. MEI may provide custom features or bug patches for previous releases.

During the production stage of your machine, you will want to guarantee software configuration consistency. MEI recommends using the InstallShield release package, a third party installer program, or batch scripts to install your application code and MEI's software onto your machine.

You will also want to guarantee that the controller's flash memory configuration is consistent. To load the flash, you could automatically download firmware (.bin) and FPGA (.fpg) code during software installation OR during your application initialization. For example, the flash.exe program could be executed from an installer or batch script during software installation. Included in the XMP\Apps directory, is a sample program called initFlsh.c that demonstrates how to read the controller's firmware/FPGA versions, check if they match the desired configuration, and download the correct versions (if needed).

Also, you can create your own custom firmware file by saving configurations to flash, and uploading the firmware file to your hard drive. The firmware contains a userVersion field, so you can keep track of your custom configured files. Using this technique, the firmware can be configured with Motion Console, uploaded to a file (myfirm.bin) and downloaded to future machines using Motion Console, flash.exe or your application.

FAQs

Why do I need to download firmware to my controller?
Only the machine developer knows which firmware version and configuration works with their application. By downloading firmware directly, you have complete control over your development and release versions.

Why can't MEI download firmware to my controller at the factory?
MEI can download your firmware, but it is expensive and causes several problems:

1. You would need a custom part number for each controller with a different firmware image. Even if you use the same controller hardware in several machines, each version would need to be ordered, purchased, tracked, and stocked separately.

2. Changing a firmware image (version or configuration) would require a new part number. This causes transition problems between "old" and "new" parts.

3. Repairs and replacements are much more complicated.

4. Field upgrades are not possible. Controllers must be returned to the factory to receive new firmware and a new part number.

What if I need to upgrade software in the field?
If you configure the flash memory as part of your application or installation, then it is very easy to upgrade software and/or firmware in the field. If you do not, then you'll need to manually update the flash memory.

Can I modify the FPGA (.fpg) files?
No. These files are binary and do not contain any configuration data.