器件型号:TDA2EG
你(们)好
我尝试测试 I2C 示例"pdk_01_08_00_16\packages/ti\drv\bsp_lld\i2c\examples\i2c_utility"。
默认的 I2C 实例是 I2C1、我希望使用 I2C5、因为我的 SOC 是 TDA2Ex。
我没有 CCS 连接器、因此我直接按如下方式更改了 src 代码:
从"pdk_01_08_00_16\packages/ti\drv\v\vps\src\boards\src\bsp_boardTda2xx.c"中 的 gBoardTda2xxI2cInstData 定义:
#IF 定义(SOC_TDA2PX)
#ifndef BSP_disable_I2C4
{
bsp_device_I2C_INST_ID_4、// instId *
SoC_I2C5_base、/* baseAddr */
CSL_INTC_EventID_I2CINT5、// intNum *
400U /* busClkKHz */
}
#endif
#endif
我刚才删除 了 SOC_TDA2PX 条件判断、以按照如下方式打开 I2C5:
#IF 定义(SOC_TDA2PX)
#ifndef BSP_disable_I2C4
{
bsp_device_I2C_INST_ID_4、// instId *
SoC_I2C5_base、/* baseAddr */
CSL_INTC_EventID_I2CINT5、// intNum *
400U /* busClkKHz */
}
#endif
#endif
但我的应用程序卡在 "pdk_01_08_00_16\packages/ti\drv\vps\src\device\src\bsp_deviceI2c.c"的 bsp_deviceI2c.Init 函数中:
当"i2cInstId"为"bsp_device_I2C_INST_ID_4"时、应用程序将卡在 GIO_construct:
ioParams.packets =&(gBspDevObj.i2cIomPacket[i2cInstId][0]);
bspUtils_memset (ioParams.packets、0、(ioParams.numPacets * sizeof (IOM_Packet)));
gio_construction(&gBspDevObj.i2cGioStruct[i2cInstId]、i2cDevName、
(UINT) GIO_INPUT、&ioParams、&EB);
(应用程序无法再向前推进)
gBspDevObj.i2cHnle[i2cInstId]= GIO_Handle (
&gBspDevObj.i2cGioStruct[i2cInstId]);
当 i2cInstId 为 bsp_device_I2C_INST_ID_0~3时、GIO_con构 是正常的。
那么、我想问如何正确初始化 I2C5 (BSP_DEVICE_I2C_INST_ID_4)实例?
谢谢
Xuanbo
