This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BQ2.579万EVM:有关寄存器设置和持久性的后续问题

Guru**** 2529390 points
Other Parts Discussed in Thread: BQSTUDIO, USB2ANY

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1089003/bq25790evm-follow-up-question-regarding-register-setup-and-persistence

部件号:BQ2.579万EVM
主题中讨论的其他部件:BQSTUDIOBQ2.579万USB2ANY

上一个主题中 ,我问:

"最后,我想这是特定于芯片的,但这些寄存器是否在关机后仍持续存在? 换言之,我是否必须在每次启动时对微控制器上的这些寄存器进行读/写编程,或者我是否可以通过GUI Composer或BQSTUDIO写入所有寄存器,而不必担心在读取/写入序列中编码到微控制器? 如果我确实需要对这些寄存器进行编程,TI是否为c/c++提供任何类型的API或库,以加快微控制器代码的开发,从而读取/写入这些寄存器,而无需手动根据数据表中的文本为每个芯片创建串行读取/写入代码?”

我得到了回复:

“两个GUI都有标记的下拉列表和复选框,以及直接注册访问。 除了使用ACK信号进行I2C标准错误处理外,充电器还对某些寄存器设置了限制,以防止写入超出范围的值。 只要输入功率或电池高于UVLO值,寄存器仅在启用WD计时器且没有定期写入WD位时重置为默认值。 您可以禁用WD计时器。"

我对此有一个后续问题,但似乎线程现在已关闭,因此在这里开始一个新的线程。

我的问题是在迁移到我自己的PCB后,BQ2.579万的实际设置和编程。 如果我根据数据表的第8.3 章节13提供I2C接口(SDA和SCL线),那么我似乎必须验证许多低级别的东西,如开始和停止条件,字节格式等。如果我理解正确, GUI Composer的优点和类似的优点是,我不必担心所有这些较低的电平要求,只需通过GUI中的实际电压电平或通过在寄存器映射中翻转寄存器来设置寄存器。 简单地说,由于USB2ANY端口的大小,我不想在PCB上添加这样的端口并通过GUI Composer重新编程我们所有的芯片,但我认为我应该从PCB上的某个主机控制器进行重新编程。 话虽如此,TI是否提供任何种类的C或C++库或模板代码来满足所有低级通信要求,并且只允许我对类似register_write (register #,二进制或十进制值)的程序进行编程? 我正在寻找类似于Microchip的Harmony Composer或MPLAB Code Configurator的产品,它们的工作方式与GUI Composer相似,但生成C代码以在主机控制器上进行此类更改。 TI的CCS是否具有类似的功能?

我还注意到GUI Composer允许我将寄存器映射保存为csv或json。 假设我在GUI Composer中按照所需的方式设置所有内容,我是否可以在嵌入式程序中轻松地使用这些csv或json注册文件?

最后,如果这样的模板或库不存在,我就使用GUI Composer和USB2ANY对我们的小批模板或库进行了重新编程,假设我按照先前的建议关闭WD计时器, 将所有寄存器设置为1s电池,似乎如果我拔下所有电源,所有寄存器都将重置。 因此,您能否确认在电源循环之间无法持续修改寄存器? 也就是说,这不是修改寄存器的有效方法,我需要在主机控制器的启动顺序上实施这些更改?

此致,
Christopher

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Christopher:

    当IC断电时(蓄电池和VBUS低于UVLO点),寄存器返回到默认值,其中一些由PROG引脚上的电阻器定义。

    我们在  https://git.ti.com/gitweb?p=ti-analogue-linux-kernel/dmurphy-analogue.git;a=commit;h=7.5997万c21e9dfc0d54b7f774bfb37e6af796ff293上提供了Linux驱动程序

    此致,

    Jeff

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢Jeff。 是的,我忘记了PROG引脚,看起来我可以使用它获得一组合适的默认寄存器。

    我将尝试使用该驱动程序,并在接下来的几天中阅读更多内容,但作为一个整体问题,这是否意味着我必须在主机上嵌入Linux,并且没有为更简单/更小的占用空间构建驱动程序? 例如,如果我只是想通过一个低功耗微控制器来控制寄存器,我可能没有Linux的空间。 BQ2.579万可能更多地针对智能手机?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Christopher:

    不需要Linux。  您所需要的只是读取和写入I2C寄存器的软件。 充电器的状态机根据寄存器设置作出决定。

    此致,
    Jeff

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Jeff:

    只是跟进这一点,因为我终于有时间了解您链接的驱动程序。 也许是我误解了一些东西,但是您链接的驱动程序显然依赖于相当多的Linux头文件。 尝试删除它们会产生一系列其他错误(类型别名,不完整的类型等)。 如果有足够的时间,我想我可以解决这个问题,但这似乎非常耗时,我想我不是第一个想要一个带I2C驱动器的电池充电器的人。

    是的,我可以手动读/写我想要的所有寄存器,但这主要是指我自己写驱动程序(重写或黑客攻击Linux驱动程序),直到我有每个感兴趣的寄存器的最小/最大/增量值,以及与之相关的任何保护逻辑。 我不知道这芯片是否就是这样,是否有其他电池充电器芯片有更完善的驱动器,只依赖标准的滑槽,这样我就可以从任何标准微控制器中使用它们? 我觉得很难相信每位客户都为这种低级别的东西编写自己的自定义驱动程序,但我对所有这些都很陌生,所以这可能实际上就是标准(但这似乎效率非常低)。

    我也很好奇,是否有任何方法可以在 https://git.ti.com/gitweb上搜索 关键字"BQ2.579万/"? 搜索栏仅显示搜索项目标题,而不显示文件内容,因此不显示任何结果。 是否有办法在整个gitweb中搜索类似这样的关键字,以便我自己查找替代驱动程序?

    此致,
    Christopher

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Christopher:

    TI仅提供驱动程序,而不是完整的软件,原因是我坦率地说,不理解的法律原因。  一段时间以来,它只是Android驱动程序,但现在是Linux驱动程序。   我是一个电源设备的家伙,不是编程人员,所以我不能提供太多帮助。  我们的内部Linux人员充分利用了这一巨大的辞职机会。  您尝试转换为哪种编码语言?  我可以询问朋友是否知道任何可以提供帮助的在线来源。

    我过去曾搜索过gitweb以查找其他客户,并有相同的投诉。  

    此致,

    Jeff