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.

[参考译文] TCA9535:无法读取1&#39之外的任何内容?

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/592658/tca9535-unable-to-read-anything-but-1-s

器件型号:TCA9535

我正在使用连接到80C51 (Atmel AT89C51AC3) uC 的 TCA9535 IO 扩展器部件。

所有端口0以及端口1的引脚3和4均为输入(一个旋转开关、4个 DIP 开关和2个按钮)。

我认为我已将端口1的引脚0、1和2配置为输出、因为我能够根据需要驱动这些线路。

端口1的引脚5、6和7未使用、已被拉至接地。

我可以看到、当我修改开关/按钮时、器件上的引脚上的输入正在变化。 但是、当我尝试读取任何内容时、我将获得全为1。

我还会得到所有1的读取 极性反转寄存器(我尚未修改、因此默认情况下预期它们为0)和端口1的配置寄存器(我已修改为0xf8甚至0x18)。

尽管我对 UC 上的 I2C 实施非常有信心、但我肯定会出错。 使用逻辑分析仪观察 SCL/SDA 线路、一切看起来都很好/很有道理。

我们以5V 的电压运行所有器件、并具有4.7K 欧姆的电阻器上拉 SCL 和 SDA。 考虑到 TCA9535器件无法将数据线拉至低电平、我们在数据线上放置了一个47k 欧姆的电阻器、但没有发现任何差异。 如果这是问题、则该部件可能无法在需要时将时钟保持在低电平以拉伸、但我们尚未进行此更改。

如果对我可能做得不正确或做得更进一步的实验有任何想法、我们将不胜感激。

谢谢!
Tim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Tim、您好!
    我能否获得原理图来查看它并确保没有任何遗漏、它可以确认我了解您在文本中所说的内容。 您是否还有一个 I2C 树来确保我们没有地址冲突。 您也可以发送信号波形、但我们应从原理图开始。
    -弗朗西斯·胡德
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    弗朗西斯-

    感谢您的回答。 除了 uC 之外、TCA9535是 I2C 总线上唯一的器件。 因此、我非常确信没有地址冲突...

        

    我没有使用中断线路。 正如我在初始帖子中所指出的、引脚18、19和20 (端口1引脚5、6和7)已接地(从技术角度而言是连接到 A0)。 我目前正在等待返工、其中这些引脚将通过10k Ω 电阻器接地、并在数据表中提供建议。 这也许会有所不同?

    我确实意识到 TCA9535能够将数据线拉低、因为它正在执行命令 ACK、 因此、我假设它可以将时钟线拉低、如果它需要拉伸时钟、然后再为我的读取请求在数据线上写入值。

    如果您确实想查看信号、哪种格式最适合? 我正在使用 Saleae 的 Logic 软件。 我可以截屏、也可以导出为支持的格式之一。

    再次感谢!
    Tim

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

    弗朗西斯-

    再次感谢您愿意帮助解决我的问题。 借助其他一些帮助、我最终能够识别我在逻辑中所做的错误。 如果我布置了我收集的信号迹线、即使我只能/不会看到它、也可能对每个人都很明显。

    Tim