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.

[参考译文] TSC2007:I2C 接口发送 NACK 以获取基本设置命令

Guru**** 2535750 points
Other Parts Discussed in Thread: TSC2007

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1206914/tsc2007-i2c-interface-sending-nack-for-basic-setup-command

器件型号:TSC2007

我正在尝试将代码从 ROHM BU21025GUL 移植到 TSC2007。  

该代码适用于 BU21025GUL (获取 ACK)、 但出于某种原因(即使 TSC2007看起来使用相同的代码)、I2C 命令也会收到 NACK -特别是在我发送安装命令时、根据数据表、TSC2007应该在我发送0xB0后发送一个 ACK、但它会发送一个 NACK?

我是否会误解 TSC2007的规格? (如前所述、此相同命令从 ROHM 部分获取 ACK)。  

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

    I2C 总线的速度 您是否还能共享原理图?

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

    I2C 速度为100kHz。  

    I2C 线路 SDA 和 SDL 通过2k Ω 电阻器上拉至2.8V。  

    附加的是原理图中触控控制器的部分。  

    如前所述、BU21025GUL 使用 ACK 进行响应、因此我倾向于相信原理图是可以的、除非有特定于 TSC2007的东西、尽管我认为这两个芯片应该可以互换...

    (我想我看到了一些地方-也许 Arduino 论坛-用户在他们写了 TSC2007后添加了一个"假"读取字节,但这听起来有点奇怪,不?)

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

    我在原理图中未在 SDA 和 SCL 线路上看到上拉电阻器。 我建议证实这一点的存在。

    此外、请 为地址字节获取 SDA 和 SCL 的示波器快照、以确认信号是否正确。

    如果器件没有获得正确的电源关断和启动顺序、则有时器件不会对 I2C 做出响应。 请确认 VDD 引脚的行为。 尝试从 VDD 引脚下拉10k Ω 电阻器到 GND 并为芯片上电、查看是否能对 I2C 做出响应

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

    感谢 Sanjay 的帮助、  

    是的、SDA/SCL 线通过2k Ω 电阻上拉、它们只是原理图的另一个部分、因为我们在该电路板上有许多不相关的东西。  

    至于 VDD 斜升/斜降-以下是我们的斜升/斜降:

    不确定我是否遵循了要求-这是否意味着我们需要减慢 VDD 开启速度以便 TSC2007的 I2C 正常工作?

    获取 I2C 设置命令的范围快照。  

    您能否再次确认、我在上面的原始帖子中发送的命令应该会获得一个 ACK (如所示、我不 应该进行任何虚拟读取或类似操作、对吧?)

    再次感谢

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

    这里是 SCA/SDL 线路的一些示波器截图、忽略了怪异的电压电平、至少给出了一些有关时序的想法。 是否希望它在某个部分更加放大?
    这是来自原始帖子的相同 setup 命令的屏幕截图

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

    我看到 SCK 信号的初始状态为低电平。 我认为这可能是一个问题

    通常、SCL 和 SDA 都应为高电平。 然后、在 SCK 为高电平时、SDA 线上发生从高到低的转换。 这是一个开始。 在这之后 SCK 生成脉冲,

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

    这有点难看、但这就是它的作用:

    MCU 启用 i2c、其中 将 SDA/SCL 设置为高电平(在红色箭头后面)、然后 SCL 开始计时并启动数据。  

    在 SCL 为高电平时、您可以在 SDA 上的高电平到低电平转换之前看到 SDA 和 SCL 均为高电平、然后通过线缆发送0x90 (TSC2007地址)。  

    因此您可以看到1、0、1 _ 0、0、0、0  

    然后 TSC2007以此处的 ACK 进行响应(SDA 在第9个时钟周期为低电平)。

    这将与初始 POST 保持一致:地址0x90通过线路发送、而 TSC2007 ACK 包含该地址。

    它只对之后发送的0xB0进行 NACK。。

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

    为了清楚起见:

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

    我会再次回复、提供更完整的捕获-上面没有显示 NACK……

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

    好的

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

    以下是完整范围:

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

    MCU 未应用 I2C 时 SCL 和 SDA 的状态是什么?  

    根据 I2C 协议、该值应该很高。 看起来时钟为 低电平。

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

    复位后以及与电路板上的每个其他 I2C 器件(LED 控制器等)通信后、这两个信号都为高电平。  

    它在来自 TSC2007的 NACK 后卡在低电平、但如果我通过 i2c 与另一个器件通信、则在这些通信成功后恢复到高电平、如 DLA 的以下屏幕截图所示:

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

    我懂了。 我将在今天的几个小时内回复富图尔。

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

    看起来该器件为0x90返回一个确认、但不为命令字节返回一个确认。

    您能否将命令字节更改为0x00或0x81并查看是否得到确认?

    一个问题:TSC2007的功率是否与电路板的其余部分同时应用?  

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

    如果我将命令字节从0x80更改为0x00、我会得到一个 ACK、因此似乎只有设置命令失败。  

    附加了 一个 捕获、显示:

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

    因此、这看起来是更常见的内容、而不是重新领域到 I2C 协议。 我将检查安装命令、看看我是否找到了什么。

    同时,不要给出 setup 命令,但其他一些命令,如0xC6 (测量 X 位置)。 您可以尝试通过 在触摸屏上水平移动手指来读取 X 位置。

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

    尊敬的 Sanjay:  

    右侧-读取位置和其他一切工作正常、只是不是设置命令...

    我正在寻找一个可以发送到 TSC2007的命令、该命令基本上是一个 NOP (不强制执行操作)、但让我知道 I2C 在理想情况下启动时是有效的...

    是否不将 setup 命令用作标准启动顺序?  

    或者、如果您这样做-实际的位序列是什么/您是否在那里的正常工作的板上具有用于启动/设置的 I2C 流量的 DLA 快照?

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

    Andrew、您好!

    今天我将作简短的答复

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

    该表指示用于确认 setup 命令的 N 解串器列。

    也许您可以尝试 address (Ack tsc2007)+ 10110000+(No Ack TSC2007)+ Stop  

    很遗憾、我们目前没有 TSC2007的 EVM

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

    我看到-谢谢这一点-我没有意识到那里是一个非保留的命令。  

    我会尝试相应地调整。

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

    好的。