66 #define OPERATION 0x01 67 #define ON_OFF_CONFIG 0x02 68 #define CLEAR_FAULTS 0x03 69 #define PAGE_PLUS_WRITE 0x05 70 #define PAGE_PLUS_READ 0x06 71 #define WRITE_PROTECT 0x10 72 #define STORE_USER_ALL 0x15 73 #define RESTORE_USER_ALL 0x16 74 #define MFR_COMPARE_USER_ALL 0xF0 75 #define SMBALERT_MASK 0x1B 76 #define VOUT_MODE 0x20 77 #define VOUT_COMMAND 0x21 79 #define VOUT_MARGIN_HIGH 0x25 80 #define VOUT_MARGIN_LOW 0x26 81 #define VOUT_OV_FAULT_LIMIT 0x40 82 #define VOUT_OV_FAULT_RESPONSE 0x41 83 #define VOUT_OV_WARN_LIMIT 0x42 84 #define VOUT_UV_WARN_LIMIT 0x43 85 #define VOUT_UV_FAULT_LIMIT 0x44 86 #define VOUT_UV_FAULT_RESPONSE 0x45 87 #define IOUT_OC_FAULT_LIMIT 0x46 88 #define IOUT_OC_WARN_LIMIT 0x4A 89 #define OT_FAULT_LIMIT 0x4F 90 #define OT_WARN_LIMIT 0x51 91 #define UT_FAULT_LIMIT 0x53 92 #define UT_WARN_LIMIT 0x52 93 #define VIN_OV_FAULT_LIMIT 0x55 94 #define VIN_OV_WARN_LIMIT 0x57 95 #define VIN_UV_WARN_LIMIT 0x58 96 #define VIN_UV_FAULT_LIMIT 0x59 97 #define TON_DELAY 0x60 99 #define TON_MAX_FAULT_LIMIT 0x62 100 #define TON_MAX_FAULT_RESPONSE 0x63 101 #define TOFF_DELAY 0x64 102 #define TOFF_FALL 0x65 103 #define TOFF_MAX_WARN_LIMIT 0x66 104 #define IIN_OC_WARN_LIMIT 0x5D 105 #define STATUS_BYTE 0x78 106 #define STATUS_WORD 0x79 107 #define STATUS_VOUT 0x7A 108 #define STATUS_IOUT 0x7B 109 #define STATUS_INPUT 0x7C 110 #define STATUS_TEMP 0X7D 111 #define STATUS_CML 0x7E 112 #define STATUS_MFR_SPECIFIC 0x80 113 #define READ_VIN 0x88 114 #define READ_IIN 0x89 115 #define READ_VOUT 0x8B 116 #define READ_IOUT 0x8C 117 #define READ_OTEMP 0x8D // This is internal for LTC297X 118 #define READ_ITEMP 0x8E 119 #define READ_DUTY_CYCLE 0x94 // Controllers only, sans LTC3884 120 #define READ_POUT 0x96 121 #define READ_PIN 0x97 122 #define MFR_MODEL 0x9A // LTC388X only 123 #define USER_DATA_03 0xB3 // Not LTC2978/A 124 #define USER_DATA_04 0xB4 // Not LTC2978/A 125 #define MFR_EE_UNLOCK 0xBD 126 #define MFR_EE_ERASE 0xBE 127 #define MFR_EE_DATA 0xBF 128 #define MFR_CONFIG_LTC2974 0xD0 129 #define MFR_CONFIG_ALL 0xD1 130 #define MFR_WATCHDOG_T_FIRST 0xE2 131 #define MFR_WATCHDOG_T 0xE3 132 #define MFR_PADS 0xE5 133 #define MFR_ADDRESS 0xE6 134 #define MFR_SPECIAL_ID 0xE7 135 #define MFR_FAULT_LOG_STORE 0xEA 136 #define MFR_FAULT_LOG_RESTORE 0xEB 137 #define MFR_FAULT_LOG_CLEAR 0xEC 138 #define MFR_READ_IIN 0xED // LTC3880 139 #define MFR_FAULT_LOG_STATUS 0xED // LTC297X only 140 #define MFR_FAULT_LOG 0xEE 141 #define MFR_COMMON 0xEF 142 #define MFR_SPARE_0 0xF7 // LTC2978/A 143 #define MFR_SPARE_1 0xF8 // LTC2978A 144 #define MFR_SPARE_2 0xF9 // LTC2978/A 145 #define MFR_SPARE_3 0xFA // LTC2978A 146 #define MFR_TEMP_1_GAIN 0xF8 147 #define MFR_TEMP_1_OFFSET 0xF9 148 #define MFR_EEPROM_STATUS 0xF1 // LTC388X only 149 #define MFR_RAIL_ADDRESS 0xFA // Controllers only 150 #define MFR_RESET 0xFD 152 #define LTC3880_SW_NONE 0x0001 153 #define LTC3880_SW_CML 0x0002 154 #define LTC3880_SW_TEMP 0x0004 155 #define LTC3880_SW_IOUT_OC 0x0010 156 #define LTC3880_SW_VOUT_OV 0x0020 157 #define LTC3880_SW_OFF 0x0040 158 #define LTC3880_SW_BUSY 0x0080 159 #define LTC3880_SW_PGOODB 0x0800 160 #define LTC3880_SW_MFR 0x1000 161 #define LTC3880_SW_INPUT 0x2000 162 #define LTC3880_SW_IOUT_POUT 0x4000 163 #define LTC3880_SW_VOUT 0x8000 165 #define CFGALL_EFL 0x0080 // Generic version 167 #define LTC3880_CFGALL_RUN_CLR 0x0001 168 #define LTC3880_CFGALL_CLK_STR 0x0002 169 #define LTC3880_CFGALL_MASK_PLL_FLT 0x0004 170 #define LTC3880_CFGALL_IGNORE_RCFG 0x0040 171 #define LTC3880_CFGALL_EFL 0x0080 173 #define LTC3880_SMFR_EXT_GPIO 0x0001 174 #define LTC3880_SMFR_VDD_UV_OV 0x0004 175 #define LTC3880_SMFR_FAULT_LOG 0x0008 176 #define LTC3880_SMFR_PLL_UNLOCK 0x0010 177 #define LTC3880_SMFR_NVM_CRC 0x0020 178 #define LTC3880_SMFR_TEMP_WARN 0x0040 179 #define LTC3880_SMFR_TEMP_FAULT 0x0080 181 #define LTC3882_CFGALL_RUN_CLR_RISE 0x0001 182 #define LTC3882_CFGALL_CLK_STR 0x0002 183 #define LTC3882_CFGALL_PEC 0x0004 184 #define LTC3882_CFGALL_255MS_TMO 0x0008 185 #define LTC3882_CFGALL_DISABLE_SYNC 0x0010 186 #define LTC3882_CFGALL_IGNORE_RCFG 0x0040 187 #define LTC3882_CFGALL_EFL 0x0080 189 #define LTC3882_SMFR_EXT_GPIO 0x0001 190 #define LTC3882_SMFR_SHORT_CYCLE 0x0002 191 #define LTC3882_SMFR_FAULT_LOG 0x0008 192 #define LTC3882_SMFR_PLL_UNLOCK 0x0010 193 #define LTC3882_SMFR_NVM_CRC 0x0020 194 #define LTC3882_SMFR_TEMP_WARN 0x0040 195 #define LTC3882_SMFR_TEMP_FAULT 0x0080 197 #define LTC3883_CFGALL_CLK_STR 0x0002 198 #define LTC3883_CFGALL_PEC 0x0004 199 #define LTC3883_CFGALL_MASK_PLL_ULOCK 0x0008 200 #define LTC3883_CFGALL_IGNORE_RCFG 0x0040 201 #define LTC3883_CFGALL_EFL 0x0080 203 #define LTC3887_CFGALL_RUN_CLR_RISE 0x0001 204 #define LTC3887_CFGALL_CLK_STR 0x0002 205 #define LTC3887_CFGALL_PEC 0x0004 206 #define LTC3887_CFGALL_255MS_TMO 0x0008 207 #define LTC3887_CFGALL_DISABLE_SYNC 0x0010 208 #define LTC3887_CFGALL_IGNORE_RCFG 0x0040 209 #define LTC3887_CFGALL_EFL 0x0080 211 #define LTC3887_SMFR_EXT_GPIO 0x0001 212 #define LTC3887_SMFR_SHORT_CYCLE 0x0002 213 #define LTC3887_SMFR_FAULT_LOG 0x0008 214 #define LTC3887_SMFR_PLL_UNLOCK 0x0010 215 #define LTC3887_SMFR_NVM_CRC 0x0020 216 #define LTC3887_SMFR_TEMP_WARN 0x0040 217 #define LTC3887_SMFR_TEMP_FAULT 0x0080 219 #define LTC3883_SMFR_EXT_GPIO 0x0001 220 #define LTC3883_SMFR_VDD_UV_OV 0x0004 221 #define LTC3883_SMFR_FAULT_LOG 0x0008 222 #define LTC3883_SMFR_PLL_UNLOCK 0x0010 223 #define LTC3883_SMFR_NVM_CRC 0x0020 224 #define LTC3883_SMFR_TEMP_WARN 0x0040 225 #define LTC3883_SMFR_TEMP_FAULT 0x0080 227 #define LTC2972_SFL_EEPROM 0x0001 229 #define LTC2974_SW_HIGH_BYTE 0x0001 230 #define LTC2974_SW_CML 0x0002 231 #define LTC2974_SW_TEMP 0x0004 232 #define LTC2974_SW_VIN_UV 0x0008 233 #define LTC2974_SW_IOUT_OC 0x0010 234 #define LTC2974_SW_VOUT_OV 0x0020 235 #define LTC2974_SW_OFF 0x0040 236 #define LTC2974_SW_BUSY 0x0080 237 #define LTC2974_SW_FANS 0x0400 238 #define LTC2974_SW_PGOODB 0x0800 239 #define LTC2974_SW_MFR 0x1000 240 #define LTC2974_SW_INPUT 0x2000 241 #define LTC2974_SW_IOUT 0x4000 242 #define LTC2974_SW_VOUT 0x8000 244 #define LTC2974_CFGALL_AUX_FB_WPU 0x0001 245 #define LTC2974_CFGALL_PMBUS_TIMO 0x0002 246 #define LTC2974_CFGALL_PEC 0x0004 247 #define LTC2974_CFGALL_VIN_SHARE 0x0008 248 #define LTC2974_CFGALL_CRTL0_POL 0x0010 249 #define LTC2974_CFGALL_CTRL1_POL 0x0020 250 #define LTC2974_CFGALL_VIN_ON_CLR_FLT 0x0040 251 #define LTC2974_CFGALL_EFL 0x0080 252 #define LTC2974_CFGALL_CNTL2_POL 0x0100 253 #define LTC2974_CFGALL_CNTL3_POL 0x0200 254 #define LTC2974_CFGALL_FAST_FLAG 0x0400 255 #define LTC2974_CFGALL_PGOOD_OFF_UV 0x0800 257 #define LTC2974_CFG_DAC_POL 0x0001 258 #define LTC2974_CFG_DAC_GAIN 0x0002 259 #define LTC2974_CFG_VO_EN_WPD 0x0004 260 #define LTC2974_CFG_VO_EN_WPU 0x0008 261 #define LTC2974_CFG_SRVO_ON_WARN 0x0040 262 #define LTC2974_CFG_SVRO_CONT 0x0080 263 #define LTC2974_CFG_SUP_RES 0x0400 264 #define LTC2974_CFG_FAST_SERVO 0x0800 265 #define LTC2974_CFG_CASCADE_ON 0x4000 267 #define LTC2974_SMFR_WATCH_DOG 0x0001 268 #define LTC2974_SMFR_AUX_FAULT 0x0002 269 #define LTC2974_CFG_ALL_DAC_MODE 0x0030 270 #define LTC2974_SMFR_DAC_SAT 0x0004 271 #define LTC2974_SMFR_DAC_CON 0x0008 272 #define LTC2974_SMFR_SERVO_TGT 0x0010 273 #define LTC2974_SMFR_FAULT0_IN 0x0020 274 #define LTC2974_SMFR_FAULT1_IN 0x0040 275 #define LTC2974_SMFR_DISCHARGE 0x0080 277 #define LTC2974_SFL_EEPROM 0x0001 278 #define LTC2974_SFL_RAM 0x0002 280 #define LTC2975_SFL_EEPROM 0x0001 282 #define LTC2977_SFL_EEPROM 0x0001 283 #define LTC2977_SFL_RAM 0x0002 285 #define LTC2978_SW_HIGH_BYTE 0x0001 286 #define LTC2978_SW_CML 0x0002 287 #define LTC2978_SW_TEMP 0x0004 288 #define LTC2978_SW_VIN_UV 0x0008 289 #define LTC2978_SW_IOUT_OC 0x0010 290 #define LTC2978_SW_VOUT_OV 0x0020 291 #define LTC2978_SW_OFF 0x0040 292 #define LTC2978_SW_BUSY 0x0080 293 #define LTC2978_SW_FANS 0x0400 294 #define LTC2978_SW_PGOODB 0x0800 295 #define LTC2978_SW_MFR 0x1000 296 #define LTC2978_SW_INPUT 0x2000 297 #define LTC2978_SW_IOUT 0x4000 298 #define LTC2978_SW_VOUT 0x8000 300 #define LTC2978_CFGALL_AUX_FB_WPU 0x0001 301 #define LTC2978_CFGALL_PMBUS_TIMO 0x0002 302 #define LTC2978_CFGALL_PEC 0x0004 303 #define LTC2978_CFGALL_VIN_SHARE 0x0008 304 #define LTC2978_CFGALL_CRTL0_POL 0x0010 305 #define LTC2978_CFGALL_CTRL1_POL 0x0020 306 #define LTC2978_CFGALL_VIN_ON_CLR_FLT 0x0040 307 #define LTC2978_CFGALL_EFL 0x0080 308 #define LTC2978_CFGALL_FAST_FLAG 0x0400 309 #define LTC2978_CFGALL_PGOOD_OFF_UV 0x0800 310 #define LTC2978_CFGALL_SHORT_CYC_FAULT 0x1000 312 #define LTC2978_CFG_DAC_POL 0x0001 313 #define LTC2978_CFG_DAC_GAIN 0x0002 314 #define LTC2978_CFG_VO_EN_WPD 0x0004 315 #define LTC2978_CFG_VO_EN_WPU 0x0008 316 #define LTC2978_CFG_DAC_MODE 0x0030 317 #define LTC2978_CFG_SRVO_ON_WARN 0x0040 318 #define LTC2978_CFG_SVRO_CONT 0x0080 319 #define LTC2978_CFG_CNTL_IN_SEL 0x0100 320 #define LTC2978_CFG_ADC_RES 0x0200 321 #define LTC2978_CFG_SUP_RES 0x0400 322 #define LTC2978_CFG_FAST_SERVO 0x0800 323 #define LTC2978_CFG_CHAN_MODE 0xC000 325 #define LTC2978_SMFR_WATCH_DOG 0x0001 326 #define LTC2978_SMFR_VIN_EN 0x0002 327 #define LTC2978_SMFR_DAC_SAT 0x0004 328 #define LTC2978_SMFR_DAC_CON 0x0008 329 #define LTC2978_SMFR_SERVO_TGT 0x0010 330 #define LTC2978_SMFR_FAULT0_IN 0x0020 331 #define LTC2978_SMFR_FAULT1_IN 0x0040 332 #define LTC2978_SMFR_DISCHARGE 0x0080 334 #define LTC2978_SFL_EEPROM 0x0001 335 #define LTC2978_SFL_RAM 0x0002 337 #define STATUS_CML_CMD_FAULT 0x80 338 #define STATUS_CML_DATA_FAULT 0x40 339 #define STATUS_CML_PEC_FAULT 0x20 340 #define STATUS_CML_MEM_FAULT 0x10 341 #define STATUS_CML_PROC_FAULT 0x04 342 #define STATUS_CML_PMBUS_FAULT 0x02 343 #define STATUS_CML_UNKNOWN_FAULT 0x01 381 void pmbusWriteByteWithPolling(uint8_t
address, uint8_t command, uint8_t
data);
382 uint8_t pmbusReadByteWithPolling(uint8_t address, uint8_t command);
383 uint16_t pmbusReadWordWithPolling(uint8_t address, uint8_t command);
385 float L11_to_Float(uint16_t input_val);
386 float L16_to_Float_with_polling(uint8_t address, uint16_t input_val);
387 float L16_to_Float(uint8_t address, uint16_t input_val);
388 float L16_to_Float_mode(uint8_t vout_mode, uint16_t input_val);
389 uint16_t Float_to_L16(uint8_t address,
float input_val);
390 uint16_t Float_to_L16_mode(uint8_t vout_mode,
float input_val);
391 uint16_t Float_to_L11(
float input_val);
460 float margin_percent,
469 float margin_percent,
479 float margin_percent,
1263 uint8_t no_addresses
1278 uint8_t no_addresses
1302 void page(uint8_t *addresses,
1303 uint8_t no_addresses
1309 uint8_t no_addresses
1315 uint8_t no_addresses
1321 uint8_t no_addresses
1342 void reset(uint8_t address);
1348 uint8_t no_addresses
1355 uint8_t no_addresses
1362 uint8_t no_addresses
1425 uint8_t rail_address
1447 uint8_t
getPage(uint8_t address
1472 uint8_t *
bricks(uint8_t *addresses,
1473 uint8_t no_addresses);
void storeToNvmAll(uint8_t *addresses, uint8_t no_addresses)
Store RAM to NVM for list of devices.
void setCmlStatusMask(uint8_t address, uint8_t mask)
Get the CML status mask.
uint8_t waitForNvmDone(uint8_t address)
Read MFR_EEPROM_STATUS until done (LTC388X only)
float readIoutWithPagePlus(uint8_t address, uint8_t page)
Get the measured output current.
void sequenceOff(uint8_t *addresses, uint8_t no_addresses)
Sequence off a list of addresses.
void setMfrStatusMask(uint8_t address, uint8_t mask)
Get the MFR status mask.
void sequenceOn(uint8_t *addresses, uint8_t no_addresses)
Sequence on a list of devices.
void setPageWithPolling(uint8_t address, uint8_t page)
Set the page and poll the busy bit.
float getOtWarnLimitWithPagePlus(uint8_t address, uint8_t page)
Get the over temperature warning limit.
float getOtWarnLimitWithPage(uint8_t address, uint8_t page)
Get the over temperature warning limit.
float readPout(uint8_t address, bool polling)
Get the measured output power.
uint8_t getPage(uint8_t address)
Get the page.
uint8_t getInputStatusMask(uint8_t address)
Get the input status mask.
uint8_t readIoutStatusByte(uint8_t address)
Get the output current status byte.
LTC SMBus Support: API for a shared SMBus layer.
bool compareRamWithNvm(uint8_t address)
Compare RAM to NVM for device.
float getOtWarnLimit(uint8_t address)
Get the over temperature warning limit.
float readOtemp(uint8_t address)
Get the external measured temperature.
bool isLtc2974(uint8_t address)
Determine if the device is from the LTC2974 family, by using the product id in MFR_SPECIAL_ID.
void marginOff(uint8_t address)
Margin rails off.
float readVoutWithPagePlus(uint8_t address, uint8_t page)
Get the measured output voltage.
void marginOffAll(uint8_t *addresses, uint8_t *pages, uint8_t no_addresses)
Margin off a list of rails low.
void setIoutOcWarnLimit(uint8_t address, float current)
Set the over current warning limit.
LTC SMBus Support: Implementation for a shared SMBus layer.
void setOtWarnLimit(uint8_t address, float temperature)
Set the over temperature warning limit.
void setVoutMarginHigh(uint8_t address, float voltage)
Set the margin high.
void reset(uint8_t address)
Issue reset to one device.
void setVinUvFaultLimit(uint8_t address, float voltage)
Set the input under voltage fault limit.
uint8_t readStatusByte(uint8_t address)
Get the status byte.
void setVoutOvWarnLimit(uint8_t address, float voltage)
Set the over voltage supervisor warning limit.
uint8_t * bricks(uint8_t *addresses, uint8_t no_addresses)
Find bricked devices.
void disableWriteProtectGlobal(void)
Disable the write protect.
float getVoutUvWithPagePlus(uint8_t address, uint8_t page)
Get the under voltage limit.
void setVoutUvFaultLimitWithPagePlus(uint8_t address, float voltage, uint8_t page)
Set the under voltage fault limit.
void setVoutUvWarnLimitWithPagePlus(uint8_t address, float voltage, uint8_t page)
Set the under voltage supervisor warning limit.
void setVoutMax(uint8_t address, float voltage)
Set the maximum output voltage.
void storeToNvmGlobal(void)
Store RAM to NVM for all devices.
void storeToNvm(uint8_t address)
Store RAM to NVM.
void setVoutWithPage(uint8_t address, float voltage, uint8_t page)
Set output voltage.
void setIoutStatusMask(uint8_t address, uint8_t mask)
Get the output current status mask.
void enablePec(uint8_t address)
Enable pec for all transactions.
void setOtWarnLimitWithPage(uint8_t address, float temperature, uint8_t page)
Set the over temperature warning limit.
float readItemp(uint8_t address)
Get the internal measured temperature.
void setVoutWithSupervisionWithPagePlus(uint8_t address, float voltage, float margin_percent, float warn_percent, float fault_percent, uint8_t page)
Set output voltage and supervisors.
uint8_t getTemperatureStatusMask(uint8_t address)
Get the temperature status mask.
void setMfrWatchdogFirst(uint8_t address, float delay)
Set the first watchdog timer.
void disableWriteProtect(uint8_t address)
Disable the write protect.
void setUtFaultLimit(uint8_t address, float temperature)
Set the under temperature fault limit.
void setTonDelay(uint8_t address, float delay)
Set delay before rail turns on.
void setUtWarnLimitWithPagePlus(uint8_t address, float temperature, uint8_t page)
Set the under temperature warning limit.
uint16_t readStatusWord(uint8_t address)
Get the status word.
float readIout(uint8_t address, bool polling)
Get the measured output current.
void readModel(uint8_t address, uint8_t *model)
Get the model.
void setVoutWithSupervisionWithPage(uint8_t address, float voltage, float margin_percent, float warn_percent, float fault_percent, uint8_t page)
Set output voltage and supervisors.
void clearFaults(uint8_t address)
Clear the faults of the existing page.
void setVoutWithSupervision(uint8_t address, float voltage, float margin_percent, float warn_percent, float fault_percent)
Set output voltage and supervisors.
float readOtempWithPagePlus(uint8_t address, uint8_t page)
Get the external measured temperature.
void setVoutOvFaultLimitWithPage(uint8_t address, float voltage, uint8_t page)
Set the over voltage supervisor fault limit.
void disablePec(uint8_t address)
Disable pec for all transactions.
void setVoutOvWarnLimitWithPage(uint8_t address, float voltage, uint8_t page)
Set the over voltage supervisor warning limit.
float getVoutOvWithPagePlus(uint8_t address, uint8_t page)
Get the output over voltage limit.
void setVoutMarginHighWithPagePlus(uint8_t address, float voltage, uint8_t page)
Set the margin high.
float getVoutUvWithPage(uint8_t address, uint8_t page)
Get the under voltage limit.
void setIoutOcFaultLimitWithPage(uint8_t address, float current, uint8_t page)
Set the over current fault limit.
uint16_t getTemp1Gain(uint8_t address)
Get the temperature 1 gain.
uint8_t readPmbusRevision(uint8_t address)
Get the pmbus revision.
void marginOffGlobal(void)
Margin all rails off.
uint8_t getVoutStatusMask(uint8_t address)
Get the output voltage status mask.
void marginHigh(uint8_t address)
Margin rail high.
void setVoutUvFaultLimit(uint8_t address, float voltage)
Set the under voltage fault limit.
union LT_union_int32_4bytes data
uint8_t waitForNotBusy(uint8_t address)
Read MFR_COMMON until not Busy.
void setVoutUvWarnLimit(uint8_t address, float voltage)
Set the under voltage supervisor warning limit.
void setOtFaultLimitWithPage(uint8_t address, float temperature, uint8_t page)
Set the over temperature fault limit.
void setUtWarnLimitWithPage(uint8_t address, float temperature, uint8_t page)
Set the under temperature warning limit.
uint8_t getMfrStatusMask(uint8_t address)
Get the MFR status mask.
uint8_t readStatusByteWithPagePlus(uint8_t address, uint8_t page)
Get the status byte.
float readPin(uint8_t address, bool polling)
Get the measured input power.
void startGroupProtocol(void)
starts group protocol
void setVoutMarginLowWithPage(uint8_t address, float voltage, uint8_t page)
Set the margin low.
void enableWriteProtect(uint8_t address)
Enable the write protect.
float readVout(uint8_t address, bool polling)
Get the measured output voltage.
void setVoutOvWarnLimitWithPagePlus(uint8_t address, float voltage, uint8_t page)
Set the over voltage supervisor warning limit.
void setVinUvWarnLimit(uint8_t address, float voltage)
Set the input under voltage warning limit.
void setToffMaxWarnLimit(uint8_t address, float max)
Set the maximum time allow to turn off.
float getVoutOvWithPage(uint8_t address, uint8_t page)
Get the output over voltage limit.
uint8_t readMfrStatusByte(uint8_t address)
Get the MFR status byte.
float getVoutOv(uint8_t address, bool polling)
Get the output over voltage limit.
uint8_t readTemperatureStatusByte(uint8_t address)
Get the temperature status byte.
void setVoutStatusMask(uint8_t address, uint8_t mask)
Get the output voltage status mask.
void immediateOffGlobal(void)
Turn off all rails immediately.
uint8_t readInputStatusByte(uint8_t address)
Get the input status byte.
float readOtempWithPage(uint8_t address, uint8_t page)
Get the external measured temperature.
float readPoutWithPage(uint8_t address, uint8_t page)
Get the measured output power.
uint16_t getUserData04(uint8_t address)
Get user data 4.
void resetGlobal(void)
Issue reset to all devices.
float getIoutOcWithPage(uint8_t address, uint8_t page)
Get the over current limit.
void setVoutMinWithPage(uint8_t address, float voltage, uint8_t page)
Set the minimum output voltage.
void setVoutMaxWithPage(uint8_t address, float voltage, uint8_t page)
Set the maximum output voltage.
void setVoutMaxWithPagePlus(uint8_t address, float voltage, uint8_t page)
Set the maximum output voltage.
bool unlockNVM(uint8_t address)
Unlock NVM.
void setOtFaultLimit(uint8_t address, float temperature)
Set the over temperature fault limit.
uint8_t readVoutStatusByte(uint8_t address)
Get the output voltage status byte.
void setVoutMarginLowWithPagePlus(uint8_t address, float voltage, uint8_t page)
Set the margin low.
void setIoutOcFaultLimit(uint8_t address, float current)
Set the over current fault limit.
bool isLtc297x(uint8_t address)
Determine if the device is from the LTC297X family, by using the product id in MFR_SPECIAL_ID.
void setVoutUvWarnLimitWithPage(uint8_t address, float voltage, uint8_t page)
Set the under voltage supervisor warning limit.
void setPage(uint8_t address, uint8_t page)
Set the page.
bool lockNVM(uint8_t address)
Lock NVM.
float getIoutOc(uint8_t address, bool polling)
Get the over current limit.
void marginLowGlobal(void)
Margin all rails low.
float readExternalTemperature(uint8_t address, bool polling)
Get the measured external temperature.
void setInputStatusMask(uint8_t address, uint8_t mask)
Get the input status mask.
uint8_t readStatusCml(uint8_t address)
Get the status CML byte.
void setIoutOcFaultLimitWithPagePlus(uint8_t address, float current, uint8_t page)
Set the over current fault limit.
void restoreFromNvmAll(uint8_t *addresses, uint8_t no_addresses)
Restore list of devices from NVM.
void setUserData03(uint8_t address, uint16_t data)
Set user data 3.
void setVoutMin(uint8_t address, float voltage)
Set the minimum output voltage.
void page(uint8_t *addresses, uint8_t no_addresses)
Set the page.
void sequenceOnGlobal(void)
Sequence on all rails.
void marginLowAll(uint8_t *addresses, uint8_t *pages, uint8_t no_addresses)
Margin a list of rails low.
void clearAllFaults(uint8_t address)
Clear all the faults for all pages.
void setVinOvFaultLimit(uint8_t address, float voltage)
Set the input over voltage fault limit.
LT_PMBus(LT_SMBus *smbus)
Construct a LT_PMBus.
void setVoutOvFaultLimit(uint8_t address, float voltage)
Set the over voltage supervisor fault limit.
uint8_t readStatusByteWithPage(uint8_t address, uint8_t page)
Get the status byte.
uint16_t getSpareData0(uint8_t address)
Get spare data 0.
uint8_t getIoutStatusMask(uint8_t address)
Get the output current status mask.
void marginLow(uint8_t address)
Margin rails low.
void setToffFall(uint8_t address, float fall)
Set the turn off fall time.
void setVoutMarginHighWithPage(uint8_t address, float voltage, uint8_t page)
Set the margin high.
uint8_t readMfrFaultLogStatusByte(uint8_t address)
Get the fault log status byte.
float getVoutUv(uint8_t address, bool polling)
Get the under voltage limit.
float getIoutOcWithPagePlus(uint8_t address, uint8_t page)
Get the over current limit.
float readInternalTemperature(uint8_t address, bool polling)
Get the measured internal temperature.
void setVoutOvFaultLimitWithPagePlus(uint8_t address, float voltage, uint8_t page)
Set the over voltage supervisor fault limit.
float readIin(uint8_t address, bool polling)
Get the input current.
void setUserData04(uint8_t address, uint16_t data)
Set user data 4.
virtual LT_I2CBus * i2cbus(void)=0
void setVoutWithPagePlus(uint8_t address, float voltage, uint8_t page)
Set output voltage.
void setIoutOcWarnLimitWithPagePlus(uint8_t address, float current, uint8_t page)
Set the over current warning limit.
float getTemp1Offset(uint8_t address)
Get the temperature 1 offset.
void setTemp1Offset(uint8_t address, float offset)
Set the temperature 1 offset.
void setIinOcWarnLimit(uint8_t address, float current)
Set the input over current warning limit.
void setVinOvWarningLimit(uint8_t address, float voltage)
Set the input over voltage warning limit.
uint8_t readCmlStatusByte(uint8_t address)
Get the CML status byte.
bool isLtc2978(uint8_t address)
Determine if the device is a LTC2978/A by looking at bit 2 (RESERVED2) in the MFR_COMMON.
void sequenceOffGlobal(void)
Sequence off all rails.
void setOtWarnLimitWithPagePlus(uint8_t address, float temperature, uint8_t page)
Set the over temperature warning limit.
void setUtWarnLimit(uint8_t address, float temperature)
Set the under temperature warning limit.
float readVin(uint8_t address, bool polling)
Get the input voltage.
void setRailAddress(uint8_t address, uint8_t rail_address)
Set rail address of a Controller.
uint32_t getSpeed()
Get the speed of the bus.
void setToffDelay(uint8_t address, float delay)
Set the delay before the rail turns off.
void clearFaultsGlobal(void)
Clear all the faults for all pages of all devices.
void setTemperatureStatusMask(uint8_t address, uint8_t mask)
Get the temperature status mask.
void setVout(uint8_t address, float voltage)
Set output voltage.
void executeGroupProtocol(void)
ends group protocol
void setOtFaultLimitWithPagePlus(uint8_t address, float temperature, uint8_t page)
Set the over temperature fault limit.
void setMfrWatchdog(uint8_t address, float delay)
Set watchdog timer.
void smbus(LT_SMBus *smbus)
void restoreFromNvm(uint8_t address)
Restore device from NVM.
void setTonRise(uint8_t address, float rise)
Set the turn on rise time.
void setVoutMarginLow(uint8_t address, float voltage)
Set the margin low.
float readPoutWithPagePlus(uint8_t address, uint8_t page)
Get the measured output power.
uint16_t readMfrSpecialId(uint8_t address)
Get speical ID.
void setVoutMinWithPagePlus(uint8_t address, float voltage, uint8_t page)
Set the minimum output voltage.
uint8_t getCmlStatusMask(uint8_t address)
Get the CML status mask.
void immediateOff(uint8_t *addresses, uint8_t no_addresses)
Turn off all devices immediately.
void setUtFaultLimitWithPage(uint8_t address, float temperature, uint8_t page)
Set the under temperature fault limit.
PsmDeviceType deviceType(uint8_t address)
Get the type of PSM device.
uint16_t readStatusWordWithPage(uint8_t address, uint8_t page)
Get the status word.
float getVout(uint8_t address, bool polling)
Get the set output voltage.
void restoreFromNvmGlobal(void)
Restore all devices from NVM.
static uint16_t current
the current measurement from the LTC3335's counter test mode.
void marginHighGlobal(void)
Margin all rails high.
void setTonMaxFaultLimit(uint8_t address, float max)
Set the maximum time allow for turn on.
void marginHighAll(uint8_t *addresses, uint8_t *pages, uint8_t no_addresses)
Margin a list of rails high.
float readVoutWithPage(uint8_t address, uint8_t page)
Get the measured output voltage.
LTC PMBus Support: Math conversion routines.
void readRevision(uint8_t address, uint8_t *revision)
Get the slave revision.
void eraseNVM(uint8_t address)
uint16_t getUserData03(uint8_t address)
Get user data 3.
void setVoutUvFaultLimitWithPage(uint8_t address, float voltage, uint8_t page)
Set the under voltage fault limit.
bool isLtc2977(uint8_t address)
Determine if the device is from the LTC2977 family, by using the product id in MFR_SPECIAL_ID.
void setIoutOcWarnLimitWithPage(uint8_t address, float current, uint8_t page)
Set the over current warning limit.
void setTemp1Gain(uint8_t address, uint16_t gain)
Set the temperature 1 gain.
uint16_t readStatusWordWithPagePlus(uint8_t address, uint8_t page)
Get the status word.
float readIoutWithPage(uint8_t address, uint8_t page)
Get the measured output current.
uint8_t getRailAddress(uint8_t address)
Get the rail address of a Controller.
void setSpareData0(uint8_t address, uint16_t data)
Set spare data 0.
float readDutyCycle(uint8_t address, bool polling)
Get the duty cycle.
void enableWriteProtectGlobal(void)
Enable the write protect.
uint16_t readMfrPads(uint8_t address)
Get the state of the pads.
void setVinOvWarnLimit(uint8_t address, float voltage)
Set the input over voltage warnign limit.
void setUtFaultLimitWithPagePlus(uint8_t address, float temperature, uint8_t page)
Set the under temperature fault limit.