在控制CY7113的输出FET时,需要结合图形化配置工具(如PD Configurator)和手动代码修改。以下是分步指南:
配置步骤:
GUI配置(推荐优先步骤):
- 打开Cypress PD Configurator工具
- 在"Sink Configuration"部分启用FET控制选项
- 在"GPIO Settings"中分配PFET控制引脚
- 生成基础配置代码(*.c/.h文件)
手动代码修改:
// 在cyapp_sink.h中确认或添加以下宏定义
#define CY_APP_SINK_FET_CTRL_GPIO_EN 1 // 启用GPIO FET控制
#define PFET_SNK_CTRL_P0_PORT GPIO_PRT5 // 根据原理图修改
#define PFET_SNK_CTRL_P0_PIN 0 // 根据原理图修改
// 在初始化代码中配置GPIO
void initialize_fet_control() {
Cy_GPIO_Pin_Init(PFET_SNK_CTRL_P0_PORT, PFET_SNK_CTRL_P0_PIN, &PIN_CONFIG);
Cy_GPIO_Write(PFET_SNK_CTRL_P0_PORT, PFET_SNK_CTRL_P0_PIN, 0); // 初始关闭
}
3. **协议事件处理**:
```c
void handle_pd_event(uint32_t event) {
case CY_PD_PD_CONTRACT_EVENT:
if(contract_valid) {
Cy_GPIO_Write(PFET_PORT, PFET_PIN, 1); // 开启FET
} else {
Cy_GPIO_Write(PFET_PORT, PFET_PIN, 0); // 关闭FET
}
break;
}
注意事项:
验证硬件连接:
- 确认GPIO与FET控制引脚物理连接正确
- 检查FET控制逻辑电平(可能需要电平转换)
时序要求:
- 确保在PD协商完成(收到GoodCRC)后操作FET
- 添加适当延迟(典型10-100ms)避免瞬态冲击
保护机制:
void overvoltage_protection() {
if(measured_voltage > MAX_ALLOWED) {
Cy_GPIO_Write(PFET_PORT, PFET_PIN, 0); // 紧急关闭
trigger_hard_reset();
}
}
建议结合使用GUI生成基础配置和手动代码优化。完成配置后,使用示波器验证GPIO控制信号与FET开关动作的时序关系,确保符合USB PD规范要求(特别是tPDDebounce时间要求)。
在控制CY7113的输出FET时,需要结合图形化配置工具(如PD Configurator)和手动代码修改。以下是分步指南:
配置步骤:
GUI配置(推荐优先步骤):
- 打开Cypress PD Configurator工具
- 在"Sink Configuration"部分启用FET控制选项
- 在"GPIO Settings"中分配PFET控制引脚
- 生成基础配置代码(*.c/.h文件)
手动代码修改:
// 在cyapp_sink.h中确认或添加以下宏定义
#define CY_APP_SINK_FET_CTRL_GPIO_EN 1 // 启用GPIO FET控制
#define PFET_SNK_CTRL_P0_PORT GPIO_PRT5 // 根据原理图修改
#define PFET_SNK_CTRL_P0_PIN 0 // 根据原理图修改
// 在初始化代码中配置GPIO
void initialize_fet_control() {
Cy_GPIO_Pin_Init(PFET_SNK_CTRL_P0_PORT, PFET_SNK_CTRL_P0_PIN, &PIN_CONFIG);
Cy_GPIO_Write(PFET_SNK_CTRL_P0_PORT, PFET_SNK_CTRL_P0_PIN, 0); // 初始关闭
}
3. **协议事件处理**:
```c
void handle_pd_event(uint32_t event) {
case CY_PD_PD_CONTRACT_EVENT:
if(contract_valid) {
Cy_GPIO_Write(PFET_PORT, PFET_PIN, 1); // 开启FET
} else {
Cy_GPIO_Write(PFET_PORT, PFET_PIN, 0); // 关闭FET
}
break;
}
注意事项:
验证硬件连接:
- 确认GPIO与FET控制引脚物理连接正确
- 检查FET控制逻辑电平(可能需要电平转换)
时序要求:
- 确保在PD协商完成(收到GoodCRC)后操作FET
- 添加适当延迟(典型10-100ms)避免瞬态冲击
保护机制:
void overvoltage_protection() {
if(measured_voltage > MAX_ALLOWED) {
Cy_GPIO_Write(PFET_PORT, PFET_PIN, 0); // 紧急关闭
trigger_hard_reset();
}
}
建议结合使用GUI生成基础配置和手动代码优化。完成配置后,使用示波器验证GPIO控制信号与FET开关动作的时序关系,确保符合USB PD规范要求(特别是tPDDebounce时间要求)。
举报