ZHCUB08 may 2023 LP5891-Q1
本节介绍了示例代码如何设置不同的参数来识别系统的构建方式。第一部分是实际使用的 LED 驱动器 IC。在 led_driver.h 文件中,选择了使用过的 LED 驱动器 IC。
#include "LP5891.h"
该代码支持:请注意,对于“Q1”器件,不会添加此名称,仅使用基本产品名称。
表 3-2 中列出了影响系统设置及其位置的宏和变量的摘要。
文件名 | 宏/变量名称 | 说明 |
---|---|---|
system_info.h | SPICLK_FREQ_IN_HZ | SCL 频率 |
ANIMATION | 在动画和简单测试模式之间进行选择 | |
TOTAL_SCAN_LINES | 扫描线数 | |
CCSI_BUS_NUM | CCSI 总线数 | |
CASCADED_UNITS_CCSI1 | CCSI 总线 1 中的器件数量 | |
CASCADED_UNITS_CCSI2 | CCSI 总线 2 中的器件数量 | |
MONOCHROMATIC | 在 RGB 和单色显示屏之间进行选择 | |
system_info.c | FRAME_PERIOD | VSYNC 命令的间隔 |
在文件 system_info.c 中指定了帧周期,该周期确定了帧速率。帧周期以微秒为单位指定。
const uint16_t FRAME_PERIOD = 16667; // 16.67ms = 60Hz frames-per-second
支持的最大帧周期为 65535 微秒,即最低帧速率为 15.3Hz。
文件 system_info.h 包含多个系统定义。
// Desired SCLK frequency (in case of TLC698x this SCLK frequency is half of this)
// Note: Exact frequency may not be possible
#define SPICLK_FREQ_IN_HZ 7500000
宏 SPICLK_FREQ_IN_HZ 定义连续时钟串行接口 (CCSI) 以什么数据速率运行,即引脚 SCLK 的时钟频率。该频率是 MCU 系统频率的整数分频器。因此,实际 CCSI 频率可能不同于 SPICLK_FREQ_IN_HZ 定义的所需指定频率。
#define ANIMATION TRUE
#define MONOCHROMATIC FALSE
宏 ANIMATION 将确定是执行动画还是简单测试模式。
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,有 16 条扫描线。
宏 CASCADED_UNITS_CCSI1 定义系统中级联器件的数量,并直接影响寄存器 FC0 中的字段 CHIP_NUM。
对于 LP5891Q1EVM,只有 1 个器件级联。
当用户使用可用连接器级联更多 EVM 时,必须更新此宏。
示例代码最多支持 2 个 CCSI 菊花链。为了说明这一点,图 3-2 中描述了一个示例。实际使用的链数由文件 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