157 #define LTC4282_I2C_ADDRESS 0x4A // NC | NC | NC | 174 #define LTC4282_I2C_MASS_WRITE 0x5F // X | X | X | 175 #define LTC4282_I2C_ALERT_RESPONSE 0x19 // X | X | X | 264 #define LTC4282_CONTROL_MSB_REG 0x00 265 #define LTC4282_CONTROL_LSB_REG 0x01 266 #define LTC4282_ALERT_MSB_REG 0x02 267 #define LTC4282_ALERT_LSB_REG 0x03 268 #define LTC4282_FAULT_LOG_REG 0x04 269 #define LTC4282_ADC_ALERT_LOG_REG 0x05 270 #define LTC4282_FET_BAD_FAULT_TIME_REG 0x06 271 #define LTC4282_GPIO_CONFIG_REG 0x07 272 #define LTC4282_VSOURCE_ALARM_MIN_REG 0x08 273 #define LTC4282_VSOURCE_ALARM_MAX_REG 0x09 274 #define LTC4282_VGPIO_ALARM_MIN_REG 0x0A 275 #define LTC4282_VGPIO_ALARM_MAX_REG 0x0B 276 #define LTC4282_VSENSE_ALARM_MIN_REG 0x0C 277 #define LTC4282_VSENSE_ALARM_MAX_REG 0x0D 278 #define LTC4282_POWER_ALARM_MIN_REG 0x0E 279 #define LTC4282_POWER_ALARM_MAX_REG 0x0F 280 #define LTC4282_CLK_DEC_REG 0x10 281 #define LTC4282_ILIM_ADJUST_REG 0x11 282 #define LTC4282_METER_MSB5_REG 0x12 283 #define LTC4282_METER_MSB4_REG 0x13 284 #define LTC4282_METER_MSB3_REG 0x14 285 #define LTC4282_METER_MSB2_REG 0x15 286 #define LTC4282_METER_MSB1_REG 0x16 287 #define LTC4282_METER_LSB_REG 0x17 288 #define LTC4282_TICK_COUNTER_MSB3_REG 0x18 289 #define LTC4282_TICK_COUNTER_MSB2_REG 0x19 290 #define LTC4282_TICK_COUNTER_MSB1_REG 0x1A 291 #define LTC4282_TICK_COUNTER_LSB_REG 0x1B 292 #define LTC4282_ALERT_CONTROL_REG 0x1C 293 #define LTC4282_ADC_CONTROL_REG 0x1D 294 #define LTC4282_STATUS_MSB_REG 0x1E 295 #define LTC4282_STATUS_LSB_REG 0x1F 296 #define LTC4282_EE_CONTROL_MSB_REG 0x20 297 #define LTC4282_EE_CONTROL_LSB_REG 0x21 298 #define LTC4282_EE_ALERT_MSB_REG 0x22 299 #define LTC4282_EE_ALERT_LSB_REG 0x23 300 #define LTC4282_EE_FAULT_REG 0x24 301 #define LTC4282_EE_ADC_ALERT_LOG_REG 0x25 302 #define LTC4282_EE_FET_BAD_FAULT_TIME_REG 0x26 303 #define LTC4282_EE_GPIO_CONFIG_REG 0x27 304 #define LTC4282_EE_VSOURCE_ALARM_MIN_REG 0x28 305 #define LTC4282_EE_VSOURCE_ALARM_MAX_REG 0x29 306 #define LTC4282_EE_VGPIO_ALARM_MIN_REG 0x2A 307 #define LTC4282_EE_VGPIO_ALARM_MAX_REG 0x2B 308 #define LTC4282_EE_VSENSE_ALARM_MIN_REG 0x2C 309 #define LTC4282_EE_VSENSE_ALARM_MAX_REG 0x2D 310 #define LTC4282_EE_POWER_ALARM_MIN_REG 0x2E 311 #define LTC4282_EE_POWER_ALARM_MAX_REG 0x2F 312 #define LTC4282_EE_CLK_DEC_REG 0x30 313 #define LTC4282_EE_ILIM_ADJUST_REG 0x31 314 #define LTC4282_VGPIO_MSB_REG 0x34 315 #define LTC4282_VGPIO_LSB_REG 0x35 316 #define LTC4282_VGPIO_MIN_MSB_REG 0x36 317 #define LTC4282_VGPIO_MIN_LSB_REG 0x37 318 #define LTC4282_VGPIO_MAX_MSB_REG 0x38 319 #define LTC4282_VGPIO_MAX_LSB_REG 0x39 320 #define LTC4282_VSOURCE_MSB_REG 0x3A 321 #define LTC4282_VSOURCE_LSB_REG 0x3B 322 #define LTC4282_VSOURCE_MIN_MSB_REG 0x3C 323 #define LTC4282_VSOURCE_MIN_LSB_REG 0x3D 324 #define LTC4282_VSOURCE_MAX_MSB_REG 0x3E 325 #define LTC4282_VSOURCE_MAX_LSB_REG 0x3F 326 #define LTC4282_VSENSE_MSB_REG 0x40 327 #define LTC4282_VSENSE_LSB_REG 0x41 328 #define LTC4282_VSENSE_MIN_MSB_REG 0x42 329 #define LTC4282_VSENSE_MIN_LSB_REG 0x43 330 #define LTC4282_VSENSE_MAX_MSB_REG 0x44 331 #define LTC4282_VSENSE_MAX_LSB_REG 0x45 332 #define LTC4282_POWER_MSB_REG 0x46 333 #define LTC4282_POWER_LSB_REG 0x47 334 #define LTC4282_POWER_MIN_MSB_REG 0x48 335 #define LTC4282_POWER_MIN_LSB_REG 0x49 336 #define LTC4282_POWER_MAX_MSB_REG 0x4A 337 #define LTC4282_POWER_MAX_LSB_REG 0x4B 339 #define LTC4282_EE_SPARE_MSB3_REG 0x4C 340 #define LTC4282_EE_SPARE_MSB2_REG 0x4D 341 #define LTC4282_EE_SPARE_MSB1_REG 0x4E 342 #define LTC4282_EE_SPARE_LSB_REG 0x4F 467 #define LTC4282_ON_FAULT_MASK 0x80 469 #define LTC4282_ON_DELAY 0x40 470 #define LTC4282_ON_ENB 0x20 471 #define LTC4282_MASS_WRITE 0x10 472 #define LTC4282_FET_ON 0x08 473 #define LTC4282_OC_AUTORETRY 0x04 474 #define LTC4282_UV_AUTORETRY 0x02 475 #define LTC4282_OV_AUTORETRY 0x01 476 #define LTC4282_FB_MODE_EXTERNAL 0x00 477 #define LTC4282_FB_MODE_5 0x40 478 #define LTC4282_FB_MODE_10 0x80 479 #define LTC4282_FB_MODE_15 0xC0 480 #define LTC4282_UV_MODE_EXTERNAL 0x00 481 #define LTC4282_UV_MODE_5 0x10 482 #define LTC4282_UV_MODE_10 0x20 483 #define LTC4282_UV_MODE_15 0x30 484 #define LTC4282_OV_MODE_EXTERNAL 0x00 485 #define LTC4282_OV_MODE_5 0x04 486 #define LTC4282_OV_MODE_10 0x08 487 #define LTC4282_OV_MODE_15 0x0C 488 #define LTC4282_VIN_MODE_3_V_3 0x00 489 #define LTC4282_VIN_MODE_5_V 0x01 490 #define LTC4282_VIN_MODE_12_V 0x02 491 #define LTC4282_VIN_MODE_24_V 0x03 492 #define LTC4282_EEPROM_DONE_ALERT 0x80 493 #define LTC4282_FET_BAD_FAULT_ALERT 0x40 494 #define LTC4282_FET_SHORT_ALERT 0x20 495 #define LTC4282_ON_ALERT 0x10 496 #define LTC4282_PB_ALERT 0x08 497 #define LTC4282_OC_ALERT 0x04 498 #define LTC4282_UV_ALERT 0x02 499 #define LTC4282_OV_ALERT 0x01 500 #define LTC4282_POWER_ALARM_HIGH 0x80 501 #define LTC4282_POWER_ALARM_LOW 0x40 502 #define LTC4282_VSENSE_ALARM_HIGH 0x20 503 #define LTC4282_VSENSE_ALARM_LOW 0x10 504 #define LTC4282_VSOURCE_ALARM_HIGH 0x08 505 #define LTC4282_VSOURCE_ALARM_LOW 0x04 506 #define LTC4282_VGPIO_ALARM_HIGH 0x02 507 #define LTC4282_VGPIO_ALARM_LOW 0x01 508 #define LTC4282_GPIO3_PD 0x80 509 #define LTC4282_GPIO2_PD 0x40 510 #define LTC4282_GPIO1_CONFIG_POWER_GOOD 0x00 511 #define LTC4282_GPIO1_CONFIG_POWER_BAD 0x20 512 #define LTC4282_GPIO1_CONFIG_OUTPUT 0x10 513 #define LTC4282_GPIO1_CONFIG_INPUT 0x30 514 #define LTC4282_GPIO1_OUTPUT 0x08 515 #define LTC4282_ADC_CONV_ALERT 0x04 516 #define LTC4282_STRESS_TO_GPIO2 0x02 517 #define LTC4282_METER_OF_ALERT 0x01 518 #define LTC4282_COULOMB_METER 0x80 519 #define LTC4282_TICK_OUT 0x40 520 #define LTC4282_INT_CLK_OUT 0x20 521 #define LTC4282_ILIM_ADJUST_12_V_5 0x00 522 #define LTC4282_ILIM_ADJUST_15_V_6 0x20 523 #define LTC4282_ILIM_ADJUST_18_V_7 0x40 524 #define LTC4282_ILIM_ADJUST_21_V_8 0x60 525 #define LTC4282_ILIM_ADJUST_25_V_0 0x80 526 #define LTC4282_ILIM_ADJUST_28_V_1 0xA0 527 #define LTC4282_ILIM_ADJUST_31_V_2 0xC0 528 #define LTC4282_ILIM_ADJUST_34_V_3 0xE0 529 #define LTC4282_FOLDBACK_MODE_3_V_3 0x00 530 #define LTC4282_FOLDBACK_MODE_5_V_0 0x08 531 #define LTC4282_FOLDBACK_MODE_12_V_0 0x10 532 #define LTC4282_FOLDBACK_MODE_24_V_0 0x18 533 #define LTC4282_ADC_VSOURCE 0x04 534 #define LTC4282_ADC_GPIO2_MODE 0x02 535 #define LTC4282_ADC_16_BIT 0x01 536 #define LTC4282_ENABLE_ALERT_GENERATED 0x80 537 #define LTC4282_ENABLE_ALERT_PD 0x40 538 #define LTC4282_DISABLE_ALERT_GENERATED 0x7F 539 #define LTC4282_DISABLE_ALERT_PD 0xBF 540 #define LTC4282_REBOOT 0x80 541 #define LTC4282_ENABLE_METER_RESET 0x40 542 #define LTC4282_ENABLE_METER_HALT 0x20 543 #define LTC4282_ENABLE_FAULT_LOG 0x04 544 #define LTC4282_GATEUP 0x02 545 #define LTC4282_ADC_HALT 0x01 546 #define LTC4282_DISABLE_METER_RESET 0xBF 547 #define LTC4282_DISABLE_METER_HALT 0xDF 548 #define LTC4282_DISABLE_FAULT_LOG 0xFB 554 #define LTC4282_FB_MODE_MASK 0xC0 555 #define LTC4282_UV_MODE_MASK 0x30 556 #define LTC4282_OV_MODE_MASK 0x0C 557 #define LTC4282_VIN_MODE_MASK 0x03 558 #define LTC4282_ILIM_ADJUST_MASK 0xE0 559 #define LTC4282_FOLDBACK_MASK 0x18 560 #define LTC4282_GPIO1_CONFIG_MASK 0x30 646 float fullscaleVoltage
658 float fullscaleVoltage,
665 float fullscaleVoltage,
700 float fullscaleVoltage
712 float fullscaleVoltage,
724 float fullscaleVoltage
737 float fullscaleVoltage
float LTC4282_code_to_voltage(uint16_t code, float fullscaleVoltage)
Convert ADC code to voltage.
float LTC4282_code_to_GPIO_alarm(uint8_t code)
Convert ADC code to GPIO alarm voltage.
static uint8_t adc_command
int8_t LTC4282_write_48_bits(uint8_t i2c_address, uint8_t adc_command, uint64_t code)
Write an 48-bit code to the LTC4282.
const float resistor
resistor value on demo board
float LTC4282_code_to_current_alarm(uint8_t code, float resistor)
Convert ADC code to alarm current.
int8_t LTC4282_read_32_bits(uint8_t i2c_address, uint8_t adc_command, uint32_t *adc_code)
Read a 32-bit code from the LTC4282.
uint64_t LT_uint64
32-bit unsigned integer to be converted to four bytes
uint8_t LTC4282_power_to_code_alarm(float power, float resistor, float fullscaleVoltage)
Convert power to alarm code.
uint8_t LTC4282_VGPIO_to_code_alarm(float vgpio)
Convert GPIO voltage to alarm code.
const float LTC4282_ADC_FS
LTC4282 LSB's.
const float LTC4282_GPIO_FS
float LTC4282_code_to_avg_current(uint64_t code, float coulombs, float tConv)
Convert ADC code to average current.
const float LTC4282_VSOURCE_5V_FS
const float LTC4282_VSOURCE_3V3_FS
float LTC4282_code_to_power_alarm(uint8_t code, float fullscaleVoltage, float resistor)
Convert ADC code to alarm power.
const float LTC4282_VSOURCE_12V_FS
int8_t LTC4282_write_16_bits(uint8_t i2c_address, uint8_t adc_command, uint16_t code)
Write an 16-bit code to the LTC4282.
float LTC4282_code_to_power(uint16_t code, float fullscaleVoltage, float resistor)
Convert ADC code to power.
int8_t LTC4282_read_16_bits(uint8_t i2c_address, uint8_t adc_command, uint16_t *adc_code)
Read a 16-bit code from the LTC4282.
float LTC4282_code_to_coulombs(uint64_t code, float resistor, float tConv)
Convert ADC code to coulombs.
float LTC4282_code_to_VGPIO(uint16_t code)
Convert ADC code to VGPIO.
float LTC4282_code_to_energy(uint64_t code, float fullscaleVoltage, float resistor, float tConv)
Convert ADC code to energy.
uint8_t LT_byte[8]
4 bytes (unsigned 8-bit integers) to be converted to a 32-bit signed or unsigned integer ...
int8_t LTC4282_read_48_bits(uint8_t i2c_address, uint8_t adc_command, uint64_t *adc_code)
Read a 48-bit code from the LTC4282.
int64_t LT_int64
32-bit signed integer to be converted to four bytes
float LTC4282_code_to_current(uint16_t code, float resistor)
Convert ADC code to current.
float LTC4282_code_to_avg_power(uint64_t code, float energy, float tConv)
Convert ADC code to average power.
int8_t LTC4282_read(uint8_t i2c_address, uint8_t adc_command, uint8_t *adc_code)
Read an 8-bit code from the LTC4282.
static uint16_t current
the current measurement from the LTC3335's counter test mode.
float LTC4282_code_to_volt_alarm(uint8_t code, float fullscaleVoltage)
Convert ADC code to alarm voltage.
uint8_t LTC4282_current_to_code_alarm(float current, float resistor)
Convert current to alarm code.
int8_t LTC4282_write(uint8_t i2c_address, uint8_t adc_command, uint8_t code)
Write an 8-bit code to the LTC4282.
int8_t LTC4282_write_32_bits(uint8_t i2c_address, uint8_t adc_command, uint32_t code)
Write an 32-bit code to the LTC4282.
const float LTC4282_VSOURCE_24V_FS
uint8_t LTC4282_volt_to_code_alarm(float volt, float fullscaleVoltage)
Convert voltage to alarm code.