Part Number:TMS570LC4357Other Parts Discussed in Thread:HALCOGEN
你好,
我现在使用了LAUNCHXL2 570LC43开发板,我尝试使用板子上引出的I2C1的两个引脚与其他板子上的I2C设备通信。
我使用了下图中的J2的1号(GND) 8号和9号 分别连接到其他板子上的GND和I2C管脚。
我的HALCoGen配置如下
我在main函数中先调用了i2cInit()函数,然后我尝试与我的设备通信,但是程序一直开在i2cIsMasterReady或者i2cSendByte函数无法往下继续。
我用示波器抓取了两个管脚没有看到任何波形。
请问能否像我这样直接连接呢?
Cherry Zhou:
您好我们已收到您的问题并升级到英文论坛寻求帮助,应该会在下个工作日给到您答复,谢谢!
,
Cherry Zhou:
您好,
1) 请问I2C SCL 和 SDA 有没有通过电阻器上拉? TMS570 开发板在 I2C 线路上没有外部上拉电阻器。 I2C SCL 和 SDA 线路均为开漏,因此 I2C 模块可以驱动 SCL 和 SDA 低电平,但不能置高。为了使这两条线路能够高电平,您必须提供外部上拉电阻器。
2)在 TMS570LC43x 器件上,I2C 信号与 MibSPI 信号复用,默认情况下引脚用于 MibSPI。 请问您是否配置了 Pinmux ?
,
?? ?:
请您看下我的回复,谢谢
,
?? ?:
您好,
1) 我要通信的从机设备的板子上是有上拉的,我可以使用另外的开发板直接和那个设备通信,这个验证过了。
2)我之前没有配置pinmux。关于pinmux我有个疑问,我在Driver Enable里没有使能MibSPI模块,只使能了I2C1,这样仍然需要配置pinmux吗?
另外,我按照您的说明配置了pinmux,同时在我的程序里调用了muxInit();
但是 仍然无法通信,i2cIsMasterReady仍然无法返回。
,
Cherry Zhou:
看到了哈,因为是升级到英文论坛等国外工程师的答复,正常情况下都会在24小时内给您答复的。
?? ? 说:我在Driver Enable里没有使能MibSPI模块,只使能了I2C1,这样仍然需要配置pinmux吗?
无论模块是否使能,都应配置 Pinmux。
?? ? 说:但是 仍然无法通信,i2cIsMasterReady仍然无法返回
调用 i2cSendByte() 后,在 SCL 线路上能看到时钟信号吗?以及在 SDA 线路上有没有数据波形?
,
?? ?:
好的,我看到给的例程里也没提到需要配置PINMUX,还有我在HALCoGen中配置了PINMUX,是不是需要在程序初始化的时候调用muxInit()?
我没有看到时钟波形。
,
Cherry Zhou:
好的感谢您提供的信息,已经跟进给工程师了哈。
,
Cherry Zhou:
您好,
?? ? 说:是不是需要在程序初始化的时候调用muxInit()?
muxInit()在 HAL 代码的 systemInit()中调用,您不需要再次调用此函数。
连接 I2C 从机后,SCL 和 SDA 是否为高电平? 不是的话,在I2C 从板上的上拉电阻器将无法工作。
如果 SCL 和 SDA 被正确上拉,这两条线路应该为高电平。当你调用 i2CStart() API 时,I2C 模块将发出一个启动条件并发送从机地址。
,
?? ?:
谢谢,我确认了是上拉的问题