78 uint8_t *
data = (uint8_t *) malloc(
sizeof(uint8_t) * 80 * 2);
82 uint8_t *data = (uint8_t *) malloc(147);
124 printAllLoops(printer);
131 void LT_3882FaultLog::printTitle(Print *printer)
133 printer->print(F(
"LTC3882 Log Data\n"));
142 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position TON_MAX_FAULT Channel 0\n"));
145 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_OV_FAULT Channel 0\n"));
148 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_UV_FAULT Channel 0\n"));
151 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position IOUT_OC_FAULT Channel 0\n"));
160 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VIN_OV_FAULT Channel 0\n"));
163 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position MFR_OT_FAULT Channel 0\n"));
166 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position TON_MAX_FAULT Channel 1\n"));
169 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_OV_FAULT Channel 1\n"));
172 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_UV_FAULT Channel 1\n"));
175 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position IOUT_OC_FAULT Channel 1\n"));
184 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VIN_OV_FAULT Channel 1\n"));
187 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position MFR_OT_FAULT Channel 1\n"));
191 printer->print(buffer);
194 void LT_3882FaultLog::printTime(Print *printer)
197 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Time 0x%02x%02x%02x%02x%02x%02x\n"), time[5], time[4], time[3], time[2], time[1], time[0]);
198 printer->print(buffer);
200 printer->println(F(
" Ticks (200us each)"));
203 void LT_3882FaultLog::printPeaks(Print *printer)
205 printer->println(F(
"\nHeader Information:\n--------"));
206 printer->print(F(
"VOUT Peak 0 "));
208 printer->print(F(
"VOUT Peak 1 "));
210 printer->print(F(
"IOUT Peak 0 "));
212 printer->print(F(
"IOUT Peak 1 "));
214 printer->print(F(
"VIN Peak "));
216 printer->print(F(
"Temp External Last Event Page 0 "));
218 printer->print(F(
"Temp External Last Event Page 1 "));
220 printer->print(F(
"Temp Internal Last Event "));
224 void LT_3882FaultLog::printAllLoops(Print *printer)
226 printer->println(F(
"\nFault Log Loops Follow:"));
227 printer->println(F(
"(most recent data first)"));
231 printLoop(
index, printer);
235 void LT_3882FaultLog::printLoop(uint8_t
index, Print *printer)
237 printer->println(F(
"-------"));
238 printer->print(F(
"Loop: "));
239 printer->println(
index);
240 printer->println(F(
"-------"));
242 printer->print(F(
"Input: "));
244 printer->println(F(
" V"));
245 printer->print(F(
"Chan0: "));
247 printer->print(F(
" V, "));
249 printer->println(F(
" A"));
251 printer->print(buffer);
253 printer->print(buffer);
255 printer->print(buffer);
256 printer->print(F(
"Chan1: "));
258 printer->print(F(
" V, "));
260 printer->println(F(
" A"));
262 printer->print(buffer);
264 printer->print(buffer);
266 printer->print(buffer);
struct RawByte status_vout_p1
void read(uint8_t address)
Reads the fault log from the specified address, reserves memory to hold the data. ...
struct Lin5_11WordReverse read_iout_p1
uint16_t getLin5_11WordReverseVal(Lin5_11WordReverse value)
struct Lin16WordReverse read_vout_p1
void dumpBin(Print *printer, uint8_t *log, uint8_t size)
void print(Print *printer=0)
Pretty prints this part's fault log to a Print inheriting object, or Serial if none specified...
struct Lin5_11WordReverse read_temperature_2
struct Lin5_11WordReverse mfr_vin_peak
float lin16_to_float(lin16_t lin16_mant, lin16m_t vout_mode)
uint16_t getRawWordReverseVal(RawWordReverse value)
struct Lin5_11WordReverse read_vin
struct RawWordReverse status_word_p1
struct Lin5_11WordReverse read_temperature_1_p1
FaultLogLtc3882 * faultLog3882
float lin11_to_float(lin11_t xin)
uint8_t * getBinary()
Get binary of the fault log or NULL if no log.
#define FILE_TEXT_LINE_MAX
struct RawByte status_mfr_specificP1
union LT_union_int32_4bytes data
uint16_t getBinarySize()
Get size of binary data.
LTC SMBus Support: Implementation for a LTC3882 Fault Log.
void getNvmBlock(uint8_t address, uint16_t offset, uint16_t numWords, uint8_t command, uint8_t *data)
struct Lin5_11WordReverse mfr_iout_peak_p0
struct FaultLogPreambleLtc3882 preamble
struct FaultLogTimeStamp shared_time
void release()
Frees the memory reserved for the fault log.
struct RawWordReverse status_word_p0
uint64_t getSharedTime200us(FaultLogTimeStamp time_stamp)
LT_3882FaultLog(LT_PMBus *pmbus)
Constructor.
struct FaultLogTelemetrySummaryLtc3882 peaks
void dumpBinary(Print *printer=0)
Dumps binary of the fault log to a Print inheriting object, or Serial if none specified.
struct Lin16WordReverse read_vout_p0
struct Lin5_11WordReverse mfr_iout_peak_p1
virtual uint8_t readBlock(uint8_t address, uint8_t command, uint8_t *block, uint16_t block_size)=0
SMBus read block command.
struct Lin16WordReverse mfr_vout_peak_p1
uint8_t getRawByteVal(RawByte value)
uint16_t getLin16WordReverseVal(Lin16WordReverse value)
struct Lin5_11WordReverse read_temperature_1_p0
struct Lin16WordReverse mfr_vout_peak_p0
struct RawByte status_mfr_specificP0
struct RawByte status_vout_p0
struct FaultLogReadLoopLtc3882 fault_log_loop[6]
struct Lin5_11WordReverse read_iout_p0