User Manual
Table Of Contents
- M6e-31.5dBm Hardware Guide
- Contents
- Mercury6e Introduction
- Hardware Overview
- Firmware Overview
- Communication Protocol
- Functionality of the Mercury6e
- Appendix A: Error Messages
- Common Error Messages
- FAULT_MSG_WRONG_NUMBER_OF_DATA – (100h)
- FAULT_INVALID_OPCODE – (101h)
- FAULT_UNIMPLEMENTED_OPCODE – 102h
- FAULT_MSG_POWER_TOO_HIGH – 103h
- FAULT_MSG_INVALID_FREQ_RECEIVED (104h)
- FAULT_MSG_INVALID_PARAMETER_VALUE - (105h)
- FAULT_MSG_POWER_TOO_LOW - (106h)
- FAULT_UNIMPLEMENTED_FEATURE - (109h)
- FAULT_INVALID_BAUD_RATE - (10Ah)
- Bootloader Faults
- Flash Faults
- Protocol Faults
- FAULT_NO_TAGS_FOUND – (400h)
- FAULT_NO_PROTOCOL_DEFINED – 401h
- FAULT_INVALID_PROTOCOL_SPECIFIED – 402h
- FAULT_WRITE_PASSED_LOCK_FAILED – 403h
- FAULT_PROTOCOL_NO_DATA_READ – 404h
- FAULT_AFE_NOT_ON – 405h
- FAULT_PROTOCOL_WRITE_FAILED – 406h
- FAULT_NOT_IMPLEMENTED_FOR_THIS_PROTOCOL – 407h
- FAULT_PROTOCOL_INVALID_WRITE_DATA – 408h
- FAULT_PROTOCOL_INVALID_ADDRESS – 409h
- FAULT_GENERAL_TAG_ERROR – 40Ah
- FAULT_DATA_TOO_LARGE – 40Bh
- FAULT_PROTOCOL_INVALID_KILL_PASSWORD – 40Ch
- FAULT_PROTOCOL_KILL_FAILED - 40Eh
- FAULT_PROTOCOL_BIT_DECODING_FAILED - 40Fh
- FAULT_PROTOCOL_INVALID_EPC – 410h
- FAULT_PROTOCOL_INVALID_NUM_DATA – 411h
- FAULT_GEN2 PROTOCOL_OTHER_ERROR - 420h
- FAULT_GEN2_PROTOCOL_MEMORY_OVERRUN_BAD_PC - 423h
- FAULT_GEN2 PROTOCOL_MEMORY_LOCKED - 424h
- FAULT_GEN2 PROTOCOL_INSUFFICIENT_POWER - 42Bh
- FAULT_GEN2 PROTOCOL_NON_SPECIFIC_ERROR - 42Fh
- FAULT_GEN2 PROTOCOL_UNKNOWN_ERROR - 430h
- Analog Hardware Abstraction Layer Faults
- Tag ID Buffer Faults
- System Errors
- Common Error Messages
- Appendix B: Getting Started - Devkit
Application Firmware
Firmware Overview 31
Application Firmware
The application firmware contains the tag protocol code along with all the command
interfaces to set and get system parameters and perform tag operations. The application
firmware is, by default, started automatically upon power up.
Programming the M6e
Applications to control the M6e module and derivative products are written using the high
level MercuryAPI. The MercuryAPI supports Java, .NET and C programming
environments. The MercuryAPI Software Development Kit (SDK) contains sample
applications and source code to help developers get started demoing and developing
functionality. For more information on the MercuryAPI see the MercuryAPI Programmers
Guide and the MercuryAPI SDK, available on the ThingMagic website.
Upgrading the M6e
New features developed for the M6e are made available to existing modules through an
Application Firmware upgrade, along with corresponding updates to the MercuryAPI to
make use of the new features. Firmware upgrades can be applied using the MercuryAPI
to build the functionality into custom applications or using the MercuryAPI SDK demo
utilities.
Verifying Application Firmware Image
The application firmware has an image level Cyclic Redundancy Check (CRC) embedded
in it to protect against corrupted firmware during an upgrade process. (If the upgrade is
unsuccessful, the CRC will not match the contents in flash.) When the boot loader starts
the application FW, it first verifies that the image CRC is correct. If this check fails, then
the boot loader does not start the application firmware and an error is returned.