ZHCUB08A May 2023 – September 2024 LP5890 , LP5891 , LP5891-Q1 , TLC6983 , TLC6984
本节介绍了示例代码如何设置不同的参数来识别系统的构建方式。第一部分是实际使用的 LED 驱动器 IC。在 led_driver.h 文件中,选择了使用过的 LED 驱动器 IC。
#include "LP5891.h"
该代码支持:请注意,对于“Q1”器件,不会添加此名称,仅使用基本米6体育平台手机版_好二三四名称。
表 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