160 #define LTC2992_I2C_ADDRESS 0x6A // Float Float 167 #define LTC2992_I2C_MASS_WRITE 0x66 168 #define LTC2992_I2C_ALERT_RESPONSE 0x0C 334 #define LTC2992_CTRLA_REG 0x00 335 #define LTC2992_CTRLB_REG 0x01 336 #define LTC2992_ALERT1_REG 0x02 337 #define LTC2992_FAULT1_REG 0x03 338 #define LTC2992_NADC_REG 0x04 339 #define LTC2992_POWER1_MSB2_REG 0x05 340 #define LTC2992_POWER1_MSB1_REG 0x06 341 #define LTC2992_POWER1_LSB_REG 0x07 342 #define LTC2992_MAX_POWER1_MSB2_REG 0x08 343 #define LTC2992_MAX_POWER1_MSB1_REG 0x09 344 #define LTC2992_MAX_POWER1_LSB_REG 0x0A 345 #define LTC2992_MIN_POWER1_MSB2_REG 0x0B 346 #define LTC2992_MIN_POWER1_MSB1_REG 0x0C 347 #define LTC2992_MIN_POWER1_LSB_REG 0x0D 348 #define LTC2992_MAX_POWER1_THRESHOLD_MSB2_REG 0x0E 349 #define LTC2992_MAX_POWER1_THRESHOLD_MSB1_REG 0x0F 350 #define LTC2992_MAX_POWER1_THRESHOLD_LSB_REG 0x10 351 #define LTC2992_MIN_POWER1_THRESHOLD_MSB2_REG 0x11 352 #define LTC2992_MIN_POWER1_THRESHOLD_MSB1_REG 0x12 353 #define LTC2992_MIN_POWER1_THRESHOLD_LSB_REG 0x13 354 #define LTC2992_DELTA_SENSE1_MSB_REG 0x14 355 #define LTC2992_DELTA_SENSE1_LSB_REG 0x15 356 #define LTC2992_MAX_DELTA1_SENSE_MSB_REG 0x16 357 #define LTC2992_MAX_DELTA1_SENSE_LSB_REG 0x17 358 #define LTC2992_MIN_DELTA1_SENSE_MSB_REG 0x18 359 #define LTC2992_MIN_DELTA1_SENSE_LSB_REG 0x19 360 #define LTC2992_MAX_DELTA1_SENSE_THRESHOLD_MSB_REG 0x1A 361 #define LTC2992_MAX_DELTA1_SENSE_THRESHOLD_LSB_REG 0x1B 362 #define LTC2992_MIN_DELTA1_SENSE_THRESHOLD_MSB_REG 0x1C 363 #define LTC2992_MIN_DELTA1_SENSE_THRESHOLD_LSB_REG 0x1D 364 #define LTC2992_SENSE1_MSB_REG 0x1E 365 #define LTC2992_SENSE1_LSB_REG 0x1F 366 #define LTC2992_MAX_SENSE1_MSB_REG 0x20 367 #define LTC2992_MAX_SENSE1_LSB_REG 0x21 368 #define LTC2992_MIN_SENSE1_MSB_REG 0x22 369 #define LTC2992_MIN_SENSE1_LSB_REG 0x23 370 #define LTC2992_MAX_SENSE1_THRESHOLD_MSB_REG 0x24 371 #define LTC2992_MAX_SENSE1_THRESHOLD_LSB_REG 0x25 372 #define LTC2992_MIN_SENSE1_THRESHOLD_MSB_REG 0x26 373 #define LTC2992_MIN_SENSE1_THRESHOLD_LSB_REG 0x27 374 #define LTC2992_GPIO1_MSB_REG 0x28 375 #define LTC2992_GPIO1_LSB_REG_REG 0x29 376 #define LTC2992_MAX_GPIO1_MSB_REG 0x2A 377 #define LTC2992_MAX_GPIO1_LSB_REG 0x2B 378 #define LTC2992_MIN_GPIO1_MSB_REG 0x2C 379 #define LTC2992_MIN_GPIO1_LSB_REG 0x2D 380 #define LTC2992_MAX_GPIO1_THRESHOLD_MSB_REG 0x2E 381 #define LTC2992_MAX_GPIO1_THRESHOLD_LSB_REG 0x2F 382 #define LTC2992_MIN_GPIO1_THRESHOLD_MSB_REG 0x30 383 #define LTC2992_MIN_GPIO1_THRESHOLD_LSB_REG 0x31 384 #define LTC2992_ADC_STATUS_REG 0x32 385 #define LTC2992_ALERT2_REG 0x34 386 #define LTC2992_FAULT2_REG 0x35 387 #define LTC2992_POWER2_MSB2_REG 0x37 388 #define LTC2992_POWER2_MSB1_REG 0x38 389 #define LTC2992_POWER2_LSB_REG 0x39 390 #define LTC2992_MAX_POWER2_MSB2_REG 0x3A 391 #define LTC2992_MAX_POWER2_MSB1_REG 0x3B 392 #define LTC2992_MAX_POWER2_LSB_REG 0x3C 393 #define LTC2992_MIN_POWER2_MSB2_REG 0x3D 394 #define LTC2992_MIN_POWER2_MSB1_REG 0x3E 395 #define LTC2992_MIN_POWER2_LSB_REG 0x3F 396 #define LTC2992_MAX_POWER2_THRESHOLD_MSB2_REG 0x40 397 #define LTC2992_MAX_POWER2_THRESHOLD_MSB1_REG 0x41 398 #define LTC2992_MAX_POWER2_THRESHOLD_LSB_REG 0x42 399 #define LTC2992_MIN_POWER2_THRESHOLD_MSB2_REG 0x43 400 #define LTC2992_MIN_POWER2_THRESHOLD_MSB1_REG 0x44 401 #define LTC2992_MIN_POWER2_THRESHOLD_LSB_REG 0x45 402 #define LTC2992_DELTA_SENSE2_MSB_REG 0x46 403 #define LTC2992_DELTA_SENSE2_LSB_REG 0x47 404 #define LTC2992_MAX_DELTA2_SENSE_MSB_REG 0x48 405 #define LTC2992_MAX_DELTA2_SENSE_LSB_REG 0x49 406 #define LTC2992_MIN_DELTA2_SENSE_MSB_REG 0x4A 407 #define LTC2992_MIN_DELTA2_SENSE_LSB_REG 0x4B 408 #define LTC2992_MAX_DELTA2_SENSE_THRESHOLD_MSB_REG 0x4C 409 #define LTC2992_MAX_DELTA2_SENSE_THRESHOLD_LSB_REG 0x4D 410 #define LTC2992_MIN_DELTA2_SENSE_THRESHOLD_MSB_REG 0x4E 411 #define LTC2992_MIN_DELTA2_SENSE_THRESHOLD_LSB_REG 0x4F 412 #define LTC2992_SENSE2_MSB_REG 0x50 413 #define LTC2992_SENSE2_LSB_REG 0x51 414 #define LTC2992_MAX_SENSE2_MSB_REG 0x52 415 #define LTC2992_MAX_SENSE2_LSB_REG 0x53 416 #define LTC2992_MIN_SENSE2_MSB_REG 0x54 417 #define LTC2992_MIN_SENSE2_LSB_REG 0x55 418 #define LTC2992_MAX_SENSE2_THRESHOLD_MSB_REG 0x56 419 #define LTC2992_MAX_SENSE2_THRESHOLD_LSB_REG 0x57 420 #define LTC2992_MIN_SENSE2_THRESHOLD_MSB_REG 0x58 421 #define LTC2992_MIN_SENSE2_THRESHOLD_LSB_REG 0x59 422 #define LTC2992_GPIO2_MSB_REG 0x5A 423 #define LTC2992_GPIO2_LSB_REG_REG 0x5B 424 #define LTC2992_MAX_GPIO2_MSB_REG 0x5C 425 #define LTC2992_MAX_GPIO2_LSB_REG 0x5D 426 #define LTC2992_MIN_GPIO2_MSB_REG 0x5E 427 #define LTC2992_MIN_GPIO2_LSB_REG 0x5F 428 #define LTC2992_MAX_GPIO2_THRESHOLD_MSB_REG 0x60 429 #define LTC2992_MAX_GPIO2_THRESHOLD_LSB_REG 0x61 430 #define LTC2992_MIN_GPIO2_THRESHOLD_MSB_REG 0x62 431 #define LTC2992_MIN_GPIO2_THRESHOLD_LSB_REG 0x63 432 #define LTC2992_GPIO3_MSB_REG 0x64 433 #define LTC2992_GPIO3_LSB_REG_REG 0x65 434 #define LTC2992_MAX_GPIO3_MSB_REG 0x66 435 #define LTC2992_MAX_GPIO3_LSB_REG 0x67 436 #define LTC2992_MIN_GPIO3_MSB_REG 0x68 437 #define LTC2992_MIN_GPIO3_LSB_REG 0x69 438 #define LTC2992_MAX_GPIO3_THRESHOLD_MSB_REG 0x6A 439 #define LTC2992_MAX_GPIO3_THRESHOLD_LSB_REG 0x6B 440 #define LTC2992_MIN_GPIO3_THRESHOLD_MSB_REG 0x6C 441 #define LTC2992_MIN_GPIO3_THRESHOLD_LSB_REG 0x6D 442 #define LTC2992_GPIO4_MSB_REG 0x6E 443 #define LTC2992_GPIO4_LSB_REG_REG 0x6F 444 #define LTC2992_MAX_GPIO4_MSB_REG 0x70 445 #define LTC2992_MAX_GPIO4_LSB_REG 0x71 446 #define LTC2992_MIN_GPIO4_MSB_REG 0x72 447 #define LTC2992_MIN_GPIO4_LSB_REG 0x73 448 #define LTC2992_MAX_GPIO4_THRESHOLD_MSB_REG 0x74 449 #define LTC2992_MAX_GPIO4_THRESHOLD_LSB_REG 0x75 450 #define LTC2992_MIN_GPIO4_THRESHOLD_MSB_REG 0x76 451 #define LTC2992_MIN_GPIO4_THRESHOLD_LSB_REG 0x77 452 #define LTC2992_ISUM_MSB_REG 0x78 453 #define LTC2992_ISUM_LSB_REG_REG 0x79 454 #define LTC2992_MAX_ISUM_MSB_REG 0x7A 455 #define LTC2992_MAX_ISUM_LSB_REG 0x7B 456 #define LTC2992_MIN_ISUM_MSB_REG 0x7C 457 #define LTC2992_MIN_ISUM_LSB_REG 0x7D 458 #define LTC2992_MAX_ISUM_THRESHOLD_MSB_REG 0x7E 459 #define LTC2992_MAX_ISUM_THRESHOLD_LSB_REG 0x7F 460 #define LTC2992_MIN_ISUM_THRESHOLD_MSB_REG 0x80 461 #define LTC2992_MIN_ISUM_THRESHOLD_LSB_REG 0x81 462 #define LTC2992_PSUM_MSB1_REG 0x82 463 #define LTC2992_PSUM_MSB_REG 0x83 464 #define LTC2992_PSUM_LSB_REG_REG 0x84 465 #define LTC2992_MAX_PSUM_MSB1_REG 0x85 466 #define LTC2992_MAX_PSUM_MSB_REG 0x86 467 #define LTC2992_MAX_PSUM_LSB_REG 0x87 468 #define LTC2992_MIN_PSUM_MSB1_REG 0x88 469 #define LTC2992_MIN_PSUM_MSB_REG 0x89 470 #define LTC2992_MIN_PSUM_LSB_REG 0x8A 471 #define LTC2992_MAX_PSUM_THRESHOLD_MSB1_REG 0x8B 472 #define LTC2992_MAX_PSUM_THRESHOLD_MSB_REG 0x8C 473 #define LTC2992_MAX_PSUM_THRESHOLD_LSB_REG 0x8D 474 #define LTC2992_MIN_PSUM_THRESHOLD_MSB1_REG 0x8E 475 #define LTC2992_MIN_PSUM_THRESHOLD_MSB_REG 0x8F 476 #define LTC2992_MIN_PSUM_THRESHOLD_LSB_REG 0x90 477 #define LTC2992_ALERT3_REG 0x91 478 #define LTC2992_FAULT3_REG 0x92 479 #define LTC2992_ALERT4_REG 0x93 480 #define LTC2992_FAULT4_REG 0x94 481 #define LTC2992_GPIO_STATUS_REG 0x95 482 #define LTC2992_GPIO_IO_CONT_REG 0x96 483 #define LTC2992_GPIO4_CFG_REG 0x97 492 #define LTC2992_OFFSET_CAL_DEMAND 0x80 493 #define LTC2992_OFFSET_CAL_EVERY 0x00 495 #define LTC2992_MODE_SHUTDOWN 0x60 496 #define LTC2992_MODE_SINGLE_CYCLE 0x40 497 #define LTC2992_MODE_SNAPSHOT 0x20 498 #define LTC2992_MODE_CONTINUOUS 0x00 500 #define LTC2992_CONTINUOUS_GPIO_1_2_3_4 0x18 501 #define LTC2992_CONTINUOUS_GPIO_1_2 0x10 502 #define LTC2992_CONTINUOUS_SENSE_1_2 0x08 503 #define LTC2992_CONTINUOUS_SENSE_1_2_GPIO_1_2_3_4 0x00 505 #define LTC2992_SNAPSHOT_GPIO_1_2 0x07 506 #define LTC2992_SNAPSHOT_SENSE_1_2 0x06 507 #define LTC2992_SNAPSHOT_GPIO_4 0x05 508 #define LTC2992_SNAPSHOT_GPIO_3 0x04 509 #define LTC2992_SNAPSHOT_GPIO_2 0x03 510 #define LTC2992_SNAPSHOT_GPIO_1 0x02 511 #define LTC2992_SNAPSHOT_SENSE_2 0x01 512 #define LTC2992_SNAPSHOT_SENSE_1 0x00 514 #define LTC2992_ENABLE_ALERT_CLEAR 0x80 515 #define LTC2992_ENABLE_CLEARED_ON_READ 0x20 516 #define LTC2992_ENABLE_STUCK_BUS_RECOVER 0x10 517 #define LTC2992_ENABLE_RESET_PEAK_VALUES 0x08 518 #define LTC2992_ENABLE_RESET_ALL 0x01 520 #define LTC2992_DISABLE_ALERT_CLEAR 0x7F 521 #define LTC2992_DISABLE_CLEARED_ON_READ 0xDF 522 #define LTC2992_DISABLE_STUCK_BUS_RECOVER 0xEF 523 #define LTC2992 DISABLE_RESET_PEAK_VALUES 0xF7 524 #define LTC2992_DISABLE_RESET_ALL 0xFE 526 #define LTC2992_ENABLE_MAX_POWER1_ALERT 0x80 527 #define LTC2992_ENABLE_MIN_POWER1_ALERT 0x40 528 #define LTC2992_DISABLE_MAX_POWER1_ALERT 0x7F 529 #define LTC2992_DISABLE_MIN_POWER1_ALERT 0xBF 531 #define LTC2992_ENABLE_MAX_I_SENSE1_ALERT 0x20 532 #define LTC2992_ENABLE_MIN_I_SENSE1_ALERT 0x10 533 #define LTC2992_DISABLE_MAX_I_SENSE1_ALERT 0xDF 534 #define LTC2992_DISABLE_MIN_I_SENSE1_ALERT 0xEF 536 #define LTC2992_ENABLE_MAX_SENSE1_ALERT 0x08 537 #define LTC2992_ENABLE_MIN_SENSE1_ALERT 0x04 538 #define LTC2992_DISABLE_MAX_SENSE1_ALERT 0xF7 539 #define LTC2992_DISABLE_MIN_SENSE1_ALERT 0xFB 541 #define LTC2992_ENABLE_MAX_GPIO1_ALERT 0x02 542 #define LTC2992_ENABLE_MIN_GPIO1_ALERT 0x01 543 #define LTC2992_DISABLE_MAX_GPIO1_ALERT 0xFD 544 #define LTC2992_DISABLE_MIN_GPIO1_ALERT 0xFE 548 #define LTC2992_ADC_RESOLUTION 0x80 551 #define LTC2992_ENABLE_MAX_POWER2_ALERT 0x80 552 #define LTC2992_ENABLE_MIN_POWER2_ALERT 0x40 553 #define LTC2992_DISABLE_MAX_POWER2_ALERT 0x7F 554 #define LTC2992_DISABLE_MIN_POWER2_ALERT 0xBF 556 #define LTC2992_ENABLE_MAX_I_SENSE2_ALERT 0x20 557 #define LTC2992_ENABLE_MIN_I_SENSE2_ALERT 0x10 558 #define LTC2992_DISABLE_MAX_I_SENSE2_ALERT 0xDF 559 #define LTC2992_DISABLE_MIN_I_SENSE2_ALERT 0xEF 561 #define LTC2992_ENABLE_MAX_SENSE2_ALERT 0x08 562 #define LTC2992_ENABLE_MIN_SENSE2_ALERT 0x04 563 #define LTC2992_DISABLE_MAX_SENSE2_ALERT 0xF7 564 #define LTC2992_DISABLE_MIN_SENSE2_ALERT 0xFB 566 #define LTC2992_ENABLE_MAX_GPIO2_ALERT 0x02 567 #define LTC2992_ENABLE_MIN_GPIO2_ALERT 0x01 568 #define LTC2992_DISABLE_MAX_GPIO2_ALERT 0xFD 569 #define LTC2992_DISABLE_MIN_GPIO2_ALERT 0xFE 572 #define LTC2992_ENABLE_MAX_GPIO3_ALERT 0x80 573 #define LTC2992_ENABLE_MIN_GPIO3_ALERT 0x40 574 #define LTC2992_DISABLE_MAX_GPIO3_ALERT 0x7F 575 #define LTC2992_DISABLE_MIN_GPIO3_ALERT 0xBF 577 #define LTC2992_ENABLE_MAX_GPIO4_ALERT 0x20 578 #define LTC2992_ENABLE_MIN_GPIO4_ALERT 0x10 579 #define LTC2992_DISABLE_MAX_GPIO4_ALERT 0xDF 580 #define LTC2992_DISABLE_MIN_GPIO4_ALERT 0xEF 582 #define LTC2992_ENABLE_MAX_I_SUM_ALERT 0x08 583 #define LTC2992_ENABLE_MIN_I_SUM_ALERT 0x04 584 #define LTC2992_DISABLE_MAX_I_SUM_ALERT 0xF7 585 #define LTC2992_DISABLE_MIN_I_SUM_ALERT 0xFB 587 #define LTC2992_ENABLE_MAX_P_SUM_ALERT 0x02 588 #define LTC2992_ENABLE_MIN_P_SUM_ALERT 0x01 589 #define LTC2992_DISABLE_MAX_P_SUM_ALERT 0xFD 590 #define LTC2992_DISABLE_MIN_P_SUM_ALERT 0xFE 593 #define LTC2992_ENABLE_V_ADC_READY_ALERT 0x80 594 #define LTC2992_ENABLE_I_ADC_READY_ALERT 0x40 595 #define LTC2992_DISABLE_V_ADC_READY_ALERT 0x7F 596 #define LTC2992_DISABLE_I_ADC_READY_ALERT 0xBF 598 #define LTC2992_ENABLE_STUCK_BUS_TIMEOUT_ALERT 0x10 599 #define LTC2992_DISABLE_STUCK_BUS_TIMEOUT_ALERT 0xEF 601 #define LTC2992_ENABLE_GPIO1_INPUT_ALERT 0x08 602 #define LTC2992_ENABLE_GPIO2_INPUT_ALERT 0x04 603 #define LTC2992_DISABLE_GPIO1_INPUT_ALERT 0xF7 604 #define LTC2992_DISABLE_GPIO2_INPUT_ALERT 0xFB 606 #define LTC2992_ENABLE_GPIO3_INPUT_ALERT 0x02 607 #define LTC2992_DISABLE_GPIO3_INPUT_ALERT 0xFD 611 #define LTC2992_GPIO1_OUT_HIGH_Z 0x7F 612 #define LTC2992_GPIO1_OUT_LOW 0x80 613 #define LTC2992_GPIO2_OUT_HIGH_Z 0xBF 614 #define LTC2992_GPIO2_OUT_LOW 0x40 616 #define LTC2992_GPIO3_CONFIG_LOW_DATARDY 0x30 617 #define LTC2992_GPIO3_CONFIG_128_LOW 0x20 618 #define LTC2992_GPIO3_CONFIG_16_LOW 0x10 619 #define LTC2992_GPIO3_CONFIG_IO 0x00 621 #define LTC2992_GPIO1_IN_HIGH_POL_ALERT 0x08 622 #define LTC2992_GPIO1_IN_LOW_POL_ALERT 0xFC 623 #define LTC2992_GPIO2_IN_HIGH_POL_ALERT 0x04 624 #define LTC2992_GPIO2_IN_LOW_POL_ALERT 0xFB 625 #define LTC2992_GPIO3_IN_HIGH_POL_ALERT 0x02 626 #define LTC2992_GPIO3_IN_LOW_POL_ALERT 0xFD 627 #define LTC2992_GPIO3_OUT_LOW 0x01 628 #define LTC2992_GPIO3_OUT_HIGH_Z 0xFE 631 #define LTC2992_ALERT_GENERATED_TRUE 0x80 632 #define LTC2992_ALERT_GENERATED_CLEAR 0x7F 633 #define LTC2992_GPIO4_OUT_LOW 0x40 634 #define LTC2992_GPIO4_OUT_HI_Z 0xBF 640 #define LTC2992_CTRLA_OFFSET_MASK 0x7F 641 #define LTC2992_CTRLA_MEASUREMENT_MODE_MASK 0x9F 642 #define LTC2992_CTRLA_VOLTAGE_SEL_CONTINIOUS_MASK 0xE7 643 #define LTC2992_CTRLA_VOLTAGE_SEL_SNAPSHOT_MASK 0xF8 644 #define LTC2992_CTRLB_ACC_MASK 0xF3 645 #define LTC2992_CTRLB_RESET_MASK 0xFC 646 #define LTC2992_GPIOCFG_GPIO1_MASK 0x3F 647 #define LTC2992_GPIOCFG_GPIO2_MASK 0xCF 648 #define LTC2992_GPIOCFG_GPIO3_MASK 0xCF 649 #define LTC2992_GPIOCFG_GPIO2_OUT_MASK 0xFD 650 #define LTC2992_GPIO3_CTRL_GPIO3_MASK 0xBF 701 float LTC2992_SENSE_lsb
706 float LTC2992_ADIN_lsb
712 float LTC2992_DELTA_SENSE_lsb
719 float LTC2992_DELTA_SENSE_lsb
726 float LTC2992_Power_lsb);
730 float LTC2992_Power_lsb);
float LTC2992_code_to_power_sum(int32_t adc_code, float resistor, float LTC2992_Power_lsb)
Power LSB Weight.
static uint8_t adc_command
const float resistor
resistor value on demo board
int8_t LTC2992_write_16_bits(uint8_t i2c_address, uint8_t adc_command, uint16_t code)
Write a 16-bit code to the LTC2992.
int8_t LTC2992_read_16_bits(uint8_t i2c_address, uint8_t adc_command, uint16_t *adc_code)
Reads a 16-bit adc_code from LTC2992.
int8_t LTC2992_write(uint8_t i2c_address, uint8_t adc_command, uint8_t code)
Write an 8-bit code to the LTC2992.
float LTC2992_code_to_current_sum(uint16_t adc_code, float resistor, float LTC2992_DELTA_SENSE_lsb)
Calculate the LTC2992 current sum with a sense resistor.
int8_t LTC2992_read_12_bits(uint8_t i2c_address, uint8_t adc_command, uint16_t *adc_code)
Reads a 12-bit adc_code from LTC2992.
float LTC2992_GPIO_code_to_voltage(uint16_t adc_code, float LTC2992_ADIN_lsb)
Calculate the LTC2992 GPIO voltage.
float LTC2992_code_to_power(int32_t adc_code, float resistor, float LTC2992_Power_lsb)
Calculate the LTC2992 power.
int8_t LTC2992_write_24_bits(uint8_t i2c_address, uint8_t adc_command, uint32_t code)
Write a 24-bit code to the LTC2992.
int8_t LTC2992_read_24_bits(uint8_t i2c_address, uint8_t adc_command, uint32_t *adc_code)
Reads a 24-bit adc_code from LTC2992.
float LTC2992_SENSE_code_to_voltage(uint16_t adc_code, float LTC2992_SENSE_lsb)
Calculate the LTC2992 SENSE voltage.
float LTC2992_code_to_current(uint16_t adc_code, float resistor, float LTC2992_DELTA_SENSE_lsb)
Calculate the LTC2992 current with a sense resistor.
int8_t LTC2992_read(uint8_t i2c_address, uint8_t adc_command, uint8_t *adc_code)
Reads an 8-bit adc_code from LTC2992.