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.

[参考译文] CDCE949:I2C 通信问题

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1370603/cdce949-i2c-communication-problem

器件型号:CDCE949

工具与软件:

大家好。

使用 CDCE949PW 时。 从 i2c 通信写入和读取寄存器值时遇到问题。

我 为 SCL 使用了多个频率(400kHz、100kHz、小于100kHz)
每当我尝试读取任何寄存器时、它都会始终返回0x07值。

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

    Jinhyun、

    如果您使用1K 上拉电阻而不是4.7K 上拉电阻、您仍然会看到这个问题吗?
    器件跟踪是否具有正确的 I2C 地址0x6C?
    谢谢。

    卡德姆

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

    正如您在波形中看到的、器件跟踪0x6c 地址。
    即使比特率较慢(低于100kHz)、器件也始终按读取序列返回0x07值。
    因此、我认为将其更改为1k 欧姆没有意义。

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

    Junhyun,

    该器件是否曾 在 TI 外部进行过编程?

    如果您写入寄存器然后读回该值、是否仍然只能看到0x07?

    谢谢。

    卡德姆

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

    Kadeem,

    我们未要求对 TI 进行任何修改。

    写入寄存器不会更改结果。

    我认为写作也不起作用。  

    我尝试将 Y1输出状态从三态更改为输出。 但没有发生任何情况...

    另一方面、当我移动电阻器使 s0上拉时、输入时钟会旁路到每个 Y 端口。

    顺便说一下、我对芯片执行的读取寄存器操作如下所示。

    1.打开设备电源

    2.检查电源是否在芯片的范围内。

    3.尝试通过 i2c 通信读取任何寄存器。

    这个序列有什么问题吗?

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

    Jinhyun、

    根据数据表、将 S0引脚拉至高电平将启用输出、而 S0低电平将禁用输出:

    您能否确认您遵循以下顺序:

    对于单字节读取和写入、CommandCode 应为 MSB 的"1"、后跟指示字节偏移的6位。  

    块读取是否产生重复的0x07结果? 或者、第一个0x07之后的回读值是否不同?

    该问题是否也发生在其他 CDCE949器件上、还是仅在一个器件上? 您所述的顺序没有问题。
    谢谢。
    卡德姆

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

    很好的地方! 我忘记这一点了。 我对命令代码 MSB 使用了"0"。 寄存器之所以行为怪异的原因。
    现在它可以工作了!  
    谢谢你 Kadeem!