ZHCUAX8 april   2023 TPS929120-Q1 , TPS929121-Q1 , TPS929160-Q1 , TPS929240-Q1

 

  1.   摘要
  2.   商标
  3. 1引言
  4. 2软件设置
  5. 3硬件设置
  6. 4示例代码结构
    1. 4.1 流程图
    2. 4.2 系统设置
    3. 4.3 诊断
    4. 4.4 EEPROM 编程

系统设置

本节介绍了示例代码如何设置不同的参数来识别系统的构建方式。

第一部分是实际使用的 LED 驱动器 IC。在 led_driver.h 文件中,选择了使用过的 LED 驱动器 IC。

#include "TPS929240.h"

该代码支持:

  • TPS929120
  • TPS929120A
  • TPS929121
  • TPS929121A
  • TPS929160
  • TPS929240
  • TPS929240A

请注意,对于“Q1”器件,不会添加此名称,仅使用基本产品名称。所选器件对于处理寄存器中不同的寄存器地址和字段非常重要。此外,在对默认 EEPROM 进行编程时,指定的 LED 驱动器 IC 是用于对默认值进行编程的驱动器 IC。这意味着当用户想要将 TPS929120 编程为 TPS929120A 时,必须在 led_driver.h 文件中选择 TPS929120A。

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

表 4-1 每个文件的宏和变量名称的摘要
Filename 宏/变量名称 说明
system_info.h DEVICE_CNT FlexWire 总线上的器件数量
CAN_USED 在 UART 或 UART 转 CAN 之间进行选择
ALWAYS_CHECK_CRC 为所有非广播命令启用 CRC 检查功能
PROG_EEPROM 启用 EEPROM 编程模式
PROG_DEFAULT_EEPROM 对默认 EEPROM 值进行编程,而不是对自定义 EEPROM 值进行编程
USE_REF_PIN_FOR_EEPROM_PROG 在 EEPROM 编程期间使用 REF 引脚
system_info.c device_address FlexWire 总线上的器件地址列表
FlexWire.c rcvCrcError 如果接收到的 CRC 有错误则报告

system_info.h 文件中,FlexWire 总线上的器件数由宏 DEVICE_CNT 定义。示例代码仅支持 1 条 FlexWire 总线。

// Total devices on FlexWire bus
#define DEVICE_CNT           1

这些器件的实际地址在 system_info.c 文件中指定。地址序列决定了 FlexWire 非广播写和读命令的顺序。因此,对于不同的器件地址序列,动画模式下的 LED 图形看起来会有所不同。

const uint16_t device_address[DEVICE_CNT] = {DEVICE_ADDR__1};

system_info.h 文件还定义了其他系统参数。

// Define if CAN or UART is used
#define CAN_USED             FALSE

// When non-broadcast is transmitted, does the CRC need to be checked
#define ALWAYS_CHECK_CRC     FALSE

CAN_USED 定义是否为 FlexWire 总线使用 UART 或 UART 转 CAN。这会影响在 MCU UART-RX 引脚上接收到的总字节数。

ALWAYS_CHECK_CRC 定义对于接收到的反馈,是否每个非广播写入命令都需要检查 CRC。当检查 CRC 后发现其不正确时,全局变量 rcvCrcError 设置为 TRUE。在所有其他情况下,该变量设置为 FALSE。变量 rcvCrcError 在文件 FlexWire.c 中定义。

// When an error in CRC of the received data is observed, set this to TRUE
unsigned int rcvCrcError;