redstoner-35 / DDH_3SLithumChg_FW

Firmware code repository for my embedded 3S Lithium ion battery charger(doubled as a Power Bank)suitable for DDH-D8B or DDH-D7D Flashlight housing.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

powered by 35's Embedded Systems Inc. A next generation Charger Firmware solution.

概述

这是由redstoner_35(from 35's Embedded Systems Inc.)开发的针对英集芯IP2368_COUT_I2C版本双向PD充电控制芯片所实现的充电宝方案的固件源代码。所支持的参考硬件您可前往V3版本带屏幕充电节(硬件部分)查看详情。该方案通过外挂的HT32F52342单片机、配套的电源管理系统实现了类似IP5389之类的充电宝芯片方案的按键唤醒芯片查看电量的功能,同时又避免了IP5389之类的充电宝SoC在大电流不过板放电的情况下所出现的库仑计读数异常或者无法充放电的问题,适合手电筒这种大电流不过IC自身库仑计放电的场合。

关于IP2368_I2C_COUT芯片版本问题的一些说明

由于英集芯的IP2368系列芯片本质上是基于MCU的软件定义功能的芯片。因此不同版本的芯片在I2C寄存器布局上面会有细微的调整,导致程序中的初始化例程失败。因此在制作实际硬件并购买芯片之时,需要和卖家索要您所购买的芯片批次所对应的寄存器文档并核对本批次芯片中包含的固件所对应的版本号。本程序在编写时按照的是寄存器版本V1.2文档ID为:IP2368_I2C_COUT(with reg)V1.2.pdf进行编写。对于其余的寄存器版本则因条件有限并未测试。如您发现该固件在搭配特定版本固件的芯片时出现问题,则请附上所对应版本的寄存器文档并open一个issue,作者将在3-5个工作日内处理。

关于MCU配置

该固件为了节约成本使用了64KB ROM的HT32F52342 MCU。且工程内已经对初始化文件做了更改使固件配置为启用内置高速振荡器(HSI)并开启PLL将HSI倍频为48MHz作为系统时钟,因此不需要外部晶振。当然如果有能力你也可以将这个固件移植到其他32bit M0+的MCU平台上面(例如STM32G0)。 不过移植时需要注意,因为IP2368芯片的I2C并非硬件IP,而是通过GPIO和中断模拟。因此MCU端不建议使用硬件I2C进行通信,这是因为IP2368端的软件模拟I2C容易和MCU侧的硬件I2C IP出现时序冲突而导致IP2368死机,并引起总线挂死。 同时考虑到不是所有的MCU都具有功能安全(也就是在MCU供电轨处于断电状态时,所有GPIO均处于高阻浮空状态)的GPIO,因此硬件部分本人加入了基于MOSFET的OD门以及74LVC1T45的双向逻辑转换器的隔离器,负责在MCU断电时隔离开MCU和IP2368的I2C总线,这是因为如果IP2368在芯片初始化时检测到SCL或者SDA为非高电平,则芯片将会以非I2C模式的指示灯模式启动导致无法通信。故本固件的I2C部分驱动为GPIO模拟以适配硬件部分加入的隔离器。

协议支持

对于协议支持部分,你永远可以信赖英集芯。这个充电节方案实测支持的协议如下:

  • PD :5V 12v 9V 15V 20V 3A(9V不支持是因为IP2368_COUT_I2C版本旧版本,时间戳为WSADJ的固件的抽象bug,如果打开9V PDO则华为手机会优先进行PD 9V握手并导致后续的SCP握不上,如果关闭了SCP则可以正常使用PD 9V)
  • PD3.0 PPS:3-11V 3A 3-21V 3A
  • 水果和三星:APPLE 2.4A DCP 三星AFC 9V和12V
  • QC系列协议:
    • QC2.0:5V 9V 12V
    • QC3.0:3.6-12V
    • QC3+
    • QC4+
    • QC5
  • 华子协议:
    • FCP 5V 9V 12V
    • SCP 3.3-10V 2.2A 22.5W(旧版本芯片,时间戳为WSADJ的固件会和9V PDO冲突)

不过需要注意的是,寄存器版本V1.2、固件时间戳为WSADJ的IP2368_I2C_COUT存在优先握手PD并无视后续一切快充请求的抽象bug。这会导致华子手机即使协议支持,也无法顺利握手22.5W的SCP快充。对于这个问题,本固件在检测到旧版本协议并启用SCP的时候会强制禁用9V PDO输出挡位。

如何更新IP2368的固件

IP2368芯片的固件可以通过官方的烧录工具更新,如果您是厂家身份则可以直接通过英集芯官方邮箱和FAE取得联系,并获得升级工具、固件文件以及协议文档。如果您是个人爱好者尝试复刻本项目,则您可联系您购买芯片的代理商并要求他们使用专门的烧录机台为您将芯片更新至最新固件。(时间戳编号为XARII,协议版本为V1.63)

因固件文件、升级工具和I2C协议文件等相关资料属于英集芯的商业机密,需要以公司身份签订保密协议后方可获取,故本工程无法提供相关资料,请见谅。


© redstoner_35 @ 35's Embedded Systems Inc. 2024

About

Firmware code repository for my embedded 3S Lithium ion battery charger(doubled as a Power Bank)suitable for DDH-D8B or DDH-D7D Flashlight housing.

License:Creative Commons Attribution Share Alike 4.0 International


Languages

Language:C 99.2%Language:Assembly 0.8%