|
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.
|
|
|
|
|