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.

[参考译文] PROCESSOR-SDK-J721E:使用主域的 I2C0进行传输时 MCU1_0 I2C 超时

Guru**** 2468610 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1468468/processor-sdk-j721e-mcu1_0-i2c-timeout-on-transfer-using-i2c0-of-main-domain

器件型号:PROCESSOR-SDK-J721E

工具与软件:

尊敬的 TI 团队:  

我正在使用  ti-processor-sdk-rtos-j721e-evm-09_02_00_05的 pdk_jacinto_09_02_00_30、并 尝试使用 MCU1_0、使用 MAIN 域的 I2C0从 IO 扩展器读取数据。

我以  EEPROM_READ 测试作为参考来配置 I2C 通道、但当尝试从器件读取数据时、我收到超时错误。

I2C_HwAttrs i2cCfg; 
I2C_Params i2cParams;
I2C_Handle 句柄;
I2C_Transaction i2cTransaction;
int16_t 状态;

I2C_INIT();

I2C_socGetInitCfg (0u、&i2cCfg);
i2cCfg.baseAddr = CSL_I2C0_CFG_BASE;
i2cCfg.enableIntr = 0U;
I2C_socSetInitCfg (0u、&i2cCfg);

I2C_Params_init (&i2cParams);
i2cParams.transferMode = I2C_MODE_BLOCKING;
i2cParams.bitrate = I2C_100kHz;

句柄= I2C_open (0u、&i2cParams);
if (NULL ==句柄)

UART_printf ("I2C 打开失败!\n");
}
设计

UART_printf ("I2C 打开成功\n");
}

uint8_t reg = 0x02;
uint8_t data = 0u;
I2C_transactionInit (&i2cTransaction);
i2cTransaction .slaveAddress = 0x74;
i2cTransaction .writeBuf =Registered
i2cTransaction .writeCount = 1U;
i2cTransaction .readBuf =数据(&D);
i2cTransaction .ReadCount = sizeof (data);
i2cTransaction.timeout = 100u;
status = I2C_transfer (handle、&i2cTransaction);

if (I2C_STS_SUCCESS!= STATUS)

DEBUG_LOG ("读取数据传输失败。 状态:%d"、状态);
}

我缺少什么吗?

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

    您好!

    您是否能够成功运行 I2C EEPROM 读取示例?

    此问题是在 TI EVM 还是定制电路板上发生?

    谢谢!

    Neehar

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

    您好!  

    我没有运行  I2C EEPROM 读取示例、但我将其他 IO 扩展器连接到主域(CSL_MCU_I2C0_CFG_BASE)的 I2C0和唤醒域(CSL_WKUP_I2C0_CFG_BASE)的 I2C0。 在这些通道中、我能够使用此算法正确读取数据。

    该问题发生在使用 sdk7运行的自定义电路板上、并且我们正在迁移到 sdk9。

    谢谢!

    塞尔希奥

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

    您好、Sergio、

    [报价用户 id="616181" url="~/support/processors-group/processors/f/processors-forum/1468468/processor-sdk-j721e-mcu1_0-i2c-timeout-on-transfer-using-i2c0-of-main-domain/5636558 #5636558"]但我有其他 IO 扩展器连接到主域的 I2C0 (CSL_MCU_I2C0_CFG_BASE)

    能否使用 I2C_WAIT_FOREVER 作为超时值进行测试? 此外、您是以阻塞模式还是回调模式运行?

    谢谢!

    Neehar

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

    您好!  

    我解决了这个问题。 A72卡在 uboot 之后、Uboot 启动 Linux、主域 I2C0变为活动状态、可以正确读取数据。

    谢谢!

    塞尔希奥