Specification TMEX Type Group

typedef struct {
unsigned short features[32];
char description[255];
} Specification;

(This is a packed structure on 1 byte boundaries)


The Specification structure contains two data arrays. The first array, features[], consists of 32 unsigned short integers. The second array, description[], consists of 255 chars. Two TMEX API functions make use of this structure. The first is TMGetFamilySpec and the second is TMGetAdapterSpec. Their formats are as follows:

TMGetFamilySpec

For the TMGetFamilySpec function, the Specification struct is returned that describes the 1-Wire device discovered based on its family code.

The features[] array is defined as follows:

features[0] = regular pages, unsigned least significant byte first
features[1] = bytes per page in regular memory
features[2] = status pages, unsigned least significant byte first
features[3] = bytes per page in status memory
features[4] = max communication speed (regular = 0, overdrive = 1, hyperdrive = 2)
features[5] = memory type (0 = NOMEM, 1 = NVRAM, 2 = EPROM1, 3 = EPROM2, 4 = EPROM3, 5 = EEPROM1, 6 = MNVRAM, 7 = EEPROM2, 8 = NVRAM2, 9 = NVRAM3)
features[6-31] are left for future expansion

Explanation of Memory Types:

  1. NOMEM – A part with no user storage space or with non-standard structure. Only TMEX hardware specific functions apply to this type.

  2. NVRAM – A part with non-volatile RAM. All TMEX API’s are supported with the exception of the programming API reserved for EPROM parts and TMExtendedReadPage.

  3. EPROM1- A part with Electrically Programmable Read Only Memory. Contains an onboard 8-bit CRC data check. All TMEX API’s apply to this type.

  4. EPROM2 – A part with Electrically Programmable Read Only Memory. Contains an onboard 16-bit CRC data check. All TMEX API’s apply to this type.

  5. EPROM3 – A part with Electrically Programmable Read Only Memory. Contains an onboard 16-bit CRC. EPROM2 and EPROM3 differ only by the location and size of TMEX bitmap, the details of which are abstracted into the driver. All TMEX API’s apply to this type

  6. EEPROM1 – Electrically Erasable Programmable Read Only Memory. All TMEX API’s are supported with the exception of the programming API reserved for EPROM parts and TMExtendedReadPage.

  7. MNVRAM – A part with read-only non rolling-over page write cycle counters associated with a portion of the non-volatile RAM. Pages with the 101 extension in the TMEX file name can only reside on counter pages, however any other file name can also reside on counter pages. All TMEX API’s are supported with the exception of the programming API reserved for EPROM parts.

  8. EEPROM2 - Electrically Erasable Programmable Read Only Memory. On board CRC16 for Write/Read memory. Copy Scratchpad returns an authentication byte. All TMEX API’s are supported with the exception of the programming API reserved for EPROM parts.

  9. NVRAM2 - A part with non-volatile RAM. Contains an onboard 16-bit CRC. All TMEX API’s are supported with the exception of the programming API reserved for EPROM parts.

  10. NVRAM3 – A part with non-volatile RAM with bit accessible memory. Contains an onboard 16-bit CRC. TMEX hardware specific functions and TMExtendedReadPage apply to this type.

The description[] array is defined as follows:

The description[] array is an array of characters that contains 3 fields; part number, alternative part number and brief functional description. The fields are delimited by commas and the string is null terminated. ie: DS1920,DS1820,Temperature iButton with Trips



TMGetAdapterSpec

For the TMGetAdapterSpec function, the Specification struct is returned that describes the current 1-Wire adapter being used.

The features[] array is defined as follows:

features[0] = overdrive
features[1] = strong pullup
features[2] = EPROM programming
features[3] = flexible speed
features[4] = 1-Wire break (short to ground)
features[5-31] are left for future expansion

The description[] array is defined as follows:

An array of characters that contains 3 fields; part number, alternative part number and brief functional description. The fields are delimited by commas and the string is null terminated.