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.

[参考译文] AM3351:使用 TI 驱动程序和 AM3351 设置 TPS65218D0PHP FSEAL 位

Guru**** 2442090 points
Other Parts Discussed in Thread: AM3351, TPS65218

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1544271/am3351-setting-tps65218d0php-fseal-bit-using-ti-driver-with-am3351

器件型号:AM3351
主题: TPS65218 中讨论的其他器件

工具/软件:

将 SDK9 与 AM3351 和 TPS65218D0PHP 配合使用时、如何使用 TI 编写的驱动程序设置 PMIC FSEAL 位?

*** 7/25/25:我正在更新此帖子、以包括下面同事的描述。  由于我们还没有看到 TI 的回复、我将其添加到原始帖子中、以确保问题陈述很明确:

具体而言、我们将使用 TPS65218 驱动器。  我们在 pmic_tps65218.c 中找到了函数“tps65218_lock_fseal ()“、但我们不清楚我们打算如何调用它;它似乎不是从驱动程序中的其他位置调用的、它似乎没有暴露于 ioctl 或类似的对象。  是否有任何关于如何使用这种方法的指导?  如果相关,我们的产品主要在 Linux 下作为用户空间应用程序运行,但我们愿意在必要时重建内核。

摘要:是否了解 pmic_tps65218.c 中的函数“tps65218_lock_fseal ()“?  工作原理?  它是如何调用的?

提前感谢您对此问题的任何帮助。

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

    具体而言、我们将使用 TPS65218 驱动器。  我们在 pmic_tps65218.c 中找到了函数“tps65218_lock_fseal ()“、但我们不清楚我们打算如何调用它;它似乎不是从驱动程序中的其他位置调用的、它似乎没有暴露于 ioctl 或类似的对象。  是否有任何关于如何使用这种方法的指导?  如果相关,我们的产品主要在 Linux 下作为用户空间应用程序运行,但我们愿意在必要时重建内核。

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

    尊敬的 Owen:

    我会将您的问题发送给 PMIC 团队以征求意见。

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

    尊敬的 Owen:

    由于此函数是 U-Boot 驱动程序的一部分、因此我找到了一个使用该函数的示例。 希望这适用于您所需的内容。

    https://concept.u-boot.org/u-boot/u-boot/-/blob/acce3463797def22b71e3c6d8ff9a4844941cdf7/board/compulab/cm_t43/cm_t43.c

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

    谢谢! 我错过了这个函数实际上是在 U-boot 中而不是在内核中,但将它移植到内核驱动程序是很简单的(我把它放在 tps65218.c 文件中,在探测器函数的末尾)。

    但是、当它运行时、似乎实际上并没有设置 FSEAL 位。  在驱动程序中、我在尝试设置 FSEAL 后读回状态寄存器、仍然报告为 0x08。  我添加了一些代码来监控寄存器对 PMIC 的写入、它报告了我可以确定的是正确的序列(寄存器 0x10、值为 0xb1、0xFE、0xa3、0xb1、0xFE、 0xa3、0xb1、0xFE、0xa3)。  对于可能出现的问题、有什么建议吗?

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

    您好、

    请咨询应用工程师以了解该设备的序列细节。 在我们研究完这个问题后、我们会再回来的!

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

    尊敬的 Owen:  

    您能否澄清一下、在写入之间没有执行任何回读、并且严格在写入序列完成后执行回读?
    连续写入的任何中断都可能干扰序列。  

    如果这不是问题、那么我是否可以建议将这个整数设置为 1 或 2 来看看这是否会改变 FSEAL 位?

    三次写入应该会将该位锁定为“1",“,但、但我想测试在前两次写入中是否成功切换了该位。

    您还能否确认一些有关 设计的问题:

    • 是否使用了纽扣电池和/或 AC_DET?
    • 上电序列是通过 PWR_EN、AC_DET、PB 还是 IN_BIAS 电源启动的?

    此致、
    Sarah

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

    您好、Sarah:

    这在回读上是正确的:我们连续发出写入,没有干预读取,然后我们立即读取状态。

    将循环计数器更改为 1 或 2 不会有任何差异;我们得到 1、2 和 3 次循环迭代的状态为 0x08。

    对于设计问题、我必须将问题交给我的同事 Tom;他比我更熟悉硬件设计。  

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

    您好、Sarah:

    关于硬件:

    • 交流检测未使用、拉至高电平。  
    • IN_BIAS 未使用、被拉至高电平  
    • 按钮 PB 未使用、连接至高电平
    • 纽扣电池 CC 输入通过推荐的二极管/电阻器网络连接到 3V 纽扣电池
    • 我们可以取出纽扣电池来测试此 FSEAL 流程、无论是否使用备用电池
    • 上电序列通过 PWR_EN 输入连接到系统主电源的“电源正常“输出来启动。

    感谢你的帮助。  如果您有其他问题、请告知我们。

    此致、

    Tom

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

    嗨、Owen、Tom、  

    感谢您的见解。

    您能解释一下“IN_BIAS 未使用、拉至高电平“的含义吗?
    IN_BIAS 应该只是 PMIC 的电源电压、范围为 2.7V 至 5.5V
    请确保 提供了适当的输入电压。  

    设置 FSEAL 位时、请保持插入币形单元格。
    我们已经注意到、CC 引脚需要具有 2.2V - 3.3V 的有效电压才能正确设置该位。  

    您是否还可以尝试将某种 I2C 监听器连接到总线、以确保在硬件端接收到这些写入命令?

    此致、  

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

    您好、Sarah:

    • 我们确保提供了适当的输入电压。  我们的输入电压为 4.1 伏、我们确认它存在。 此外、如果没有它、我们就无法运行这些实验。
    • IN_BIAS 连接到输入电源电压。  这是“IN_BIAS 未使用、拉至高电平“的含义。
    • 在待测 PCBA 上的电压为 3.2 伏。

    我们将检测 I2C 监听器并在此处进行测量之后。  这需要几天的时间才能完成。   

    此致、

    Tom

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

    您好、Sarah:

    我们发现测试硬件有问题。  此问题已解决、谢谢。

    我们已经将 “tps65218_lock_fseal ()“移到 内核中,它现在正在按预期运行。

    此致、

    Tom