我看spec里关于上拉电阻有配置,寄存器I2CWC的SCLPUE/SDAPUE位,应该是这2位置位就可以使能上拉电阻,这也是芯片reset默认时候的状态,
但是该寄存器的OVR位又有如下描述
Override enable:
0: I2C functionality (ignore other bits in this register)
1: GPIO functionality
OVR 为 0,使能I2C功能以后,忽略该寄存器其他位?就是其他位无效么,该如何理解?
另外在i2c驱动里面有函数
#define I2C_WRAPPER_DISABLE() st( I2CWC = 0x00;)
似乎又是将上拉电阻禁止掉,那么应该需要外接上拉电阻,所以我的问题是
1)i2c模块自带的上拉电阻到底能不能用,就是不额外接上拉电阻能否正常工作?
2)i2cwc配置上拉电阻的位SCLPUE/SDAPUE到底能否起作用?
3)如果使能内部上拉电阻,同时又外接上拉电阻,比如4.7k,有没什么问题?
谢谢回复!
da qin zheng sheng:
i2c可以配置为普通io,外接上拉电阻可以的。
lionel xu:
回复 da qin zheng sheng:
谢谢你的回复,我现在出现了很诡异的问题,就是I2C SCL/SDA电平会有不高不低的情况出现,比如高电平应该是3V,但是现在只有1.8V
已外接了2.2k的上拉电阻,i2c模块使用默认配置,不知道问题出在哪里?
da qin zheng sheng:
回复 lionel xu:
http://www.ti.com/product/CC2541/toolssoftware
下载官方例程,可以参考的。