最近参加芯片国产化项目,分享一下开发感受。 IP5108国产移动电源芯片: IP5108可以通过连接3、4、5盏指示灯来显示当前电量。由于本项目只能用一个三色灯,因此使用了IP5108的I2C功能来实现电源的电量获取。在切入I2C功能之后其开发有几点需要注意: 1、IP5108的寄存器初始值可能是随机的,或者说根本不是项目需要的,因此每次开机都需要完整的初始化。比如轻载关机功能,可能我们在使用的时候发现,如果使用的功能较少,电流较小,系统会自动关机。这一般来说不符合我们的项目需求,需要通过寄存器配置关掉。其次充电使能,如果没有使能可能会无法充电。 2、IP5108的I2C时序比较严格。如果发现在使用IO口模拟I2C的时候有的寄存器可以完成读写,有的寄存器读写的时候没有响应(acknowledge),可能是由于写的I2C的时序不够严。这种时候使用硬件I2C是最好的选择。 3、快充可能会出现的问题:利用IP5108计算电量一般可读取其内部寄存器读取的电压值,再利用电压值与电量之间的对应关系(电池厂家提供)计算电量。由于IP5108支持2A的大充电电流,因此在快速充电的时候可能会出现电量虚高的现象。即充电的时候检测电压发现已经充满,但是停止充电就会发现还没有充满。快充就像到可乐,倒的越快泡沫越多,电量虚高就越严重。这种情况可能需要算法控制,比如在接近充满的时候需要进行小电流充电。充电电流可以通过寄存器进行配置。快充的问题不是IP5108特有的问题,应该属于电池的问题,这里仅仅是分享一下开发感受。
HP203国产气压计芯片: HP203网上的代码非常多,写的也比较详细,这里仅仅分享2点: 1、最好使用硬件I2C。HP203的时序比较严格,如果用IO口进行模拟对精确程度要求非常高,而使用硬件I2C是最好的选择。个人觉得与其花时间来调试模拟IO的I2C协议不如直接使用硬件I2C例程,官方例程比较好使。(本项目使用的GD32作为主控芯片进行开发) 2、气压计的使用需要两步:开启ADC转化以及读取数据。在开启ADC转化的时候选择不同的OSR会有不同的延迟输出,如果项目是实时的需要注意。使用芯片的中断功能也是非常好的选择。
|