ZHCSYC2A May 2025 – September 2025 TXE8116-Q1 , TXE8124-Q1
ADVANCE INFORMATION
軟件復位廣播是 SPI 總線上的控制器發(fā)出的命令,指示支持該命令的 SPI 目標器件復位為上電默認狀態(tài)。
TXE8116-Q1/TXE8124-Q1 器件采用 24 位 SPI 幀進行通信。例如,要通過軟件復位命令觸發(fā)寄存器復位,控制器可將 SPI 幀配置如下:
| B23 | B22 | B21 | B20 | B19 | B18 | B17 | B16 | B15 | B14 | B13 | B12 | B11 | B10 | B9 | B8 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
// 定義 SPI 寄存器地址
#define REGISTER_CMD_BYTE 0x1A // 復位寄存器的寄存器命令字節(jié)
#define DATA_BITS 0x2 // 將 B1 設(shè)置為 1,將 B0 設(shè)置為 0 以觸發(fā)寄存器復位
#define READ_WRITE_BIT 0 // 0 表示寫入操作,1 表示讀取操作
// 用于將 24 位 SPI 幀發(fā)送到 I/O 擴展器(MSB 優(yōu)先)的函數(shù)
void SPI_Send(uint32_t data) {
// 使用硬件 SPI 外設(shè)逐位發(fā)送 24 位數(shù)據(jù)(MSB 優(yōu)先)
for (int i = 23; i >= 0; i--) {
SPI_Transmit((data >> i) & 0x01); // 首先移出 MSB
}
}
// 用于將軟件復位命令發(fā)送到 SPI I/O 擴展器的函數(shù)
void SPI_Software_Reset(void) {
uint32_t frame = 0;
// 設(shè)置讀取/寫入位(位 23)
frame |= (READ_WRITE_BIT << 23);
// 設(shè)置寄存器地址(位 20-16)
frame |= (REGISTER_CMD_BYTE << 16);
// 設(shè)置數(shù)據(jù)位(位 7-0)
frame |= (DATA_BITS & 0xFF); // 確保我們僅使用低 8 位
// 將 CS 拉至低電平以選擇目標器件
CS_LOW();
// 發(fā)送構(gòu)建的 SPI 幀(MSB 優(yōu)先)
SPI_Send(frame);
// 將 CS 拉至高電平以在傳輸后取消選擇器件
CS_HIGH();
}