ZHCUB08A May 2023 – September 2024 LP5890 , LP5891 , LP5891-Q1 , LP5899 , LP5899-Q1 , TLC6983 , TLC6984 , TLC6989
示例代碼提供了一個 API 來檢測哪些 LED 驅(qū)動器具有 LED 開路 (LOD) 故障以及哪些 LED 驅(qū)動器具有 LED 短路 (LSD) 故障。此外,當(dāng)示例代碼與 LP5899DYYEVM 配對使用時,將讀取 LP5899 增強(qiáng)型連接器件檢測到的故障。TLC698x_LP589x_APIs.h 文件中定義了該 API 的原型。
void LED_Update_Chip_Status(void);
該 API 會更新 system_info.h 中定義的變量 chip_status。
struct ccsiBusStatus {
uint16_t LSD; // LED Short Detection
uint16_t LOD; // LED Open Detection
volatile outChannel LOD_channels[TOTAL_SCAN_LINES];
volatile outChannel LSD_channels[TOTAL_SCAN_LINES];
};
struct chipStatus {
struct ccsiBusStatus busStatus[MAX_CASCADED_UNITS];
#ifdef _TLC6989_LP5899
uint16_t ERR; // LP5899/TLC6989 Global error flag
uint16_t POR; // Power-On-Reset flag
uint16_t OSC; // Internal oscillator flag
uint16_t OTP_CRC; // OTP CRC flag
uint16_t DEV_STATE; // Device state
uint16_t SPI_CRC; // SPI CRC error
uint16_t SPI_REG_WRITE; // SPI register write error
uint16_t SPI; // SPI error
uint16_t SPI_CS; // SPI Chip Select (CS) pin error
uint16_t SPI_TIMEOUT; // SPI reset timeout error
uint16_t SRST; // Softreset error
uint16_t DRDY_STATUS; // DRDY pin status
uint16_t RXFF; // Receive FIFO error
uint16_t RXFFSED; // Receive FIFO single error detection
uint16_t RXFFUVF; // Receive FIFO underflow
uint16_t RXFFOVF; // Receive FIFO overflow
uint16_t TXFF; // Transmit FIFO error
uint16_t TXFFSED; // Transmit FIFO single error detection
uint16_t TXFFUVF; // Transmit FIFO underflow
uint16_t TXFFOVF; // Transmit FIFO overflow
uint16_t CCSI; // CCSI interface error
uint16_t CCSI_SIN; // CCSI missing toggling on SIN error
uint16_t CCSI_CRC; // CCSI data CRC error
uint16_t CCSI_CHECK_BIT; // CCSI check bit error
uint16_t CCSI_CMD_QUEUE_OVF; // CCSI command queue overflow
#endif
};
// For diagnostics
extern struct chipStatus chip_status[CCSI_BUS_NUM];
請注意,在示例代碼中,診斷僅在簡單測試模式期間執(zhí)行,而不是在動畫模式期間執(zhí)行。
在代碼調(diào)試期間,可以按照觀察變量、表達(dá)式和寄存器中的步驟在表達(dá)式視圖中觀察變量 chip_status。圖 3-4 中描述了一個沒有任何錯誤的 LP5891Q1EVM 示例。變量 chip_status 的第一個索引是 CCSI 鏈索引。在 EVM 上,只使用了 1 個鏈。對于 LED 驅(qū)動器的標(biāo)志,使用 busStatus 變量,該變量具有鏈中每個 LED 驅(qū)動器的索引。
圖 3-5 顯示了 chip_status 變量的擴(kuò)展視圖,其中展示了鏈中每個 LED 驅(qū)動器器件的 LSD 和 LOD。此外,對于 LSD 和 LOD 故障,可以找到具有故障的實際線路和輸出通道。LP5891Q1EVM 使用 16 條掃描線。因此,LOD_channels 陣列的索引在 0 至 15 之間。
LOD 故障的示例如圖 3-6 所示。在此示例中,芯片索引 0 具有 LOD 故障。當(dāng) LOD_channels 陣列被擴(kuò)展后,會顯示故障發(fā)生在索引 2 對應(yīng)的線上。該索引擴(kuò)展后,會顯示故障發(fā)生在引腳 R1 上。
當(dāng) LP5899DYYEVM 與 LP589x(-Q1) 配對使用時,chip_status 變量還會顯示增強(qiáng)連接 IC 的錯誤標(biāo)志。圖 3-7 中描述了一個沒有任何故障的示例,其中為每個 CCSI 鏈(chip_status 的第一個索引)列出了錯誤標(biāo)志。請注意,DRDY_STATUS 為 1,因為當(dāng) LP5899 具有已準(zhǔn)備好被讀取的數(shù)據(jù)時,該值變?yōu)榱恪?/p>
CCSI 故障的示例如圖 3-8 所示。在本示例中,SIN 引腳卡在高電平,而 CCSI 傳輸繼續(xù),這也會導(dǎo)致 CCSI 命令隊列溢出。