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.

[参考译文] TM4C1231H6PM:如何实现 I2C 开关

Guru**** 2468610 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/671505/tm4c1231h6pm-how-to-implement-the-i2c-switch

器件型号:TM4C1231H6PM

您好,

请共享代码参考以实现 I2C 开关逻辑以支持。

主 I2C --- TM4C I2C 0 ------------------------------------------------------- I2C1从器件1

                              |--- I2C 2从器件2

                              |--- I2C 3从器件3

参考代码./参考文档  

此致

Raghavendra  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    虽然 TivaWare 库中有一些 I2C 主设备和从设备示例、但我没有 I2C 开关示例。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Raghavendra B C">实现 I2C 开关逻辑以支持...的代码参考 (最多3个 I2C 从设备)[/报价]

    I2C 是否用作 "通用总线、多器件、系统互连?"    

    如果同意-那么您的"容纳/连接多个 I2C 从器件"-需要:

    • SDA 并行路由-从 MCU (主器件)到每个从器件  
    • SCL 的处理方式类似
    • 独立的"芯片选择"-由单独的 MCU GPIO 生成-唯一路由至每个从器件的芯片选择。   
    • 由于 SPI 下的(正常)"FSS 引脚未被使用-您必须创建简单的 GPIO 代码以确保 通过管理3个 GPIO 输出来寻址"一个且只有一个"SPI 从器件-用作从器件 I2C 芯片选择

    虽然 MCU 手册中的"说明"针对内部上拉电阻器-商号/I 始终发现外部电阻器(4K7 - 10K 范围内的电阻器)的可靠性和有效性要高得多。   应用于 SDA 和 SCL。

    它应该会证明"快速/轻松搜索"、以便您找到一个展示具有单从器件的 I2C 事务的代码示例。   若要将此类内容扩展到"多个从站"-您将删除 FSS 连接-并将软件添加到唯一地址、每次一个 I2C 从站。   (通过使用多个 GPIO 引脚-连接到每个从器件的 CS 引脚。)   (在这里更难描述-而不是编写代码-并且(部分)需要用户努力!)

    虽然(可能)存在多个"I2C 通道扩展器"(也可容纳多个从器件)、但您已经为它们的使用做出了"无任何情况"–而且您只是将设计复杂性从此处所述的"易用性"转移到了 I2C 通道扩展器强加的"特殊要求"、而这些要求仍然未知。   由于没有明显的优势——人们质疑这种选择的价值——“如果这是(甚至)你的愿望。”

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您这么做的目的是什么? 对于常规 i2c 无法做到的情况、您希望它能为您做些什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    主 MPU 通过 I2C0接口连接到 MCU,从 MCU (TIVA)连接了3个从器件,以从 I2C 接口执行读/写命令。

    从 MCU 到从器件的控制功能很少连接 GPIO 引脚。

    此致
    Raghavendra
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这些从器件具有相同的地址?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    要求连接到2个地址相似的从设备。

    I2C2 ----从器件1

    I2C3 ----从器件2.

    此致

    Raghavendra B C

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

    您使帮助您变得非常困难。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从一开始就明显缺乏清晰度和准确性...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    我们正在连接2个从器件,该从器件地址相同。

    MCU  I2C2 --- 从器件1 (地址= 0x0A)

    MCU I2C3 --- 从器件2 (地址= 0x0A)

    此致

    Raghavendra BC

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的阅读-这是您首次(正确)详细说明要求。

    存在外部 I2C 器件(我不确定它们是否被归类为"开关")、这些器件的性能完全符合您的要求。 (即、这些器件能够接受来自主器件的 I2C 总线信号-并执行可编程的"I2C 从器件地址的修改"-以便"I2C 从器件可能具有两个完全寻址"、"唯一访问!")

    在过去几周内(可能在阅读您的帖子后)、我遇到了这样一个 I2C/总线修改器-我必须搜索我的笔记以确定制造商和器件型号。

    在开发"I2C 总线地址修饰符"之前、我们使用了简单数据多路复用器-该多路复用器支持将 I2C 总线信号路由到"N 个"I2C 从器件中的一个。 这通常需要添加另一个信号连接-不是 I2C 总线的一部分。 该信号的存在表明、"少数族裔使用 I2C 器件-试图由 MCU 变为活动状态或(已订购)处于活动状态。

    许多 I2C 器件提供2-3个地址引脚-这样" 4个或8个器件"-可以和平共存...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现已上市、相关的"I2C 地址转换器"、专门介绍了如何选择(和使用) 相同寻址的 I2C 器件。    

    应该注意的是、当提供"一个且只有一个"I2C 地址时、通常会提供多个此类器件。   (每个地址都具有不同的 I2C 地址-通常由器件型号中带的特殊后缀指定。    这"逃避"了您提出的问题。。。)

    另一点-如果是这些"器件型号"-每个具有不同 I2C 地址-"未提供"-可以得出结论、I2C 供应商"未预料到"  多个"此类器件的"集成"!    然后、您的使用情况-似乎是"超出"其"预测能力"。    (这可能表明"您的使用"是"灵感"或(赦免)不明智/错误的...)

    遵循(背景)前言-以下是我公司关于 "有源/可用、I2C 地址转换器"(能够解决"相同的 I2C 地址"冲突)的结论: (与您目前的情况完全相同)

    • LTC4316、LTC4317、LTC4318
    • MAX7356

    您必须确保这些器件适合您的使用。   (即、使用3V3 I/O MCU)

    我们对 "您的 I2C 器件"的标识感到好奇、该器件必须用于多个器件制造商"错过了"此类(多个)使用情况。。