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.

[参考译文] AM3352:在 SPL 和 U-boot 中使用 I2C

Guru**** 2966660 points

Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/677021/am3352-i2c-usage-in-spl-and-u-boot

器件型号:AM3352

您好!

我正在使用 am3352处理器、并在 i2c2上连接了一个 carypto 身份验证芯片。 与此芯片通信的目的是在引导时对软件进行身份验证、并在 SPL 级别进行通信、即在将引导过程命令移交给 u-boot 之前对 u-boot 进行身份验证。

我克隆了 ti 2018的 u-boot、并了解到 common/spl/参与创建 MLO、board/ti/am335x 在编译 u-boot 时参与生成 u-boot.img。 是这样吗? 如何在 SPL 和 u-boot 级别启用和使用 I2C2?

此致、

Rohit

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

    您好、Rohit、

    请参阅以下链接的 E2E 主题、该主题描述了 Sitara AM335x 的 I2C2 u-boot 配置:
    e2e.ti.com/.../508057

    BR
    Tsvetolin Shulev

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

    尊敬的 Tsvetolin:

    感谢您的快速回复。

    我按照建议的线程中提到的步骤在 u-boot 中启用 I2C2、并发现 I2C2仍然不起作用。 我在 I2C 初始化后使用执行读写来验证它、在这里我能够对 I2C0执行读写操作、但不能对 I2C2执行读写操作。 我从 board/ti/am335x/board.c 文件的 board_late_init ()函数执行了读取/写入操作。

    我还想使用 SPL 的 I2C2。 在 SPL 中、I2C0也可以工作、但我不知道如何配置 I2C2。 在这里、我在 common/spl/spl.c 文件的 board_init_r ()函数中执行 spl_board_init()调用后执行了读取/写入操作。

    请告诉我如何从 SPL 和 U-boot 启用 I2C2。

    此致、

    Rohit

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

    在 U-boot 控制台上、我能够看到总线0和总线1 (根据 am33xx.dtsi i2c2):
    SEM3_IOT# i2c 总线
    总线0:I2C@44e0b000 (有效0)
    总线1:I2C@4802a000

    能够探测总线0上的所有从器件:
    SEM3_IOT# i2c dev 0
    将总线设置为0
    SEM3_IOT# i2c 探针
    有效芯片地址:22 34 7C

    通过在读取/写入调用之前使用 i2c_set_fbus_num (1)函数、我能够查询 I2C1总线上的读取/写入操作、但无法读取/写入数据。 以下是错误消息:

    I2C_Read (addr 阶段):总线上的焊盘可能未配置(STATUS=0x10)
    I2C_WRITE:总线上的 PADS 可能未配置(STATUS=0x10)

    以下是图片多路复用器:
    静态结构 MODULE_PIN_mux i2c2_PIN_mux[]={
    {offset (spi0_SCLK)、(mode (2)| RXACTIVE |
    PULLUUDEN | SLEWCTRL)}、/* I2C_DATA */
    {offset (spi0_d0)、(mode (2)| RXACTIVE |
    PULLUUDEN | SLEWCTRL)}、/* I2C_SCLK */
    {-1}、
    };

    此致、
    Rohit