[PI 2023我的idea] USB PD 20W充电器设计方案

[复制链接]
 楼主| happypcb 发表于 2023-10-30 21:27 | 显示全部楼层 |阅读模式
本帖最后由 happypcb 于 2023-10-30 21:29 编辑

#申请原创# #有奖活动#

一、方案名称
USB PD 20W充电器设计方案

二、方案简述
此方案是采用InnoSwitch3-Pro离线式恒压/恒流/恒功率准谐振反激式开关IC,实现20WUSB PD充电器电源设计,其中MCU部分可以自行选择,通过I2C协议编程实现与InnoSwitch3-Pro的通讯设计。主要是应用在USB type-C充电器电源中。

三、电源规格
拓扑结构:反激式
输入:交流默认值AC85-265V 50HZ
输出:USB PD 20W(5.0V-3A、9.0V-2.22A)

四、原理图设计

五、PCB设计
PCB的设计要求PI Expert中也给出了:
1 最大化源极区以利于散热
2 可选Y电容连接到初级侧另外的大容量电容干线,实现雷击保护
3 漏极和箝位环路应尽量短;使漏极元件远离初级旁路和输入欠压/过压引脚电路
4 BPP和BPS电容应靠近IC
5 6.4 mm放电针间隙。具有充足爬电距离的火花隙有助于通过Y电容等保护元件避开在静电放电(ESD)时产生的破坏性能量。
6 IS-GND检测电阻应靠近IC
7 将电压引脚检测电阻靠近电压引脚放置
8 将正激引脚检测电阻靠近IC
9 输出SF FET和输出滤波电容回路应尽量短

六、变压器设计
绕组参数与变压器的结构图:



七、设计评估:
损耗百分比图:

八、软件编程设计
通过软件编程指南可以通过I2C接口实现对InnoSwitch3-Pro的数字控制。
以下是部分编程示例:
Voltage Increment Process


  1. //Voltage Increase Routine
  2. if(bVoltIncrease)
  3. {
  4. //Initial Command Sequence
  5. if(!bControlFlag_Increase)
  6. {
  7. I2C_Write16(INNO3PRO_ADDRESS ,INNO3PRO_OVA ,u8_Buffer_OVA ,WR_WORD);
  8. I2C_Write16(INNO3PRO_ADDRESS ,INNO3PRO_CV ,u8_Buffer_CV ,WR_WORD);
  9. bControlFlag_Increase = true;
  10. }
  11. if(bControlFlag_Increase)
  12. {
  13. //Check If Vout already reached 90% of the desired Set Point
  14. //if(Inno3Pro_Read_Volts() >(Inno3Pro_Get_Register_CV()*0.9))
  15. {
  16. //UVA must be written only after New Voltage Setpoint was reached, UVA is Fixed to 3V
  17. I2C_Write16(INNO3PRO_ADDRESS ,INNO3PRO_UVA ,u8_Buffer_UVA ,WR_WORD);
  18. //New Set Point Was Reached
  19. bVoutIncOk = true;
  20. bControlFlag_Increase = false;
  21. }
  22. }
  23. //Return Increment Voltage Status
  24. return bVoutIncOk;
  25. }


Voltage Decrement Process




  1. else //Voltage Decrease Routine
  2. {
  3. // UVA is Fixed to 3V
  4. I2C_Write16(INNO3PRO_ADDRESS ,INNO3PRO_UVA ,u8_Buffer_UVA ,WR_WORD);
  5. I2C_Write16(INNO3PRO_ADDRESS ,INNO3PRO_CV ,u8_Buffer_CV ,WR_WORD);
  6. // Immediately Executed after CV
  7. // Turn on Bleeder
  8. Inno3Pro_Bleeder_Enable(true);
  9. Do
  10. {
  11. bVout10pct_Flag = Inno3Pro_Read_Status_Vout10pct();

  12. } while (bVout10pct_Flag == true);

  13. //Disable Bleeder
  14. Inno3Pro_Bleeder_Enable(false);
  15. //OVA must be after Bleeder Turn Off to avoid OVP trigger
  16. I2C_Write16(INNO3PRO_ADDRESS ,INNO3PRO_OVA ,u8_Buffer_OVA ,WR_WORD);

  17. //New Set Point Was Reached
  18. bVoutDecOk = true;
  19. }
  20. //Return Decrement Voltage Status
  21. return bVoutDecOk;

  22. }
原理图:

PCB图:

BOM单:

编程指南:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1407

主题

6244

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部