ZHCUAX8 april 2023 TPS929120-Q1 , TPS929121-Q1 , TPS929160-Q1 , TPS929240-Q1
本節介紹了示例代碼如何設置不同的參數來識別系統的構建方式。
第一部分是實際使用的 LED 驅動器 IC。在 led_driver.h 文件中,選擇了使用過的 LED 驅動器 IC。
#include "TPS929240.h"
該代碼支持:
請注意,對于“Q1”器件,不會添加此名稱,僅使用基本產品名稱。所選器件對于處理寄存器中不同的寄存器地址和字段非常重要。此外,在對默認 EEPROM 進行編程時,指定的 LED 驅動器 IC 是用于對默認值進行編程的驅動器 IC。這意味著當用戶想要將 TPS929120 編程為 TPS929120A 時,必須在 led_driver.h 文件中選擇 TPS929120A。
表 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;