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:
- NOMEM – A part with no user storage space or with non-standard structure.
Only TMEX hardware specific functions apply to this type.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.