ZHCUB08 may   2023 LP5891-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2软件设置
  6. 3示例代码结构
    1. 3.1 设计参数
    2. 3.2 流程图
    3. 3.3 系统设置
    4. 3.4 诊断
    5. 3.5 演示

系统设置

本节介绍了示例代码如何设置不同的参数来识别系统的构建方式。第一部分是实际使用的 LED 驱动器 IC。在 led_driver.h 文件中,选择了使用过的 LED 驱动器 IC。

#include "LP5891.h"
该代码支持:
  • LP5891
  • LP5890
  • TLC6984
  • TLC6983

请注意,对于“Q1”器件,不会添加此名称,仅使用基本产品名称。

表 3-2 中列出了影响系统设置及其位置的宏和变量的摘要。

表 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 时,必须更新此宏。

GUID-20230321-SS0I-5TRS-TNLN-JNNNQXFTRZRK-low.svg图 3-2 使用 2 个 CCSI 链的示例系统

示例代码最多支持 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