ZHCUB08A May 2023 – September 2024 LP5890 , LP5891 , LP5891-Q1 , LP5899 , LP5899-Q1 , TLC6983 , TLC6984 , TLC6989
本節介紹了示例代碼如何設置不同的參數來識別系統的構建方式。第一部分是實際使用的 LED 驅動器 IC。在 led_driver.h 文件中,選擇了使用過的 LED 驅動器 IC。
#include "LP5891.h"該代碼支持:請注意,對于“Q1”器件,不會添加此名稱,僅使用基本產品名稱。
表 3-2 中列出了影響系統設置及其位置的宏和變量的摘要。
| 文件名 | 宏/變量名稱 | 說明 |
|---|---|---|
| system_info.h | SCLK_FREQ_IN_HZ | SCLK 頻率 |
| USE_CONN_IC | 在使用增強型連接器件 LP5899(-Q1)/TLC6989 時選擇 | |
| SPI_FREQ_IN_HZ | 使用增強型連接器件時,這是 MCU 與連接器件之間的 SPI 頻率 | |
| RUN_MODE | 在不同的代碼運行模式之間進行選擇。支持的選項包括 ANIMATION 和 SIMPLE_TEST | |
| TOTAL_SCAN_LINES | 掃描線數 | |
| CCSI_BUS_NUM | CCSI 總線數 | |
| CASCADED_UNITS_CCSI1 | CCSI 總線 1 中的器件數量 | |
| CASCADED_UNITS_CCSI2 | CCSI 總線 2 中的器件數量 | |
| MONOCHROMATIC | 在 RGB 和單色顯示屏之間進行選擇 | |
| system_info.c | FRAME_RATE | VSYNC 命令的間隔 |
幀速率在文件 system_info.c 中指定。幀速率以 Hz(每秒幀數)為單位。
const uint16_t FRAME_RATE = 60; // 16.67ms = 60 Hz frames-per-second受支持的最小幀速率為 1Hz。
文件 system_info.h 包含多個系統定義。
// When TLC6989 or LP5899 is used this should be set to _TRUE
#define USE_CONN_IC _TRUE宏 USE_CONN_IC 定義 LED 驅動器是否與增強型連接 IC 配對使用。這會影響 MCU 的硬件設置,該設置會在標準 SPI(使用連接 IC 時)或 CLB(使用 CCSI 直接與 LED 驅動器通信時)之間自動切換。
// Desired SCLK frequency (in case of TLC698x this SCLK frequency is half of this)
// Note: Exact frequency may not be possible
#define SCLK_FREQ_IN_HZ 10000000宏 SCLK_FREQ_IN_HZ 定義連續時鐘串行接口 (CCSI) 以什么數據速率運行,即引腳 SCLK 的時鐘頻率。使用增強連接 IC 時,所選數據速率將是等于所需數據速率的選項或第一個高于所需數據速率的可用選項。不使用增強連接 IC 時,所需的 SCLK 頻率是相對于 MCU 系統頻率的整數分頻值。在這兩種情況下,實際 CCSI 頻率可能不同于 SCLK_FREQ_IN_HZ 定義的所需指定頻率。
// Desired SPI frequency - for TLC6989 or LP5899
// Supported range is 500kHz to 7.5MHz --> For higher frequencies need to enable SPI high speed mode
// Note: Exact frequency may not be possible
#define SPI_FREQ_IN_HZ 7500000宏 SPI_FREQ_IN_HZ 僅在使用增強連接 IC 并定義所需的 SPI 頻率時使用。該頻率是 MCU 系統頻率的整數分頻值。因此,實際 SPI 頻率可能不同于 SPI_FREQ_IN_HZ 定義的所需指定頻率。
#define RUN_MODE ANIMATION
#define MONOCHROMATIC _FALSE宏 RUN_MODE 決定代碼的運行模式。支持的運行模式包括動畫模式和簡單測試模式。
EVM 都使用 RGB LED。因此,宏 MONOCHROMATIC 定義為 _FALSE。示例代碼確實支持使用單色 LED(例如僅使用紅色 LED)的系統。在此類情況下,宏 MONOCHROMATIC 應定義為 _TRUE。這會自動更改幀數據結構、動畫算法和 API。
以下代碼塊演示了會影響寄存器設置的宏。
#define TOTAL_SCAN_LINES 16
#define CASCADED_UNITS_CCSI1 1宏 TOTAL_SCAN_LINES 定義了系統中使用的掃描線數,并直接影響寄存器 FC0 中的字段 SCAN_NUM。對于 LP5891Q1EVM、LP5891EVM 和 LP5890EVM,有 16 條掃描線。對于 TLC6983EVM 和 TLC6984EVM,有 32 條掃描線。
宏 CASCADED_UNITS_CCSI1 定義系統中級聯器件的數量,并直接影響寄存器 FC0 中的字段 CHIP_NUM。對于 LP5891Q1EVM、LP5891EVM 和 LP5890EVM,僅有 1 個器件級聯。當用戶使用可用連接器級聯更多這類 EVM 時,必須更新此宏。
對于 TLC6983EVM 和 TLC6984EVM,一個 EVM 上有 2 個級聯器件。
示例代碼最多支持 2 個 CCSI 菊花鏈。圖 3-2 和圖 3-3 中的示例用于展示支持 2 個 CCSI 菊花鏈的情況。第一個圖顯示了不使用增強連接 IC 的示例,第二個圖顯示了使用增強連接 IC 的示例。對于這兩個示例,實際使用的鏈數由文件 system_info.h 中的宏 CCSI_BUS_NUM 定義。
// Total CCSI buses supported
#define CCSI_BUS_NUM 2每個鏈可具有不同數量的級聯器件。因此,除了宏 CASCADED_UNITS_CCSI1 外,文件 system_info.h 中還有宏 CASCADED_UNITS_CCSI2。在這些示例中,CCSI 鏈 1 有 3 個級聯器件,CCSI 鏈 2 有 2 個級聯器件。
#define CASCADED_UNITS_CCSI1 3
#define CASCADED_UNITS_CCSI2 2