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.

[参考译文] Linux/processor-SDK-AM57X:I2C 配置

Guru**** 2609895 points
Other Parts Discussed in Thread: TMDSEVM572X, AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/582861/linux-processor-sdk-am57x-i2c-configuration

器件型号:PROCESSOR-SDK-AM57X
主题中讨论的其他器件:TMDSEVM572XAM5728

工具/软件:Linux

大家好、

我将 AM572x 评估模块 与 TMDSEVM572x 摄像头模块搭配使用。 我加载了 Linux 处理器 SDK。

您能告诉我如何在驱动程序中找到 I2C5_SCL 和 I2C5_SDA 的地址吗? 如何配置它? 在该套件中、"P18_3"和"P18_4"引脚用于 I2C5通信、我想为 I2C 配置不同的扩展接头引脚。

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    根据我的理解、您需要更改 P18接头的引脚多路复用设置。

    要更改扩展头引脚、您需要设置正确的引脚多路复用寄存器。 我将给出 P18_4 (I2C5_SCL)的示例。
    P18_4连接到器件焊盘 F12、如果您在 AM5728数据手册中搜索 F12、您将看到与 F12焊球关联的信号名称是 McASP1_axr1。 现在、如果您查看第18章"控制模块"并搜索 McASP1_axr1、则会看到与其关联的 pinmux 寄存器是 CTRL_core_pad_McASP1_AXR1、其物理地址为0x4A0036B8 (有关可用的配置、请参阅 CTRL_core_pad_McASP1_AXR1[3:0] McALR1_MUXMODE)。

    您可以通过类似的方式找到与任何扩展头引脚关联的引脚多路复用寄存器。

    希望这对您有所帮助。

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

    Yordan、您好!

    感谢您的回复。 我明白了。 我还介绍了 PinMux 工具。

    因此、如果我想使用 P16_10作为 I2C5_SCL、它连接到器件焊盘 P6。 如果我使用它的信号名称"GPMC_A4"。

    然后、我检查了地址 为0x4A00 3450的 CTRL_CORE_PAD_GPMC_A4。

    那么、我需要在程序中的哪个位置更改该地址? 是否需要执行其他步骤?

    谢谢。

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

    您需要修改设备树文件。
    例如、请参阅为 arch/arm/boot/dts/am5xx-evm.dts 执行的操作、查看&dra7_PMX_CORE 节点。

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

    Yordan、您好!

    我需要知道、am57xx-evm.dts 文件仅用于必要的更改吗?

    此外、我看不到 P18扩展接头使用的之前的 I2C5引脚定义。

    请详细说明。

    谢谢。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    如果对此进行任何更新、我们将不胜感激。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您需要添加:
    i2c5_pins_default:i2c5_pins_default{
    pinctrl-single、pins =<
    0x2b4 (PIN_INPUT| MUX_MODE10)/* McASP1_axr0.i2c5_sda *
    0x2b8 (PIN_INPUT| MUX_MODE10)/* McASP1_axr1.i2c5_SCL *
    >;
    };

    i2c5{(&I)
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&i2c5_PINS_DEFAULT>;
    时钟频率=<400000>;
    };

    您还应确保在 defconfig 文件中启用 I2C 驱动程序。 默认情况下应为。

    然后、您应该在/dev/.中具有 i2c

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

    Yordan、您好!

    您描述的引脚地址是 P18接头的引脚地址。 正如我之前所说的、我将 GPMC_A4和 GPMC_A5用作 I2C5_SCL 和 I2C5_SDA。

    因此在"am57xx-evm.dts "中添加了以下行

    i2c5_pins_default:i2c5_pins_default{
    pinctrl-single、pins =<
      0x50 (PIN_INPUT_PULLUP | MUX_MODE7)/* GPMC_A4.i2c5_sda*/
      0x54 (PIN_INPUT_PULLUP | MUX_MODE7)/* GPMC_A5.i2c5_SCL *

    >;

    "am57xx-EVM-common.dts "中的以下行

    i2c5{(&I)
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&i2c5_PINS_DEFAULT>;
    时钟频率=<400000>;

    };

    但它仍然不起作用。

    它也显示了这一点  


    引脚20 (4a003450.0):(MUX 未声明)(GPIO 未声明)
    引脚21 (4a003454.0):(MUX 未声明)(GPIO 未声明)

     


    我有什么问题吗?

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

    您还需要查看 u-boot 源代码 mux_data.h GPMC_A4和 GPMC_A5引脚用于 VIN3a..
    我在这里进行了说明:
    e2e.ti.com/.../2145500
    这两个线程看起来是相关的。

    此致、
    Yordan