79 uint8_t *
data = (uint8_t *) malloc(
sizeof(uint8_t) * 80 * 2);
83 uint8_t *data = (uint8_t *) malloc(147);
125 printAllLoops(printer);
132 void LT_3880FaultLog::printTitle(Print *printer)
134 printer->print(F(
"LTC3880 Log Data\n"));
143 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position TON_MAX_FAULT Channel 0\n"));
146 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_OV_FAULT Channel 0\n"));
149 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_UV_FAULT Channel 0\n"));
152 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position IOUT_OC_FAULT Channel 0\n"));
161 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VIN_OV_FAULT Channel 0\n"));
164 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position MFR_OT_FAULT Channel 0\n"));
167 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position TON_MAX_FAULT Channel 1\n"));
170 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_OV_FAULT Channel 1\n"));
173 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_UV_FAULT Channel 1\n"));
176 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position IOUT_OC_FAULT Channel 1\n"));
185 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VIN_OV_FAULT Channel 1\n"));
188 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position MFR_OT_FAULT Channel 1\n"));
192 printer->print(buffer);
195 void LT_3880FaultLog::printTime(Print *printer)
198 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]);
199 printer->print(buffer);
201 printer->println(F(
" Ticks (200us each)"));
204 void LT_3880FaultLog::printPeaks(Print *printer)
206 printer->println(F(
"\nHeader Information:\n--------"));
208 printer->print(F(
"VOUT Peak 0 "));
210 printer->print(F(
"VOUT Peak 1 "));
212 printer->print(F(
"IOUT Peak 0 "));
214 printer->print(F(
"IOUT Peak 1 "));
216 printer->print(F(
"VIN Peak "));
218 printer->print(F(
"Temp External Last Event Page 0 "));
220 printer->print(F(
"Temp External Last Event Page 1 "));
222 printer->print(F(
"Temp Internal Last Event "));
224 printer->print(F(
"Temp External Peak Page 0 "));
226 printer->print(F(
"Temp External Peak Page 1 "));
230 void LT_3880FaultLog::printAllLoops(Print *printer)
232 printer->println(F(
"\nFault Log Loops Follow:"));
233 printer->println(F(
"(most recent data first)"));
237 printLoop(
index, printer);
241 void LT_3880FaultLog::printLoop(uint8_t
index, Print *printer)
243 printer->println(F(
"-------"));
244 printer->print(F(
"Loop: "));
245 printer->println(
index);
246 printer->println(F(
"-------"));
248 printer->print(F(
"Input: "));
250 printer->print(F(
" V, "));
252 printer->println(F(
" A"));
253 printer->print(F(
"Chan0: "));
255 printer->print(F(
" V, "));
257 printer->println(F(
" A"));
259 printer->print(buffer);
261 printer->print(buffer);
263 printer->print(buffer);
264 printer->print(F(
"Chan1: "));
266 printer->print(F(
" V, "));
268 printer->println(F(
" A"));
270 printer->print(buffer);
272 printer->print(buffer);
274 printer->print(buffer);
struct Lin5_11WordReverse read_temperature_2
struct Lin16WordReverse mfr_vout_peak_p0
struct Lin5_11WordReverse read_iout_p1
struct Lin16WordReverse read_vout_p1
uint16_t getLin5_11WordReverseVal(Lin5_11WordReverse value)
void dumpBin(Print *printer, uint8_t *log, uint8_t size)
struct RawWordReverse status_word_p1
struct Lin5_11WordReverse mfr_iout_peak_p0
float lin16_to_float(lin16_t lin16_mant, lin16m_t vout_mode)
struct RawWordReverse status_word_p0
uint16_t getRawWordReverseVal(RawWordReverse value)
struct Lin5_11WordReverse read_vin
float lin11_to_float(lin11_t xin)
#define FILE_TEXT_LINE_MAX
struct Lin5_11WordReverse read_temperature_1_p0
uint16_t getBinarySize()
Get size of binary data.
void print(Print *printer=0)
Pretty prints this part's fault log to a Print inheriting object, or Serial if none specified...
union LT_union_int32_4bytes data
struct RawByte status_mfr_specificP0
struct Lin5_11WordReverse mfr_temperature_1_peak_p0
LTC SMBus Support: Implementation for a LTC3880 Fault Log.
struct FaultLogReadLoopLtc3880 fault_log_loop[6]
struct Lin5_11WordReverse read_iin
struct Lin16WordReverse read_vout_p0
void dumpBinary(Print *printer=0)
Dumps binary of the fault log to a Print inheriting object, or Serial if none specified.
struct Lin5_11WordReverse mfr_iout_peak_p1
void getNvmBlock(uint8_t address, uint16_t offset, uint16_t numWords, uint8_t command, uint8_t *data)
struct RawByte status_vout_p0
void release()
Frees the memory reserved for the fault log.
struct RawByte status_mfr_specificP1
struct FaultLogTelemetrySummaryLtc3880 peaks
struct Lin5_11WordReverse read_iout_p0
uint64_t getSharedTime200us(FaultLogTimeStamp time_stamp)
struct Lin16WordReverse mfr_vout_peak_p1
struct Lin5_11WordReverse mfr_vin_peak
LT_3880FaultLog(LT_PMBus *pmbus)
Constructor.
virtual uint8_t readBlock(uint8_t address, uint8_t command, uint8_t *block, uint16_t block_size)=0
SMBus read block command.
struct Lin5_11WordReverse mfr_temperature_1_peak_p1
void read(uint8_t address)
Reads the fault log from the specified address, reserves memory to hold the data. ...
uint8_t getRawByteVal(RawByte value)
struct FaultLogTimeStamp shared_time
struct RawByte status_vout_p1
uint16_t getLin16WordReverseVal(Lin16WordReverse value)
uint8_t * getBinary()
Get binary of the fault log or NULL if no log.
struct Lin5_11WordReverse read_temperature_1_p1
struct FaultLogPreambleLtc3880 preamble
FaultLogLtc3880 * faultLog3880