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.

[参考译文] BQ32000:振荡器故障

Guru**** 2524550 points
Other Parts Discussed in Thread: BQ32000

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/843404/bq32000-oscillator-failure

器件型号:BQ32000

您好!

我想将 BQ32000与 Raspberry Pi 3 B 型(Raspbian Buster)配合使用。
我把所有东西放在一起、I2C 通信似乎可以、但无法从芯片上读取时间。
加载模块时、我收到以下消息:

bq32k 1-0068:振荡器故障。 检查 RTC 电池。
bq32k 1-0068:已启用涓流 RTC 电池充电。
bq32k 1-0068:RTC 内核:将 bq32k 注册为 rtc0

我已经测试了一个新芯片和另一个具有相同问题的晶振。
我使用以下晶体:
ABS07L-32.768kHz-T
abracon.com/.../ABS07L.pdf
www.digikey.com/.../3915230

您是否有任何问题?

pi@raspberrypi:~$ sudo hwclock -D -w -详细
hwclock:使用--verbose、--debug 已被弃用。
util-linux 2.33.1的 hwclock
系统时间:1569685463.067748
正在尝试打开:/dev/rtc0
时钟的 RTC 接口。
上次漂移调整是在1969年之后的1569685156秒完成的
上次校准是在1969年之后的1569685156秒完成的
硬件时钟处于 UTC 时间
假设硬件时钟保持 UTC 时间。
RTC 类型:"bq32k"
使用延迟:0.000000秒
错过它- 1569685463.082688过远超过1569685463.000000 (0.082688 > 0.001000)
1569685464.000000足够接近1569685464.000000 (0.000000 < 0.002000)
将 RTC 设置为1569685464 (1569685463 + 1;refsystime = 1569685463.000000)
自1969年以来、将硬件时钟设置为15:44:24 = 1569685464秒
ioctl (RTC_SET_TIME)成功。
不调整漂移因子、因为未使用--update-漂 移选项。
新/etc/adjtime 数据:
0.000000 1569685463 0.000000
1569685463
UTC

pi@raspberrypi:~$ sudo hwclock -D -r --verbose
hwclock:使用--verbose、--debug 已被弃用。
util-linux 2.33.1的 hwclock
系统时间:1569685173.482154
正在尝试打开:/dev/rtc0
时钟的 RTC 接口。
上次漂移调整是在1969年之后的1569685156秒完成的
上次校准是在1969年之后的1569685156秒完成的
硬件时钟处于 UTC 时间
假设硬件时钟保持 UTC 时间。
正在等待时钟周期...
ioctl (3、RTC_UIE_ON、0):无效参数
循环等待来自/dev/rtc0的时间更改
hwclock:ioctl (RTC_RD_TIME)到/dev/rtc0读取时间失败:参数无效
同步失败


此致、

丹尼

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

    尊敬的 Denny's:

    预计会出现第一条错误消息。 在器件加电或振荡器故障时设置该标志。 of 位不会自动更改、您需要通过串行接口清除该位。

    根据您提供的代码、我不确定为什么读取失败。 读取命令上似乎有一个无效的参数。

    此致、
    通道

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

    您好、Lane、

    感谢您的回复。
    是否确实需要手动更改位? 我想这将由驾驶员完成。
    您能不能建议如何清除位?
    我可以在 i2cset 的帮助下停止和启动振荡器、但不能更改 of 位。

    此致、

    丹尼

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

    尊敬的 Denny's:

    如果您不想使用 of 标志、则无需更改该位。

    要清除该位、只需将其写入零即可。 这可以在您设置初始配置期间的时间时完成。

    如果您无法更改位的、这可能表示您的振荡器运行不正常。

    此致、
    通道

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

    您好、Lane、

    您是否知道什么会导致振荡器出现此类问题?
    我已经使用另一种类型的已知工作晶体和新芯片进行了测试-同样的问题。

    此致、

    丹尼

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

    尊敬的 Denny's:

    我还不确定是什么导致了问题、我们必须继续进行调试。 您是在其他电路板上还是在其他器件上观察它吗?

    请通过检查示波器来验证振荡器是否确实在振荡。 一旦您确认了它、请清除"of (的)"位、然后重新读取"of (的)"位、以确保没有发生振荡器故障。

    此致、
    通道

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

    您好、Lane、

    我制作了一个定制 PCB 和两个测试 PCB、导致了相同的问题。

    我已经用示波器检查了引脚 OSCi 和 OSCi、只有几毫伏的电压、并且无法检测到振荡。

    我不确定如何清除位、因为我不是编码器。 我使用 Linux 的 I2C 工具、可以对寄存器进行读取和写入。 但是、当我将值0写入秒寄存器的位7时、没有任何变化。

    此致、

    丹尼

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

    尊敬的 Denny's:

    感谢您的更新。 您的晶体是否满足建议运行条件中的要求?

    似乎没有振荡、这将解释问题。 必须做的第一件事是使振荡器工作。 使用示波器测量 OSC 引脚时、建议使用高阻抗、低电容探针、以便探针不会停止振荡器。

    of 位是寄存器0x01位7 (分钟寄存器)、您将该位写0即可将其清除。 您已将停止位写入零、这将允许振荡器在正常运行模式下运行、但如果晶体/振荡器由于其他原因而不工作、这不会产生影响。

    此致、
    通道

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

    您好、Lane、

    晶体有问题。
    我从另一家制造商那里测试了一个具有相同技术规格的晶振、它马上就开始工作了。

    此致、

    丹尼