带有外部上拉的I2c电流

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
6个员额/ 0个新员额
最后发表
vmore
离线
最后看到:10个月1个星期前
加入:2018-03-01十八22
带有外部上拉的I2c电流

你好,

我有两个设备在我的I2C总线(eeprom和另一个设备)和我有外部拉升连接在总线上- scl, sda (4.7k)。在添加了外部引体向上之后,我观察到当前消耗的增加——大约500uA的持续消耗(芯片休眠时也是如此)。一旦外部引体向上被移除,这种情况就会消失。一个潜在的原因可能是i2c线路没有被停用。

我初始化i2c的代码是这样的:

GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_6, INPUT, PID_I2C_SCL, false);GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_7, INPUT, PID_I2C_SDA, false);i2c_eeprom_init ();i2c_eeprom_read_data ();i2c_eeprom_release ();

我试图将scl、sda行重新配置回gpio状态,但这对当前的消费没有帮助。

是否有一种方法可以取消内部的引体向上为i2c转移,可以帮助当前的消费?你能提供任何关于调试的额外输入吗?

关键词:
i2c
设备:
PM_Dialog
离线
最后看到:2天20小时前
工作人员
加入:2018-02-08 11:03
嗨vmore,

嗨vmore,

您可以将GPIO_ConfigurePin()中的I2C行配置为INPUT或INPUT_PULLUP或INPUT_PULLDOWN。请注意,当设备进入睡眠状态时,包括iC2块在内的所有外设都将关闭电源。您能告诉我您的定制板还使用了哪些外围设备吗?例如,如果您正在使用一个外部SPI flash,并且没有关闭电源,那么在睡眠模式下的正确消耗将会增加。请注意,在我们的示例中,我们有相同的I2C线路配置。

谢谢,PM_Dialog

vmore
离线
最后看到:10个月1个星期前
加入:2018-03-01十八22
在i2c总线上有一个eeprom

在i2c总线上有一个eeprom,没有spi线。i2c主要用于eeprom通信,其他i2c设备很少使用,如果有必要的话。i2c的引脚配置是:

GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_6, INPUT, PID_I2C_SCL, false);GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_7, INPUT, PID_I2C_SDA, false);

这和我在其他例子中看到的是一致的,所以我不认为我在做一些非常不同的事情。如果i2c模块在睡眠模式下断电,我不清楚为什么拉拔会造成如此大的电流消耗。移除上拉装置大大降低了电流消耗,所以问题可能出现在i2c线路上。

PM_Dialog
离线
最后看到:2天20小时前
工作人员
加入:2018-02-08 11:03
嗨vmore,

嗨vmore,

GPIO在进入睡眠状态之前的状态被保留,而不是GPIO的配置或功能,所以这就是为什么当设备唤醒时,为了重新配置每个唤醒的引脚和引脚返回它们的默认应用程序状态,会调用外围init()函数。例如,如果在进入休眠之前,GPIO是高电平的,那么它在休眠期间将保持高电平,并在唤醒时由peripe_init()函数重新配置。你能在睡觉前检查一下I2C线是否偏高吗?

谢谢,PM_Dialog

vmore
离线
最后看到:10个月1个星期前
加入:2018-03-01十八22
你好,谢谢你的回复。

你好,谢谢你的回复。i2c线在入睡前并没有被停用(即始终保持高电平)。然而,移除外部上拉并不是这种情况。如果这是一个固件问题,它应该在添加引体向上之前和之后都存在?如何在睡觉前或不使用时明确停用这些功能?

PM_Dialog
离线
最后看到:2天20小时前
工作人员
加入:2018-02-08 11:03
嗨vmore,

嗨vmore,

很抱歉耽搁了。我问你个问题。你说过你有外部引体向上,是吗?有可能去掉它们并使用内部引体向上吗?你也有同样的问题吗?还有,睡觉前的状态是什么?两条线都在海州?

谢谢,PM_Dialog