ZHCAEF1 September   2024 MSPM0G3507

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2硬件设置
  6. 3软件设置
  7. 4软件结构
    1. 4.1 流程图
    2. 4.2 系统设置
    3. 4.3 诊断
    4. 4.4 EEPROM 编程
  8. 5总结
  9. 6参考资料

系统设置

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

示例代码还支持:

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

请注意,对于 Q1 器件,不会添加该后缀,仅使用基本米6体育平台手机版_好二三四名称。所选器件对于处理寄存器中不同的寄存器地址和字段非常重要。此外,在对默认 EEPROM 进行编程时,指定的 LED 驱动器 IC 是用于对默认值进行编程的驱动器 IC。这意味着当用户想要将 TPS929120 编程为 TPS929120A 时,必须在 led_driver.h 文件中选择 TPS929120A。

表 4-1 中汇总了影响系统设置的宏和变量。

表 4-1 每个文件的宏和变量名称汇总
文件名 宏或变量名称 说明
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;