Evaluate: MAX1057/MAX1058/MAX1257/MAX1258
MAX1258 Evaluation Kit/Evaluation System
34 ______________________________________________________________________________________
MAX1258 EV kit Listing 2 06/01/04 7
MAX1258EV listing2
meaning = (MAX1258_fifo_entry_t)(BIPDIF0001 + pair_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 2;
} else if (InputPairConfig[pair_index] == UNIPOLAR_DIFFERENTIAL) {
meaning = (MAX1258_fifo_entry_t)(UNIDIF0001 + pair_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 2;
} else {
meaning = (MAX1258_fifo_entry_t)(UNIAIN00 + channel_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 1;
}
}
break;
case MAX1258_CONV_SCAN_T_00_N:
FIFO_meaning[index++] = TEMPERATURE;
meaning = UNIAIN00;
channel_index = 0;
while(channel_index <= channel_field) {
int pair_index = channel_index / 2;
if (InputPairConfig[pair_index] == BIPOLAR_DIFFERENTIAL) {
meaning = (MAX1258_fifo_entry_t)(BIPDIF0001 + pair_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 2;
} else if (InputPairConfig[pair_index] == UNIPOLAR_DIFFERENTIAL) {
meaning = (MAX1258_fifo_entry_t)(UNIDIF0001 +
pair_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 2;
} else {
meaning = (MAX1258_fifo_entry_t)(UNIAIN00 + channel_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 1;
}
}
break;
case MAX1258_CONV_SCAN_N_15:
while (index < 17) {
int pair_index = channel_index / 2;
if (InputPairConfig[pair_index] == BIPOLAR_DIFFERENTIAL) {
meaning = (MAX1258_fifo_entry_t)(BIPDIF0001 + pair_index);
FIFO_meaning[index
++] = meaning;
channel_index = channel_index + 2;
} else if (InputPairConfig[pair_index] == UNIPOLAR_DIFFERENTIAL) {
meaning = (MAX1258_fifo_entry_t)(UNIDIF0001 + pair_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 2;
} else {
meaning = (MAX1258_fifo_entry_t)(UNIAIN00 + channel_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 1;
}
if (meaning == UNIAIN15) break;
if (meaning == UNIDIF1415) break;
if (meaning == BIPDIF1415) break;
}
break;
case MAX1258_CONV_SCAN_T_N_15:
FIFO_meaning[index++] = TEMPERATURE;
while (index < 17) {
int pair_index = channel_index / 2;
if (InputPairConfig[pair_index] == BIPOLAR_DIFFERENTIAL) {
meaning = (MAX1258_fifo_entry_t)(BIPDIF0001 + pair_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 2;
} else if (InputPairConfig[pair_index] == UNIPOLAR_DIFFERENTIAL
) {
meaning = (MAX1258_fifo_entry_t)(UNIDIF0001 + pair_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 2;
} else {
meaning = (MAX1258_fifo_entry_t)(UNIAIN00 + channel_index);
FIFO_meaning[index++] = meaning;
channel_index = channel_index + 1;
Listing 2 (Sheet 7 of 14)
Evaluate: MAX1057/MAX1058/MAX1257/MAX1258
MAX1258 Evaluation Kit/Evaluation System
______________________________________________________________________________________ 35
MAX1258 EV kit Listing 2 06/01/04 8
MAX1258EV listing2
}
if (meaning == UNIAIN15) break;
if (meaning == UNIDIF1415) break;
if (meaning == BIPDIF1415) break;
}
break;
case MAX1258_CONV_SINGLE_REPEAT:
while (index < repeat_count) {
FIFO_meaning[index++] = meaning;
}
break;
case MAX1258_CONV_SINGLE_READ:
FIFO_meaning[index++] = meaning;
break;
}
/* Check for setups where AIN14-AIN15 are used for an alternate function */
if ((setup_register & 0xE0) == MAX1258_SETUP_INTCLK_CNVST) {
/* 0100xxxx AIN15 alternate function as CNVST input */
/* 0101xxxx AIN15 alternate function as CNVST input */
for (int index = 0; index < 17; index++) {
meaning = FIFO_meaning[index];
if (meaning == UNIAIN15)
FIFO_meaning[index] = UNDEFINED;
if (meaning == UNIDIF1415)
FIFO_meaning[index] = UNDEFINED;
if (meaning == BIPDIF1415)
FIFO_meaning[index] = UNDEFINED;
}
}
// MAX1258 AIN14 alternate pin function in mode 01xx01xx */
#if 1
switch (setup_register & 0xCC) {
case MAX1258_SETUP_EXTREF:
case MAX1258_SETUP_EXTREF_DIFF:
/* AIN14 alternate function as REF2 input */
for (int index = 0; index < 17; index++) {
meaning = FIFO_meaning[index];
if (meaning == UNIAIN14)
FIFO_meaning[index] = UNDEFINED;
if (meaning == UNIDIF1415)
FIFO_meaning[index] = UNDEFINED;
if (meaning == BIPDIF1415)
FIFO_meaning[index] = UNDEFINED;
}
break;
default:
break;
}
#else
if ((setup_register & 0xCC) == MAX1258_SETUP_EXTREF_DIFF) {
/* MAX1231: 01xx11xx AIN14 alternate function as REF- input */
for (int index = 0; index < 17; index++) {
meaning = FIFO_meaning[index];
if (meaning == UNIAIN14)
FIFO_meaning[index] = UNDEFINED;
if (meaning == UNIDIF1415)
FIFO_meaning[index] = UNDEFINED;
if (meaning == BIPDIF1415)
FIFO_meaning[index] = UNDEFINED;
}
}
#endif
}
//---------------------------------------------------------------------------
bool MAX1258::GPIO_Outputs(int pins_mask)
{
gpio_config = gpio_config | pins_mask;
Listing 2 (Sheet 8 of 14)
Evaluate: MAX1057/MAX1058/MAX1257/MAX1258
MAX1258 Evaluation Kit/Evaluation System
36 ______________________________________________________________________________________
MAX1258 EV kit Listing 2 06/01/04 9
MAX1258EV listing2
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1258_GPIO_CONFIG),
(unsigned __int8)(gpio_config / 0x100),
(unsigned __int8)(gpio_config & 0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer_MISO_Delayed(sizeof(mosi), mosi, miso_buf);
if (result) {
return true; // success
} // else operation failed
return false;
}
//---------------------------------------------------------------------------
bool MAX1258::GPIO_Inputs(int pins_mask)
{
//~ To configure a pin for input requires writing BOTH
//~ a MAX1258_GPIO_CONFIG with bit = 0 and also
//~ a MAX1258_GPIO_WRITE with bit = 1.
//~ Writing CONFIG = 0 and WRITE = 0 will configure the pin for "open-drain pull-down" mode. Not input.
gpio_config = gpio_config &~ pins_mask;
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1258_GPIO_CONFIG),
(unsigned __int8)(gpio_config / 0x100),
(unsigned __int8)(gpio_config & 0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer_MISO_Delayed(sizeof(mosi), mosi, miso_buf);
if (result) {
return GPIO_Write(gpio_data | pins_mask);
} // else operation failed
return false;
}
//---------------------------------------------------------------------------
int MAX1258::GPIO_Read(int pins_mask)
{
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1258_GPIO_READ),
(unsigned __int8)(0),
(unsigned __int8)(0)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer_MISO_Delayed(sizeof(mosi), mosi, miso_buf);
if (result) {
// success
unsigned __int16 pins = miso_buf[1] * 0x100 + miso_buf[2];
return (pins & pins_mask);
} // else operation failed
return 0;
}
//---------------------------------------------------------------------------
bool MAX1258::GPIO_Write(int pins_mask)
{
gpio_data = pins_mask;
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1258_GPIO_WRITE),
(unsigned __int8)(gpio_data / 0x100),
(unsigned __int8)(gpio_data & 0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer_MISO_Delayed(sizeof(mosi), mosi, miso_buf);
if (result) {
return true; // success
} // else operation failed
return false;
}
//---------------------------------------------------------------------------
bool MAX1258::GPIO_Set(int pins_mask)
Listing 2 (Sheet 9 of 14)

MAX1258EVKIT

Mfr. #:
Manufacturer:
Maxim Integrated
Description:
Data Conversion IC Development Tools MAX1258 Eval Kit
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union

Products related to this Datasheet