TI的工程师你好
我在用bq32000时现在寄存器的值读不出来,晶振已经起振,电源供电没问题,数据写入的时序也是对的,可RTC数据就是读不出来,全是00;我现在都不确定这个芯片有没有工作,有办法确认么???
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
TI的工程师你好
我在用bq32000时现在寄存器的值读不出来,晶振已经起振,电源供电没问题,数据写入的时序也是对的,可RTC数据就是读不出来,全是00;我现在都不确定这个芯片有没有工作,有办法确认么???
bq32000芯片不是I2C接口么,他是标准的I2C协议么,是不是我单片机每给它发送一个8位的数据,它都会返回一个ACK,只有接收到ACK后才能发送吓一跳数据
是标准的I2C。你的I2C的时钟是多少?时序满足手册第8页的要求吗
SCL和SDA都通过上拉电阻上拉到Vcc了吗?时序图发上来看下吧,是的,每次发送完数据都会有一位应答信号的。
SCL和SDA都得外接上拉电阻么,我是直接接到单片机管脚上的,单片机内部管脚有上拉电阻吧
至于时序图今天发不了了,明天吧,不过我发现不焊接bq32000时时序是对的,当焊上bq32000时,IO口的输出高电平是有时候会只有一半的电压,不知道是怎么回事
是的,SCL和SDA都是开漏输出,需要上拉,如果你和单片机的I2C或GPIO连接的话,可看下内部是否已经上拉,否则的话必须上拉到Vcc。
貌似是由于ACK的信号达不到高电平导致的,当我单片机发送8位的数据后,再把输出拉高就不行了,只能达到高电平的一半,是设计问题还是我程序有问题啊
已经确认问题点,是SCL信号和SDA信号相互干扰,当SCL为低是SDA不能拉高,而当SDA为高,想要SCL为低时,SDA就变为原来的一半,不知道你们有没有遇到过这种情况,是不是跟这两个信号通过上拉电阻接到同一个VCC有关
两个信号都上拉到同一个Vcc是没问题的,不过这种波形确实没见过,你发的第一个时序图看着还是正常的啊。
第一个是没有接bq32000芯片的时序,只是单片机IO口的输出
是用单片机的IO口配置的I2C 吗,那么需要看下内部是否已经做了上拉,如果已经上拉的话,BQ32000的SCL,SDA再上拉的话,总电阻减小,可能就不足以将DATA线拉低,所以看到的ACK信号有幅值
貌似不是这个导致的,我提到一个现象不知道你看到没有,就是在发送8位的数据的时候数据都是正常的,
1、当最后一位为高,这时我要是把SCL拉低,那么SDA就会被拉低为原来的一半;
2、当8位数据发送完成以后,SCL为低时,如果我拉高SDA(也就是释放SDA时)SDA也只有高电平的一半;
3、我看了秒接收到的数据,当为0时为高电平的一半,为1时就是高电平
我觉得这应该不是我时序或者说程序的问题了,而是硬件除了问题,可就是不知道问题在哪