求助:CC3200 将例程i2c_demo中I2C的引脚换成PIN3、PIN4或者PIN16、PIN17就没法通讯了
Ti 员工:
你们好,
我们将CC3200 DEMO板上例程i2c_demo的I2C原来的引脚(PIN1、PIN2)改成PIN3、PIN4或者PIN16、PIN17之后I2C就没法通讯了。
不管引脚如何修改,原来的PIN1、PIN2都有正确的信号,也就是说按照下面的代码来修改,根本就不起作用。
我们应该怎么样做才能把I2C的引脚改到指定的GPIO上来呢?另外可否将I2C的引脚改为 SCL--> PIN1 SDA --> PIN4 ?
我们修改的代码如下:
#if 0
#if 0
//
// Configure PIN_01 for I2C0 I2C_SCL
//
MAP_PinTypeI2C(PIN_01, PIN_MODE_1);
//
// Configure PIN_02 for I2C0 I2C_SDA
//
MAP_PinTypeI2C(PIN_02, PIN_MODE_1);
#else
//
// Configure PIN_03 for I2C0 I2C_SCL
//
MAP_PinTypeI2C(PIN_03, PIN_MODE_5);
//
// Configure PIN_04 for I2C0 I2C_SDA
//
MAP_PinTypeI2C(PIN_04, PIN_MODE_5);
#endif
#else
//
// Configure PIN_16 for I2C0 I2C_SCL
//
MAP_PinTypeI2C(PIN_16, PIN_MODE_9);
//
// Configure PIN_17 for I2C0 I2C_SDA
//
MAP_PinTypeI2C(PIN_17, PIN_MODE_9);
#endif
请各位高手指点一下,非常感谢。
I2C 信号连接如附件
Zhi Chen,
您好!
您有使用我们的Pinmux工具来完成引脚配置么?谢谢!
没有,我来试试看。
void PinMuxConfig(void)
{
//
// Enable Peripheral Clocks
//
PRCMPeripheralClkEnable(PRCM_I2CA0, PRCM_RUN_MODE_CLK);
//
// Configure PIN_16 for I2C0 I2C_SCL
//
PinTypeI2C(PIN_16, PIN_MODE_9);
//
// Configure PIN_17 for I2C0 I2C_SDA
//
PinTypeI2C(PIN_17, PIN_MODE_9);
}
生成的代码是一样的。
还是一样的现象。
跳线如附件,测试得,PIN16和PIN17都已经上拉了。
PIN16和17默认是JTAG的TDI和TDO, 你是用JTAG在通信吗?如果你占用了它,当然就没办法通信了。
问题已经解决了。PIN1、PIN2默认功能脚是I2C,设置其他的引脚的时候应该取消PIN1、PIN2的默认值。
PIN1、PIN2默认功能是I2C,使用其他引脚的时候,取消PIN、PIN2的默认功能即可。
这是TI的顾工程市发现的。
如果将PIN16,PIN17用作I2C,是不是就无法使用板载FTDI仿真器了?
非常感谢,就是这个原因!非常感谢,困扰了我好多天!麻烦了周围一圈工程师找bug。。。。
我也遇到这个问题,把PIN1,2配置成其他模式切换I2C引脚才有效。
你好,我向你说的将pin2脚设置为普通的GPIO功能,然后在设置GPIO13为I2CDAT,但是发现仍然没有数据,能内信个联系方式请教你一下吗