Part Number:CC2640
Hi Team,
这是客户已经小批的项目。用到CC2640的GPIO模拟I2C,读取和设置RTC。
量产了一批,发现有部分出现RTC设置和读取不稳定,抓取波形发现SDA电平出现高电平/半电平情况 。原理图如下,请帮建议
/cfs-file/__key/communityserver-discussions-components-files/103/SCH_5F00_V1.pdf
Albin Zhang:
为啥要模拟呢?芯片可以支持I2C啊。你可以配置一下试试吧。
基于目前现象,pin configuration 了下拉?
半点平的波形发一下。和外部上拉成比例?
BR. Albin
,
小维:
您可以看下我的原理图,RTC测试失败,排查IIC,电平拉不到低,将SDA上拉电阻去掉,还是可以在SDA上量到高电平。
和外部上拉不成比例的(请看图二),外部上拉电阻,对于这个电平基本没有啥影响. 不正常现象就是该电平拉不低的时候,MCU将这个电平识别为1,那就不成功;识别为0,那也就数据正确了
,
Albin Zhang:
这个比特master已经释放了总线,由slave拉低来回复ACK. 但是slave拉了个无效电平。 或者被其他因素分压了 (但你说电平和上拉电阻没关系,那么分压概率不高)。
如果你确定master处于read的状态,那就看看,slave有啥可能输出该电平。
亦或是你本来就访问了一个无效地址,slave给你回了一个NACK?
我建议你还是用标准的i2c driver看一下。不用模拟的。
另外,你也可以分析一下,上面我标注的窄脉冲是什么?所以,是不是GPIO被什么程序抢占了。