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.

[参考译文] AMC6821:错误的 TACH 读数

Guru**** 2563960 points
Other Parts Discussed in Thread: AMC6821

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/634223/amc6821-erroneous-tach-readings

器件型号:AMC6821

您好!

 

我的客户发现 AMC6821中的 TACH 读数错误。

 

该设置可描述如下:

  • SCL 速度= 100kHz (尽管我们已尝试将其降低至80kHz)
  • I2C 上拉值= 5K (我们还尝试1K 以提高信号完整性)
    • I2C 事务边沿看起来非常干净:

  • 根据 AMC6821数据表,我们将读取 TAC-data 寄存器0x08h (LSB),然后读取0x09h (MSB)

 

  • 我们使用4线风扇运行。

 

问题症状

  • 我们偶尔会看到错误的 TACH 读数。    例如、在风扇速度固定的情况下、以下是多组数据:
    • FFFFh-0FFFh-0F92h
    • 04CCh-03CCh-03D4h
    • 04D8h-03D8h-03CCh
  • 请注意、MSB 变化很大。

 

观察结果

  • 将测量速度从250ms 降低到1s 监控可减少这些看似随机的错误的发生。
  • 已附加 I2C 日志。   搜索“***”以查看我们在哪里发现了一些不正确的读取,以及芯片的设置方式。
  • 我们已经尝试了单字节读取和双字节读取。   这两种情况都表现出相同的现象。   

e2e.ti.com/.../TRACE.LOG

问题

  1. 我们正在寻找这些错误值的根本原因,这些值在看似随机的时间间隔内出现。    我们是否需要遵循有关 I2C 时序的特定要求?

我们非常感谢您的任何帮助。

Don

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

    我将对此进行研究。 请允许我几天。

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

    Don、

    这是新设计吗?  您以前是否使用过 AMC6821?

    您的 TAC-EN 和 TACH 模式配置是什么?

    对于4线风扇、确保使用 TAC-EN = 1、TAC-MODE = 1。

    开尔文

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

    您好、开尔文、

    这是新设计。  是的、AMC6821现在可以工作。   除了偶尔出现的错误读取之外。

    之前附加的日志文件中未包括 TAC-EN 设置?

    Don

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

    大家好、

    有更新吗?

    Don

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

    Don、

    请在数据日志中定义符号:
    Rd、S、A、D 和***
    我无法在日志文件中找到 TACH 配置。

    还请添加 TACH 信号的范围截屏。

    您使用哪种控制模式? 软件 RPM 控制模式还是其他?

    请提供 FDRC1、FDRC0配置。
     
    开尔文

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

    您好、开尔文、

    数据日志中的信号如下所示:

    RD = I2C 读取
    WR = I2C 写入

    S = 8位- I2C 地址= 0x34h = 00110100
    A = I2C 寄存器指针
    D = I2C 数据

    解码日志中的前四个 I2C 事务将得到:


    WR @ 100kHz S:34 A:01 D:80 //通过配置寄存器#2复位器件
    -->在这里等待(至少恢复 I2C 访问、直到复位完成)
    WR @ 100kHz S:34 A:01 D:3F //写入配置寄存器#2
    WR @ 100kHz S:34 A:00 D:9D //写入配置寄存器#1
    WR @ 100kHz S:34 A:22 D:00 //写入 DCY (占空比)寄存器
    -->在这里等待2秒钟...
    WR @ 100kHz S:34 A:22 D:A0 //写入 DCY (占空比)寄存器
    -->开始一个4000的循环...
    RD @ 100kHz S:34 A:08 D:FFFF // 2字节 I2C 读取 TACH 内容 LSB 优先

    FDRC0/1和控制模式可通过写入这些寄存器的值来确定。

    错误测量在附加的日志文件中被捕获两次。

    解码在位置#1处显示标记为***的错误事务的日志文件:


    RD @ 100kHz S:34 A:08 D:11A4 //有效的 TACH 读取
    RD @ 100kHz S:34 A:08 D:11A4 //有效的 TACH 读取
    RD @ 100kHz S:34 A:08 D:11A4 //有效的 TACH 读取
    RD @ 100kHz S:34 A:08 D:04A4 ***// TACH 读取错误
    RD @ 100kHz S:34 A:08 D:041E //有效的 TACH 读取
    RD @ 100kHz S:34 A:08 D:041E //有效的 TACH 读取
    RD @ 100kHz S:34 A:08 D:041E //有效的 TACH 读取


    解码在位置#2处显示标记为***的错误事务的日志文件:

    RD @ 100kHz S:34 A:08 D:041E //有效 TACH 读取
    RD @ 100kHz S:34 A:08 D:041E //有效 TACH 读取
    RD @ 100kHz S:34 A:08 D:041E //有效 TACH 读取
    RD @ 100kHz S:34 A:08 D:031E ***//错误的 TACH 读取
    RD @ 100kHz S:34 A:08 D:03DA //有效 TACH 读取
    RD @ 100kHz S:34 A:08 D:03DA //有效 TACH 读取
    RD @ 100kHz S:34 A:08 D:03DA //有效 TACH 读取

    这里有几件事:

    在这种情况下、Tach 读取以速度进行、连续进行、并且在两次读取之间的时间很短的情况下以背靠背方式进行。
    2. AMC6821看起来处于连续 TACH 更新模式。
    AMC6821需要2个 TACH 脉冲才能根据数据表图17读取数据。

    如果在更新 TACH 时发生 I2C 读取、会发生什么情况? 就像这样:



    Don

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

    根据您的 FDRC1 FDRC0设置、您处于软件 DCY 控制模式。
    所有毛刺都在转换时发生(风扇转速变化)。 但是、您的日志不会显示您对 DCY 寄存器的写入、因此为什么您的 TAC-DATA-L 会随时间的推移而变化(例如、D:041E 至 D:03DA)?

    我建议在新的 DCY WR 命令和 TACH RD 命令之间添加延迟、以避免干扰。

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

    您好、开尔文、

    根据上一个帖子、


    WR @ 100kHz S:34 A:22 D:00 //写入 DCY (占空比)寄存器(将风扇速度 PWM 设置为0%)
    -->在这里等待2秒钟...
    WR @ 100kHz S:34 A:22 D:A0 //写入 DCY (占空比)寄存器(将风扇速度 PWM 设置为63%)
    -->开始一个4000的循环...
    RD @ 100kHz S:34 A:08 D:FFFF // 2字节 I2C 读取 TACH 内容 LSB 优先

    因此、当我们读取 TACH 寄存器时、风扇正在旋转。

    您是否建议我们在读取 TACH 寄存器之前等待风扇达到稳定状态? 如果是、我们将如何知道何时发生这种情况?

    Don

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

    e2e.ti.com/.../amc6821-tach.xlsx

    Don、

    感谢您的澄清。  我现在明白了。  风扇正在加速、在这段时间内、它看起来有四个离散的速度窗口。  从 TACH 读取周期开始、PWM 波形是什么样的?  我假设它已经达到63%的 DCY、而物理风扇速度却落后了。  TACH 读数出现故障可能是由于风扇从一种转速变为另一种转速而导致的、应视为噪音:

    您是否对提升 TACH 读数或稳态感兴趣? 我知道您的 I2C 时钟为100kHz、但您的 TACH 读数的实际采样率是多少? 频率为1Hz 是否与您之前提到的一样?  在更高的采样率下、您将检测到所看到的高频事件。

    BTW、您是否尝试设置配置寄存器4中的 TACH-FAST 位?  当 TACH-FAST = 1时、TACH 数据读取每250ms 更新一次、而不是每秒更新一次。  这可能会有所帮助。

    风扇稳定至63% DCY 后、您是否会看到 TACH 读数出现故障?  我现在要得到的是、该噪声恰好在过渡期间发生。

    开尔文

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

    您的距离越来越近。 以下几点:

    -我们处于软件 DCY 控制模式。 因此、我们将向 DCY 寄存器写入一个特定的值。 输出 PWM (驱动风扇)不应瞬间从0%-> 63%? 更重要的是、它应该无限期地保持该值(禁止对 DCY 寄存器进行更改)。

    我们看到这些在250ms 采样率和1s 采样率下的错误测量。 但是、在1s 采样率下、较少的情况发生。

    -我没有针对 TACH/PWM 输出的示波器截图、但我会为您提供这些示波器。 我们是否应该寻找特定的东西?

    我认为,一旦风扇稳定到稳定状态,错误的测量就会消失。 我将再次检查以确认。

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

    您好、开尔文、

    供参考、我们已使用 AMC6821 EVM 确认了相同的行为。   您是否设法从设计人员那里获取了更多信息?

    Don

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将在电子邮件中向您发送副本。 我们还没有听到设计人员的反馈。

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

    Don、

    我们的设计人员怀疑偶尔出现的干扰是由设计问题造成的。  此问题与并行转速计值总线的时钟域交叉有关。 该总线用于内部振荡器时钟和 I2C SCL 之间的同步。 请求低字节时可能会发生此问题。

    您可以考虑以下权变措施:

    1. 如果可以接受、第一种可能的权变措施是执行双 I2C 读数并检查转速计值是否稳定。
    2. 第二种权变措施、如果可以接受、是在新的 PWM 值稳定后只读。  

    开尔文