EAM Hardware Configuration


EAMs from build XXXX (TODO: update once in stable build) have an XML file contained in a non-volatile EEPROM that specify the full hardware configuration of the unit. This includes which peripherals (I²C power monitors, serial ports etc.) are attached as well as some other information such as serial number(s) and part number(s), if those were stored at production time. This page documents the format of the XML file.

Requirements

The data stored in the EEPROM must allow the code to determine:

System Integration

I²C addressing scheme

XML Format

There is no need for an XML declaration, although one may be present (but no encodings other than UTF-8 can be used). A document type declaration must not be present. The namespace http://www.guralp.com/platinum/xmlns/calib/1.0 is to be used. Elements from other namespaces can of course be present, but these will be ignored (so a future expansion which adds new top-level elements should use a new namespace for those elements, keeping the default namespace as-is). One namespace that would be useful is http://www.guralp.com/platinum/xmlns/part/1.0, which has the <part> element for part tracking. For the purpose of this document this namespace will have the prefix part.

Top-level elements

The top-level element will be <eam-hw-config> and it may contain the following elements:

Element Occurrences Description
<variant> Exactly one Documents which hardware features are available (see Variants)
<display-model> Exactly one String to display to user as model number (arbitrary)
<display-serial> Exactly one String to display to user as serial number (arbitrary)
<ina209> Zero or more Details of INA209 power monitor (see INA209)
<serial-port-setting> Zero or more Factory-default setting of serial port (see Serial port setting)
<lcd> Zero or one Documents type of LCD module fitted and how to access it (see LCD)
<part:part> Zero or more See part tracking

Variants

The following variants are defined, specified by Codename in the XML file:
Codename Description Board assembly numbers
eam21+22+P Cylindrical unit with built-in DM24 module, including PCMCIA and Spyrus card for authentication purposes ASE-DCM-1013, ASE-DCM-0021, ASE-DCM-0022
eam21+22 Cylindrical unit with built-in DM24 module, without PCMCIA ASE-DCM-0013, ASE-DCM-0021, ASE-DCM-0022
eam20 Embedded EAM with many power switches and ports, for OBS etc. No case ASE-DCM-2013, ASE-DCM-0020
eam18+W Round EAM, used in digital instruments or standalone, including wireless Ethernet module ASE-DCM-0017, ASE-DCM-0018, ASE-DCM-0019
eam18 Round EAM, used in digital instruments or standalone, without wireless ASE-DCM-0017, ASE-DCM-0018
eam16+16 Surface (Peli) EAM, 7 port variant ASE-DCM-0013, ASE-DCM-0016 (×2)
eam16 Surface (Peli) EAM, 3 port variant (standard) ASE-DCM-0013, ASE-DCM-0016
eam15 Eskdalemuir authenticator, no longer in production ASE-DCM-0013, ASE-DCM-0015

INA209

The top-level element <ina209> records information about an INA209 power monitor. These can vary from unit to unit as there is a shunt resistor and potential divider whose resistor values have changed over the course of manufacture. The INA209 description element may contain the following children:

TODO: default on/off?

Element Occurrences Description
<codename> Exactly one Name of I/O line (e.g. Port_A)
<i2c-address> Exactly one Address on I²C bus (see I²C address scheme)
<shunt Exactly one Shunt resistance in Ω
<pdiv Exactly one Potential divider ratio (divide measured voltage by this value to get real external voltage)

Serial port setting

The top-level element <serial-port-setting> is used to record what the default setting for a port should be after factory settings are restored. It is optional, as the default Platinum configuration files will often be appropriate. The element contains the following children:

Element Occurrences Description
<codename> Exactly one Name of port config file (PortDO, PortA, … PortG, PortSA1, PortSA2)
<display-name> Exactly one Name to display to user
<device> Exactly one Path to character device node
<baud> Exactly one Default baud rate, as an integer
<function> Exactly one Name of function as per configuration files

LCD

The top-level element <lcd> is used to record that an LCD module has been attached to the EAM and gives the size of the display as well as its I²C address. The element contains the following children:

Element Occurrences Description
<i2c-address> Exactly one Address on I²C bus (see I²C address scheme)
<size> Exactly one Size in columns by rows, written as COLSxROWS (using the letter 'x' as a separator, as per LCDproc)

Per-variant Defaults