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.

[参考译文] DRA821U:TPS6594-Q1:日期时间设置问题

Guru**** 2481465 points
Other Parts Discussed in Thread: TPS6594-Q1, DRA821U

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1451932/dra821u-tps6594-q1-date-time-setting-issue

器件型号:DRA821U
Thread 中讨论的其他器件:TPS6594-Q1

工具与软件:

大家好、团队成员:

我正在使用基于 DRA821U SoC 的定制电路板、并在 TPS6594-Q1 PMIC 中测试 RTC 功能。 但是、RTC 时间更新不正确。 例如、我使用命令设置时间date -s "2024-12-16 10:00:00"并关闭电路板电源。 当我立即重新通电时、时间已正确更新。 然而,在电池连接的情况下,在关闭电路板15分钟后, RTC 没有按预期更新;相反,它显示2024-12-16 10:01:00. 此外、我遇到了以下错误:




[ 2024年12月16日15:14:53] root@j7200-iwg52m:~# hwclock -r
[ 2024年12月16日15:15:07] hwclock: select() to /dev/rtc0 to wait the clock tick timed out
[ 2024年12月16日15:15:07] root@j7200-iwg52m:~# hwclock -v
[util-linux 2.37.4中的2024年12月16日15:15:10] hwclock
2024年12月16日15:15:10]系统时间:1734361761.3374436
2024年12月16日15:15:10]正在尝试打开:/dev/rtc0
[RTC 15:15:10]使用2024年12月16日 接口连接时钟。
[1969年后、2024年12月16日15:15:10]上次漂移调整时间为1734361129秒
[1969年后、2024年12月16日15:15:10]最后一次校准时间为1734361129秒
[UTC 15:15:10]硬件时钟为2024年12月16日 时间
[UTC15:15:10]假设硬件时钟保持为2024年12月16日 时间。
[ 2024年12月16日15:15:10]正在等待时钟节拍...
[ 2024年12月16日15:15:20] hwclock: select() to /dev/rtc0 to wait the clock tick timed out
[ 2024年12月16日15:15:20]...同步失败
[ 2024年12月16日15:15:20] root@j7200-iwg52m:~#

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

    您好!  

    您能回答以下问题吗:

    • 所使用的是哪个 SDK 版本?
    • 此外、您是否在 SDK 上使用其他补丁?

    此致、

    基尔西  

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

    Keerthy、您好!

    所使用的是哪个 SDK 版本?

              ->ti-processor-sdk-linux-j7200-evm-09_02_00_04-linux-x86-Install
    此外、您是否在 SDK 上使用其他补丁

               ->在 RTC 驱动程序中,我注释掉了以下部分,因为绕过错误打印"tps6594-rtc tps6594-rtc.18.auto: hctosys:无法读取硬件时钟"



    +#if 0
                   /*停止 RTC 直到对`tps6594_rtc_set_time */进行首次调用
                   RET = regmap_clear_bits (TPS->regmap、TPS6594_REG_RTC_CTRL_1
                                           TPS6594_BIT_STOP_RTC);
                   如果(ret < 0)
                           回流塔;
    +#endif


    此致、
    Madhusankar

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

    您好!

    您是否可以使用 i2cdump 命令转储 RTC 寄存器?

    i2cdump -f -y 'bus_number' slave_id 'register_addr'。

    在断电之前和回来之后执行此操作。 我想确保 RTC 正在贯穿始终。 经过的时间应正确匹配。

    -基尔西

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

    大家好、

    我已经使用 i2cdump 命令对 PMIC 寄存器进行了哑化,找到了下面的输出,或者可以指定我必须读取哪个寄存器?

     [ 2024年12月19日10:16:50] root@j7200-iwg52m:~# i2cdump -f -y 0x0 0x48  
    [ 2024年12月19日10:16:55]未指定大小(使用字节数据访问)
    2024年12月19日10:16:55]     0 1 2 3 4 5 6 7 8 9 A b c d e f   0123456789abcdef
    2024年12月19日10:16:55] 00:00 82 15 03 31 2b 21 2b 31 2b 21 2b 21 2b 31 1b 37 37    
    [ 2024年12月19日10:16:55] 10:37 37 37 37 37 37 73 73 1b 1b 1b 1b 1b 1b 1b 31 31   777777ss??? 111.
    2024年12月19日10:16:55] 20:31 00 38 12 10 38 1b 1b 1b 1b 1b 1b 20 7f 00 00 00   1..8??? ?……
    [ 2024年12月19日10:16:55] 30:00 01 58 D8 01 03 38 78 21 08 01 11 10 05 D4   ?X?8x????????
    2024年12月19日10:16:55] 40:0f 55 55 05 3e 01 55 55 15 00 00 00 00 00 00功能   UUU?>UUU?.......
    2024年12月19日10:16:55] 50:FF 3f 11 02 30 00 00 00 07 00 00 00 00 00 00   …………………………………………………
    2024年12月19日10:16:55] 60:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    2024年12月19日10:16:55] 70:00 00 02 00 00 00 00 00 00 80 00 00 00 00   ...? ?…
    2024年12月19日10:16:55] 80:00 19 02 00 0f 00 03 00 00 1f 0b 00 00 00 01   。
    [ 2024年12月19日10:16:55] 90:   00 00 60 00 00 00 00 00 01 00 60 00 00 00 00` `……………………………
    2024年12月19日10:16:55] a0:00 00 00 80 00 08 00 00 00 00 00 00 00 00   ……………………………………………
    [ 2024年12月19日10:16:55] b0:00 00 00 00 51 20 18 18 12 24 03 00 00 00    问?????…
    [ 2024年12月19日10:16:55] c0:00 41 EB 02 00 00 00 00 00 00 00 00 58 9d 00   ...?? x?.
    2024年12月19日10:16:55] d0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    [ 2024年12月19日10:16:55] e0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    [ 2024年12月19日10:16:55] f0:5A a6 28 c9 ff 52 c0 7f af b2 04 b7 00 22 0A   Z?(?.R???????? .."?
    [ 2024年12月19日10:16:55] root@j7200-iwg52m:~#
    [ 2024年12月19日10:16:55] root@j7200-iwg52m:~#

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

    您好!

    数据表链接: https://www.ti.com/lit/ds/symlink/tps6594-q1.pdf?ts = 1734595214495&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTPS6594-Q1

    此致、
    基尔西

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

    Keerthy、您好!

    请找到上述寄存器的读数

    [ 2024年12月19日16:29:22] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xB5
    [ 2024年12月19日16:30:02] 0x26
    [ 2024年12月19日16:30:02] root@j7200-iwg52m:~#
    [ 2024年12月19日16:30:03] root@j7200-iwg52m:~#
    [ 2024年12月19日16:30:03] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xB6
    [ 2024年12月19日16:30:10] 0x54
    [ 2024年12月19日16:30:10] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xB7
    [ 2024年12月19日16:30:12] 0x17
    [ 2024年12月19日16:30:12] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xB8
    [ 2024年12月19日16:30:15] 0x28
    [ 2024年12月19日16:30:15] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xB9
    [ 2024年12月19日16:30:18] 0x04
    [ 2024年12月19日16:30:18] ROOT@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xBA
    [ 2024年12月19日16:30:23] 0x22
    [ 2024年12月19日16:30:23] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xBB
    [ 2024年12月19日16:30:25] 0x04
    [ 2024年12月19日16:30:25] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xBC
    [ 2024年12月19日16:30:30] 0x10
    [ 2024年12月19日16:30:30] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xBD
    [ 2024年12月19日16:30:34] 0x53
    [ 2024年12月19日16:30:34] root@j7200-iwg52m:~#
    [ 2024年12月19日16:30:35] root@j7200-iwg52m:~#
    [ 2024年12月19日16:30:35] root@j7200-iwg52m:~#
    [ 2024年12月19日16:30:54] root@j7200-iwg52m:~# date -R
    2024年12月19日16:30:55] 2022年4月28日、星期四、17:55:17 +0000
    [ 2024年12月19日16:30:55] root@j7200-iwg52m:~#
    [ 2024年12月19日16:30:55] root@j7200-iwg52m:~#
    [ 2024年12月19日16:30:56] root@j7200-iwg52m:~# date -s 2024年12月19日16:34:20'
    [UTC16:31:13] 2024年12月19日2024[431.176874] systemd-journald[169]:/run/log/journal/2b4744385111483fbad3d2531f865c8d/system.journal 中最旧的条目比配置的文件 retenti 旧。
    [ 2024年12月19日16:31:13]
    [Journal 16:31:13][ 431.195692] systemd-journald[169]:/run/log/journal/2b4744385111483fbad3d2531f865c8d/system.journal:2024年12月19日 报头限制已达到或报头已过时、正在旋转。
    [ 2024年12月19日16:31:13] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:15] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:15] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:15] root@j7200-iwg52m:~# date -R
    [ 2024年12月19日16:31:17] 2024年12月19日星期四16:34:24 +0000
    [ 2024年12月19日16:31:17] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:18] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:18] root@j7200-iwg52m:~# date -R
    [ 2024年12月19日16:31:19] 2024年12月19日星期四16:34:26 +0000
    [ 2024年12月19日16:31:19] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:20] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:41] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:41] root@j7200-iwg52m:~# hwclock -w -f /dev/rtc0
    [ 2024年12月19日16:31:57] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:58] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:58] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:58] root@j7200-iwg52m:~#
    [ 2024年12月19日16:31:58] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xB5
    [ 2024年12月19日16:32:06] 0x12
    [ 2024年12月19日16:32:06] root@j7200-iwg52m:~#
    [ 2024年12月19日16:32:12] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xB6
    [ 2024年12月19日16:32:14] 0x35
    [ 2024年12月19日16:32:14] root@j7200-iwg52m:~#
    [ 2024年12月19日16:32:14] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xB7
    [ 2024年12月19日16:32:19] 0x16
    [ 2024年12月19日16:32:19] root@j7200-iwg52m:~#
    [ 2024年12月19日16:32:20] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xB8
    [ 2024年12月19日16:32:23] 0x19
    [ 2024年12月19日16:32:23] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xB9
    [ 2024年12月19日16:32:25] 0x12
    [ 2024年12月19日16:32:25] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xBA
    [ 2024年12月19日16:32:28] 0x24
    [ 2024年12月19日16:32:28] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xBB
    [ 2024年12月19日16:32:29] 0x04
    [ 2024年12月19日16:32:29] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xBC
    [ 2024年12月19日16:32:31] 0x10
    [ 2024年12月19日16:32:31] root@j7200-iwg52m:~# i2cget -f -y 0x0 0x48 0xBD
    [ 2024年12月19日16:32:34] 0x53
    [ 2024年12月19日16:32:34] root@j7200-iwg52m:~#


    注意:我没有连接 RTC 纽扣电池,静止日期时间正在改变

    此致、
    Madhusankar S P.



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

    大家好、

    上述查询是否有任何更新?

    此致、
    Madhusankar S P.

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

    您好!

    由于假日季、敬请期待延迟回复。

    我没有连接 RTC 纽扣电池、静止日期时间正在更改

    有。 当 SOC 通电时、RTC 将使用 SOC 电压轨。 关闭时、将使用纽扣电池。

    -基尔西

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

    Keerthy、您好!

    是否需要对所面临的问题进行任何驱动程序更改? 这是我今后要解决的关键问题。

    此致、
    Madhusankar S P.

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

    您好!

    然后听取 PMIC 专家的发言。 我在此总结我对该问题的理解:

    1. RTC 时间更新在 Linux 启动时按预期发生。
    2. 然后、您关闭 SOC 电源、仅使用纽扣电池为 RTC 供电。
    3. 您仍然可以看到、时间已经递增、但在再次对 SOC 上电后出现了错误。

    以上都是正确的吗?

    -基尔西

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

    Keerthy、您好!



    SoC 上电
    2.设置时间和日期 date -s "2024-12-16 10:00:00()
    关闭 SoC 的电源
    SoC 上电
    5.checked 日期为-R 的时间2024-12-16 10:01:00()

    上面的5个步骤非常好、问题是 SoC 在连接纽扣电池的情况下关断30分钟不会增加



    此致、
    Madhusankar

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

    尊敬的 Madhusankar:

    我来自 PMIC 团队、首先感谢您提供寄存器转储、这非常有用。

    对于寄存器0xC2、我注意到值为0x41、从转储中设置了 GET_TIME 位。 从下面的寄存器说明来看、可能需要通过将0x0写入此字段、然后将0x1写入 GET_TIME 以保持最新状态来对其进行复位。

    1.开启 Soc
    2.设置时间和日期 date -s "2024-12-16 10:00:00()
    关闭 SoC 的电源
    SoC 上电
    5.checked 日期为-R 的时间2024-12-16 10:01:00()

    上述5个步骤非常好、问题是如果 SoC 在连接纽扣电池的情况下关断30分钟时间不会增加

    您能否再次执行以下操作。 我不熟悉 SDK 中的驱动程序实现、但我们可以看到 I2C 级别的情况并以此为基础进行工作:

    • 在步骤1和2之间:执行寄存器0xC2、0xC3、0xC4的 I2C 获取
    • 执行步骤5:在步骤5后、执行 I2C 设置命令以设置 GET_TIME = 0x0、执行 I2C 寄存器获取以查看新时间是否更新
    • 如果在寄存器0xB5回读至0xBB 后时间正确更新、则会设置某个 GET_TIME、但不会复位、因此在自 GET_TIME 设置以来回读时间没有变化时

    期待命令行输出、如果您有其他问题、请提问。

    BR、

    尼古拉斯·麦克纳马拉