108 *config_word = *config_word | (uint32_t(config_number & 0x07) << (channel * 3));
115 void LTC23XX_read(uint8_t cs_pin, uint32_t config_word, uint8_t data_array[24])
118 uint8_t tx_array[24];
120 tx_array[23] = (uint8_t)(config_word >> 16);
121 tx_array[22] = (uint8_t)(config_word >> 8);
122 tx_array[21] = (uint8_t)(config_word);
123 for (i = 20; i >= 0; --
i)
133 uint32_t mask = 0x20000;
134 int32_t data_signed =
data;
135 sign = (data & mask) >> 17;
137 data_signed = data_signed | 0xFFFC0000;
146 switch (channel_configuration)
152 voltage = (float)data * (1.25 *
VREF / 1.000) /
POW2_18;
156 voltage = (float)data_signed * (1.25 *
VREF / 1.024) /
POW2_17;
160 voltage = (float)data_signed * (1.25 *
VREF / 1.000) /
POW2_17;
163 voltage = (float)data * (2.50 *
VREF / 1.024) /
POW2_18;
166 voltage = (float)data * (2.50 *
VREF / 1.000) /
POW2_18;
170 voltage = (float)data_signed * (2.50 *
VREF / 1.024) /
POW2_17;
174 voltage = (float)data_signed * (2.50 *
VREF ) /
POW2_17;
Header File for Linduino Libraries and Demo Code.
static uint8_t channel
LTC2305 Channel selection.
void LTC23XX_create_config_word(uint8_t channel, uint8_t config_number, uint32_t *config_word)
Creates 24-bit configuration word for the 8 channels.
int32_t sign_extend_17(uint32_t data)
float LTC23XX_voltage_calculator(uint32_t data, uint8_t channel_configuration)
Calculates the voltage from ADC output data depending on the channel configuration.
union LT_union_int32_4bytes data
void LTC23XX_read(uint8_t cs_pin, uint32_t config_word, uint8_t data_array[24])
Transmits 24 bits (3 bytes) of configuration information and reads back 24 bytes of data (3 bytes/ 24...
LT_SPI: Routines to communicate with ATmega328P's hardware SPI port.
LTC2348-18: Octal, 18-Bit, 200ksps Differential ±10.24V Input SoftSpan ADC with Wide Input Common Mod...
void spi_transfer_block(uint8_t cs_pin, uint8_t *tx, uint8_t *rx, uint8_t length)
Reads and sends a byte array.