PD 控制器(TPS65981)的最终应用是向连接到它的目标设备(12V)供电,同时配置 USB TYPE-C DP Alt 模式转接驱动器 IC(TUSB1046AI-DCIRNQT),以将 4 通道 DP 线路穿过将连接基于 C 型的显示设备的 C 型插座。
所以我想知道
1.在“TPS6598x配置工具”中需要做什么配置才能达到我们的要求
2.能否为我们提供可以使用的默认二进制文件,并通过 PD 控制器 IC 的 I2C 线将其闪存到外部闪存中
下面是我们正在实现的架构框图

PD 控制器(TPS65981)的最终应用是向连接到它的目标设备(12V)供电,同时配置 USB TYPE-C DP Alt 模式转接驱动器 IC(TUSB1046AI-DCIRNQT),以将 4 通道 DP 线路穿过将连接基于 C 型的显示设备的 C 型插座。
所以我想知道
1.在“TPS6598x配置工具”中需要做什么配置才能达到我们的要求
2.能否为我们提供可以使用的默认二进制文件,并通过 PD 控制器 IC 的 I2C 线将其闪存到外部闪存中
下面是我们正在实现的架构框图

阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
问题理解
您需要将默认二进制文件通过 PD 控制器 IC 的 I2C 线闪存到外部闪存中。具体来说,您使用的是 TPS65981 PD 控制器和 TUSB1046AI-DCIRNQT USB TYPE-C DP Alt 模式转接驱动器 IC。
解决方案
核心代码示例
#include <stdint.h>
#include <stdbool.h>
#include "ti_drivers_config.h"
// 定义 I2C 总线的配置
#define I2C_MASTER_BASEADDR 0x4007E000
#define I2C_SLAVE_ADDRESS 0x12
// 定义外部闪存的配置
#define FLASH_SIZE 0x10000
#define FLASH_ADDRESS 0x40000000
// 函数定义
void i2c_master_init(void);
void i2c_master_write(uint8_t slave_addr, uint8_t *data, uint32_t len);
void flash_write(uint32_t addr, uint8_t *data, uint32_t len);
int main(void) {
// 初始化 I2C 总线
i2c_master_init();
// 将默认二进制文件写入外部闪存中
uint8_t *binary_data = ...; // 获取默认二进制文件的指针
uint32_t binary_len = ...; // 获取默认二进制文件的长度
flash_write(FLASH_ADDRESS, binary_data, binary_len);
return 0;
}
void i2c_master_init(void) {
// 初始化 I2C 总线的配置
I2C_MasterConfig_t i2c_config;
i2c_config.i2cMasterClockSpeed = 400000;
i2c_config.i2cMasterMode = I2C_MASTER_MODE;
i2c_config.i2cMasterSlaveAddress = I2C_SLAVE_ADDRESS;
i2c_config.i2cMasterInterruptEnable = I2C_MASTER_INT_ENABLE;
// 初始化 I2C 总线
I2C_MasterInit(I2C_MASTER_BASEADDR, &i2c_config);
}
void i2c_master_write(uint8_t slave_addr, uint8_t *data, uint32_t len) {
// 写入数据到 I2C 总线
I2C_MasterWrite(I2C_MASTER_BASEADDR, slave_addr, data, len);
}
void flash_write(uint32_t addr, uint8_t *data, uint32_t len) {
// 写入数据到外部闪存
// ...
}
注意
上述代码仅供参考,具体实现可能需要根据您的硬件和软件环境进行调整。