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.

[参考译文] AM5716:PMIC (TPS659037)上的 ADC 有时会给出错误的值

Guru**** 2769575 points

Other Parts Discussed in Thread: TPS659037, AM5716, SYSBIOS

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/836201/am5716-adc-on-pmic-tps659037-sometimes-gives-wrong-values

器件型号:AM5716
Thread 中讨论的其他部件:TPS659037SYSBIOS

你(们)好

我将 AM5716 Sitara 处理器与 TPS659037 PMIC 搭配使用。
PMIC 连接到 I2C1、我使用 PMIC 中的 ADC 读取连接到 PMIC 的 GPADC_IN0和 GPADC_IN1的两个模拟值。
ADC 配置为通道0和1的自动转换(默认周期为1/32秒)。
通过 I2C (从器件地址0x59)寄存器读取自动转换结果寄存器时

GPADC_AUTO_CONV0_LSB (寄存器0xC9)
GPADC_AUTO_CONV0_MSB (寄存器0xCA)
GPADC_AUTO_CONV1_LSB (寄存器0xCB)
GPADC_AUTO_CONV1_LSB (寄存器0xCC)

有时结果是错误的。
例如、Conv0通常为0x0d49 +一些位抖动
当该值错误时、它将转至0x1000或0x1049、0x104A
模拟输入值是稳定的。
当 ADC 值达到指定的阈值时、我不会中断、我只想定期读取
自动转换结果寄存器。

文档(TPS659037寄存器映射技术参考手册(slu015b))显示 MBS 的高4位被保留且为0。
为什么我在保留位 sometines 中得到"1"?
为什么我有时会得到错误的结果?
在文档中、我找不到任何对何时读取转换结果寄存器有一定限制的语句。

您可以找到正确和错误 ADC 值的 I2C 传输。

已用通道:
A (蓝色):I2C1_SCL
B (红色):I2Ca_SDA
C (绿色):调试输出、高电平、同时 SYSBIOS I2C 传输函数处于活动状态
D (黄色):忽略

我检查了 GPADC_IN0绝不会低于800mV。

此致、
Markus
e2e.ti.com/.../PMIC_5F00_ADC_5F00_I2C_5F00_Transfers.zip

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

    您好!

    您是否已检查 GPADC_STATUS 寄存器? 通常、当转换输出的保留部分有位时、它表示在转换仍在进行的过程中采样。

    谢谢、

    纳斯塔莎

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

    你(们)好

    我不确定这是否会有所帮助。
    我每隔1/32配置一次自动转换、我不知道转换何时在内部启动。
    因此、当我查询状态寄存器且位 GPADC_Available 为1时、在读取之前仍然会发生这种情况
    转换结果记录了新的转换已经开始。

    我想我将尝试使用阈值设置、将其设置为最高值、并在实际值低于阈值时触发中断。
    这样、我在转换完成时获得一个中断。 然后、我必须确保在下一个周期开始之前读取结果。
    这应避免在转换运行时读取结果寄存器。

    我稍后会告诉您结果。

    此致、
    Markus

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

    Markus、

    好的、很好。 如果您有其他问题、请告诉我。

    谢谢、

    纳斯塔莎