ZHCSYT1A August 2025 – October 2025 TXE8116
PRODUCTION DATA
软件复位广播是 SPI 总线上的控制器发出的命令,指示支持该命令的 SPI 目标器件复位为上电默认状态。
TXE8116/TXE8124 器件采用 24 位 SPI 帧进行通信。例如,要通过软件复位命令触发寄存器复位,控制器可将 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 // 复位寄存器的寄存器命令字节
#define DATA_BITS 0x2 // 将 B1 设置为 1,将 B0 设置为 0 以触发寄存器复位
#define READ_WRITE_BIT 0 // 0 表示写入操作,1 表示读取操作
// 用于将 24 位 SPI 帧发送到 I/O 扩展器(MSB 优先)的函数
void SPI_Send(uint32_t data) {
// 使用硬件 SPI 外设逐位发送 24 位数据(MSB 优先)
for (int i = 23; i >= 0; i--) {
SPI_Transmit((data >> i) & 0x01); // 首先移出 MSB
}
}
// 用于将软件复位命令发送到 SPI I/O 扩展器的函数
void SPI_Software_Reset(void) {
uint32_t frame = 0;
// 设置读取/写入位(位 23)
frame |= (READ_WRITE_BIT << 23);
// 设置寄存器地址(位 20-16)
frame |= (REGISTER_CMD_BYTE << 16);
// 设置数据位(位 7-0)
frame |= (DATA_BITS & 0xFF); // 确保我们仅使用低 8 位
// 将 CS 拉至低电平以选择目标器件
CS_LOW();
// 发送构建的 SPI 帧(MSB 优先)
SPI_Send(frame);
// 将 CS 拉至高电平以在传输后取消选择器件
CS_HIGH();
}