The LTC®2946 is a rail-to-rail system monitor that measures current, voltage, power, charge and energy. It features an operating range of 2.7V to 100V and includes a shunt regulator for supplies above 100V. The current measurement common mode range of 0V to 100V is independent of the input supply. A 12-bit ADC measures load current, input voltage and an auxiliary external voltage. Load current and internally calculated power are integrated over an external clock or crystal or internal oscillator time base for charge and energy. An accurate time base allows the LTC2946 to provide measurement accuracy of better than ±0.6% for charge and ±1% for power and energy. Minimum and maximum values are stored and an overrange alert with programmable thresholds minimizes the need for software polling. Data is reported via a standard I2C interface. Shutdown mode reduces power consumption to 15uA.
LTC2946 I2C Address Assignment | Value | AD1 | AD0 |
---|---|---|---|
LTC2946_I2C_ADDRESS | 0x67 | High | Low |
LTC2946_I2C_ADDRESS | 0x68 | NC | High |
LTC2946_I2C_ADDRESS | 0x69 | High | High |
LTC2946_I2C_ADDRESS | 0x6A | NC | NC |
LTC2946_I2C_ADDRESS | 0x6B | NC | Low |
LTC2946_I2C_ADDRESS | 0x6C | Low | High |
LTC2946_I2C_ADDRESS | 0x6D | High | NC |
LTC2946_I2C_ADDRESS | 0x6E | Low | NC |
LTC2946_I2C_ADDRESS | 0x6F | Low | Low |
LTC2946_I2C_MASS_WRITE | 0xCC | X | X |
LTC2946_I2C_ALERT_RESPONSE | 0x19 | X | X |
Name | Value |
---|---|
LTC2946_CTRLA_REG | 0x00 |
LTC2946_CTRLB_REG | 0x01 |
LTC2946_ALERT1_REG | 0x02 |
LTC2946_STATUS1_REG | 0x03 |
LTC2946_FAULT1_REG | 0x04 |
LTC2946_POWER_MSB2_REG | 0x05 |
LTC2946_POWER_MSB1_REG | 0x06 |
LTC2946_POWER_LSB_REG | 0x07 |
LTC2946_MAX_POWER_MSB2_REG | 0x08 |
LTC2946_MAX_POWER_MSB1_REG | 0x09 |
LTC2946_MAX_POWER_LSB_REG | 0x0A |
LTC2946_MIN_POWER_MSB2_REG | 0x0B |
LTC2946_MIN_POWER_MSB1_REG | 0x0C |
LTC2946_MIN_POWER_LSB_REG | 0x0D |
LTC2946_MAX_POWER_THRESHOLD_MSB2_REG | 0x0E |
LTC2946_MAX_POWER_THRESHOLD_MSB1_REG | 0x0F |
LTC2946_MAX_POWER_THRESHOLD_LSB_REG | 0x10 |
LTC2946_MIN_POWER_THRESHOLD_MSB2_REG | 0x11 |
LTC2946_MIN_POWER_THRESHOLD_MSB1_REG | 0x12 |
LTC2946_MIN_POWER_THRESHOLD_LSB_REG | 0x13 |
LTC2946_DELTA_SENSE_MSB_REG | 0x14 |
LTC2946_DELTA_SENSE_LSB_REG | 0x15 |
LTC2946_MAX_DELTA_SENSE_MSB_REG | 0x16 |
LTC2946_MAX_DELTA_SENSE_LSB_REG | 0x17 |
LTC2946_MIN_DELTA_SENSE_MSB_REG | 0x18 |
LTC2946_MIN_DELTA_SENSE_LSB_REG | 0x19 |
LTC2946_MAX_DELTA_SENSE_THRESHOLD_MSB_REG | 0x1A |
LTC2946_MAX_DELTA_SENSE_THRESHOLD_LSB_REG | 0x1B |
LTC2946_MIN_DELTA_SENSE_THRESHOLD_MSB_REG | 0x1C |
LTC2946_MIN_DELTA_SENSE_THRESHOLD_LSB_REG | 0x1D |
LTC2946_VIN_MSB_REG | 0x1E |
LTC2946_VIN_LSB_REG | 0x1F |
LTC2946_MAX_VIN_MSB_REG | 0x20 |
LTC2946_MAX_VIN_LSB_REG | 0x21 |
LTC2946_MIN_VIN_MSB_REG | 0x22 |
LTC2946_MIN_VIN_LSB_REG | 0x23 |
LTC2946_MAX_VIN_THRESHOLD_MSB_REG | 0x24 |
LTC2946_MAX_VIN_THRESHOLD_LSB_REG | 0x25 |
LTC2946_MIN_VIN_THRESHOLD_MSB_REG | 0x26 |
LTC2946_MIN_VIN_THRESHOLD_LSB_REG | 0x27 |
LTC2946_ADIN_MSB_REG | 0x28 |
LTC2946_ADIN_LSB_REG_REG | 0x29 |
LTC2946_MAX_ADIN_MSB_REG | 0x2A |
LTC2946_MAX_ADIN_LSB_REG | 0x2B |
LTC2946_MIN_ADIN_MSB_REG | 0x2C |
LTC2946_MIN_ADIN_LSB_REG | 0x2D |
LTC2946_MAX_ADIN_THRESHOLD_MSB_REG | 0x2E |
LTC2946_MAX_ADIN_THRESHOLD_LSB_REG | 0x2F |
LTC2946_MIN_ADIN_THRESHOLD_MSB_REG | 0x30 |
LTC2946_MIN_ADIN_THRESHOLD_LSB_REG | 0x31 |
LTC2946_ALERT2_REG | 0x32 |
LTC2946_GPIO_CFG_REG | 0x33 |
LTC2946_TIME_COUNTER_MSB3_REG | 0x34 |
LTC2946_TIME_COUNTER_MSB2_REG | 0x35 |
LTC2946_TIME_COUNTER_MSB1_REG | 0x36 |
LTC2946_TIME_COUNTER_LSB_REG | 0x37 |
LTC2946_CHARGE_MSB3_REG | 0x38 |
LTC2946_CHARGE_MSB2_REG | 0x39 |
LTC2946_CHARGE_MSB1_REG | 0x3A |
LTC2946_CHARGE_LSB_REG | 0x3B |
LTC2946_ENERGY_MSB3_REG | 0x3C |
LTC2946_ENERGY_MSB2_REG | 0x3D |
LTC2946_ENERGY_MSB1_REG | 0x3E |
LTC2946_ENERGY_LSB_REG | 0x3F |
LTC2946_STATUS2_REG | 0x40 |
LTC2946_FAULT2_REG | 0x41 |
LTC2946_GPIO3_CTRL_REG | 0x42 |
LTC2946_CLK_DIV_REG | 0x43 |
Voltage Selection Command | Value |
---|---|
LTC2946_DELTA_SENSE | 0x00 |
LTC2946_VDD | 0x08 |
LTC2946_ADIN | 0x10 |
LTC2946_SENSE_PLUS | 0x18 |
Command Codes | Value |
---|---|
LTC2946_ADIN_INTVCC | 0x80 |
LTC2946_ADIN_GND | 0x00 |
LTC2946_OFFSET_CAL_LAST | 0x60 |
LTC2946_OFFSET_CAL_128 | 0x40 |
LTC2946_OFFSET_CAL_16 | 0x20 |
LTC2946_OFFSET_CAL_EVERY | 0x00 |
LTC2946_CHANNEL_CONFIG_SNAPSHOT | 0x07 |
LTC2946_CHANNEL_CONFIG_V_C | 0x06 |
LTC2946_CHANNEL_CONFIG_A_V_C_1 | 0x05 |
LTC2946_CHANNEL_CONFIG_A_V_C_2 | 0x04 |
LTC2946_CHANNEL_CONFIG_A_V_C_3 | 0x03 |
LTC2946_CHANNEL_CONFIG_V_C_1 | 0x02 |
LTC2946_CHANNEL_CONFIG_V_C_2 | 0x01 |
LTC2946_CHANNEL_CONFIG_V_C_3 | 0x00 |
LTC2946_ENABLE_ALERT_CLEAR | 0x80 |
LTC2946_ENABLE_SHUTDOWN | 0x40 |
LTC2946_ENABLE_CLEARED_ON_READ | 0x20 |
LTC2946_ENABLE_STUCK_BUS_RECOVER | 0x10 |
LTC2946_DISABLE_ALERT_CLEAR | 0x7F |
LTC2946_DISABLE_SHUTDOWN | 0xBF |
LTC2946_DISABLE_CLEARED_ON_READ | 0xDF |
LTC2946_DISABLE_STUCK_BUS_RECOVER | 0xEF |
LTC2946_ACC_PIN_CONTROL | 0x08 |
LTC2946_DISABLE_ACC | 0x04 |
LTC2946_ENABLE_ACC | 0x00 |
LTC2946_RESET_ALL | 0x03 |
LTC2946_RESET_ACC | 0x02 |
LTC2946_ENABLE_AUTO_RESET | 0x01 |
LTC2946_DISABLE_AUTO_RESET | 0x00 |
LTC2946_MAX_POWER_MSB2_RESET | 0x00 |
LTC2946_MIN_POWER_MSB2_RESET | 0xFF |
LTC2946_MAX_DELTA_SENSE_MSB_RESET | 0x00 |
LTC2946_MIN_DELTA_SENSE_MSB_RESET | 0xFF |
LTC2946_MAX_VIN_MSB_RESET | 0x00 |
LTC2946_MIN_VIN_MSB_RESET | 0xFF |
LTC2946_MAX_ADIN_MSB_RESET | 0x00 |
LTC2946_MIN_ADIN_MSB_RESET | 0xFF |
LTC2946_ENABLE_MAX_POWER_ALERT | 0x80 |
LTC2946_ENABLE_MIN_POWER_ALERT | 0x40 |
LTC2946_DISABLE_MAX_POWER_ALERT | 0x7F |
LTC2946_DISABLE_MIN_POWER_ALERT | 0xBF |
LTC2946_ENABLE_MAX_I_SENSE_ALERT | 0x20 |
LTC2946_ENABLE_MIN_I_SENSE_ALERT | 0x10 |
LTC2946_DISABLE_MAX_I_SENSE_ALERT | 0xDF |
LTC2946_DISABLE_MIN_I_SENSE_ALERT | 0xEF |
LTC2946_ENABLE_MAX_VIN_ALERT | 0x08 |
LTC2946_ENABLE_MIN_VIN_ALERT | 0x04 |
LTC2946_DISABLE_MAX_VIN_ALERT | 0xF7 |
LTC2946_DISABLE_MIN_VIN_ALERT | 0xFB |
LTC2946_ENABLE_MAX_ADIN_ALERT | 0x02 |
LTC2946_ENABLE_MIN_ADIN_ALERT | 0x01 |
LTC2946_DISABLE_MAX_ADIN_ALERT | 0xFD |
LTC2946_DISABLE_MIN_ADIN_ALERT | 0xFE |
LTC2946_ENABLE_ADC_DONE_ALERT | 0x80 |
LTC2946_DISABLE_ADC_DONE_ALERT | 0x7F |
LTC2946_ENABLE_GPIO_1_ALERT | 0x40 |
LTC2946_DISABLE_GPIO_1_ALERT | 0xBF |
LTC2946_ENABLE_GPIO_2_ALERT | 0x20 |
LTC2946_DISABLE_GPIO_2_ALERT | 0xDF |
LTC2946_ENABLE_STUCK_BUS_WAKE_ALERT | 0x08 |
LTC2946_DISABLE_STUCK_BUS_WAKE_ALERT | 0xF7 |
LTC2946_ENABLE_ENERGY_OVERFLOW_ALERT | 0x04 |
LTC2946_DISABLE_ENERGY_OVERFLOW_ALERT | 0xFB |
LTC2946_ENABLE_CHARGE_OVERFLOW_ALERT | 0x02 |
LTC2946_DISABLE_CHARGE_OVERFLOW_ALERT | 0xFD |
LTC2946_ENABLE_COUNTER_OVERFLOW_ALERT | 0x01 |
LTC2946_DISABLE_COUNTER_OVERFLOW_ALERT | 0xFE |
LTC2946_GPIO1_IN_ACTIVE_HIGH | 0xC0 |
LTC2946_GPIO1_IN_ACTIVE_LOW | 0x80 |
LTC2946_GPIO1_OUT_HIGH_Z | 0x40 |
LTC2946_GPIO1_OUT_LOW | 0x00 |
LTC2946_GPIO2_IN_ACTIVE_HIGH | 0x30 |
LTC2946_GPIO2_IN_ACTIVE_LOW | 0x20 |
LTC2946_GPIO2_OUT_HIGH_Z | 0x10 |
LTC2946_GPIO2_OUT_LOW | 0x12 |
LTC2946_GPIO2_IN_ACC | 0x00 |
LTC2946_GPIO3_IN_ACTIVE_HIGH | 0x18 |
LTC2946_GPIO3_IN_ACTIVE_LOW | 0x10 |
LTC2946_GPIO3_OUT_REG_42 | 0x04 |
LTC2946_GPIO3_OUT_ALERT | 0x00 |
LTC2946_GPIO3_OUT_LOW | 0x40 |
LTC2946_GPIO3_OUT_HIGH_Z | 0x00 |
LTC2946_GPIO_ALERT_CLEAR | 0x00 |
Register Mask Command | Value |
---|---|
LTC2946_CTRLA_ADIN_MASK | 0x7F |
LTC2946_CTRLA_OFFSET_MASK | 0x9F |
LTC2946_CTRLA_VOLTAGE_SEL_MASK | 0xE7 |
LTC2946_CTRLA_CHANNEL_CONFIG_MASK | 0xF8 |
LTC2946_CTRLB_ACC_MASK | 0xF3 |
LTC2946_CTRLB_RESET_MASK | 0xFC |
LTC2946_GPIOCFG_GPIO1_MASK | 0x3F |
LTC2946_GPIOCFG_GPIO2_MASK | 0xCF |
LTC2946_GPIOCFG_GPIO3_MASK | 0xF3 |
LTC2946_GPIOCFG_GPIO2_OUT_MASK | 0xFD |
LTC2946_GPIO3_CTRL_GPIO3_MASK | 0xBF |