关于OLED电源无法关闭问题,请教大家了
我使用悠景0.91寸12832 白光 I2C OLED 液晶显示屏 SSD1306 14PIN,在淘宝买的裸屏,屏是好的,外围驱动电路自己设计的,实际使用也没问题,下面是电路图:驱动起来后使用感觉还是很方便的,我设计的系统是一个低功耗系统,希望单片机休眠后尽可能降低功耗,所以单独设计了电路控制进入休眠前关闭OLED电源,发现我的电路没有办法关闭电源,执行关闭代码后发现OLED电源仍然为2.8V左右,实际电源电压为3.3V,也就是主系统电源。
焊接下来OLED发现,电源输出是可以控制的,于是又焊接上OLED,把把R26 R27电阻去掉,OLED电源线割掉,这时候发现系统启动后OLED仍然工作,而且测量OLED电源电压2.8V左右,现在只有IO模拟的IIC接口和单片机通讯,难道电源是从这里进来的,感觉好奇怪,测试电路板也没有发现电源其他地方有问题,系统工作正常,就是没有办法关掉OLED电源。
下面是控制OLED的电源电路:
下面是我的电路板:
麻烦大家帮我分析分析,非常感谢! 补充一下,代码是没有问题的,焊接下来OLED,软件关闭打开电源是正常的。
也就是说OLED工作在我设计这个系统里可以不需要3.3V_DEV这个电源,仅仅用IO就可以了,好奇怪,问买屏的淘宝,也没有技术支持。 你先量下屏幕自身的SCL和SDA引脚对VCC是否有个上拉 呃……打错了,是对屏幕自身的VDD是否有上拉 于是又焊接上OLED,把把R26 R27电阻去掉,OLED电源线割掉,这时候发现系统启动后OLED仍然工作,
这句话是什么意思?是OLED完全与电路无关了吗?
另外看到OLED上有VBAT引脚,难道OLED内部有缓冲? 本帖最后由 xiaodao35 于 2015-9-2 15:38 编辑
你把上拉电阻的电源接到受控电源上。[没写完就发了]然后IO输出0试试。 ibichao 发表于 2015-9-2 15:28
于是又焊接上OLED,把把R26 R27电阻去掉,OLED电源线割掉,这时候发现系统启动后OLED仍然工作,
这句话是什 ...
我猜LZ可能是把I2C的引脚设成推挽输出了。有些器件SCL和SDA引脚上集成了对VDD的上拉电阻,MCU这边一推挽,于是就通过I2C供电了…… 跟我前两天遇到的一个问题几乎一模一样。修改IO口的设置,输出低电平就好了。 呵呵,你没必要控制屏幕的电源啊,难道你想每次给他上电都要初始化啊。。。。你应该让OLED进入低功耗模式,这个屏幕进入低功耗后有10ua左右的电流,那你自己算下能有多久。。。。哈哈,时间绝对达到你的要求,还有提示下,注意上拉电阻,因为上拉电阻会消耗掉一些。。。。。 本帖最后由 jdh99 于 2015-9-2 17:09 编辑
lgupen 发表于 2015-9-2 16:30
呵呵,你没必要控制屏幕的电源啊,难道你想每次给他上电都要初始化啊。。。。你应该让OLED进入低功耗模式, ...
遇到类似问题,请教如何设置oled低功耗:
电路上与LZ图一致,Vcc用的是内置电压,接一个电容到地
pdf中设置低功耗的方法:
pdf上写的不够详细,导致有两种理解:
1.设置display为0xae后,oled自动将vcc置低,然后进入睡眠模式
2.设置display为0xae后,再将vcc置低,然后进入睡眠模式
请问哪种理解是正确?
jdh99 发表于 2015-9-2 17:07
遇到类似问题,请教如何设置oled低功耗:
电路上与LZ图一致,Vcc用的是内置电压,接一个电容到地
这个不清楚了,我的做法是先清屏,让屏幕没有显示,然后再设置0xae Scarlette 发表于 2015-9-2 15:34
我猜LZ可能是把I2C的引脚设成推挽输出了。有些器件SCL和SDA引脚上集成了对VDD的上拉电阻,MCU这边一推挽 ...
多谢提醒,我看了下代码,确实没有设置成推挽输出,而且现在把IO口上下拉电阻都禁止掉,还是不行。 lgupen 发表于 2015-9-2 16:30
呵呵,你没必要控制屏幕的电源啊,难道你想每次给他上电都要初始化啊。。。。你应该让OLED进入低功耗模式, ...
有道理,我之前怎么没想到,应该让显示屏也进去低功耗状态,每次唤醒都初始化平也挺蛋疼的。 friendljy 发表于 2015-9-2 16:10
跟我前两天遇到的一个问题几乎一模一样。修改IO口的设置,输出低电平就好了。 ...
确实,休眠之前把SCL和SDA的IO口拉低,屏幕就灭了,但是唤醒后还得初始化屏幕。 wukangkang 发表于 2015-9-7 10:14
确实,休眠之前把SCL和SDA的IO口拉低,屏幕就灭了,但是唤醒后还得初始化屏幕。 ...
你都掉电了。肯定要重新初始化呀。 wukangkang 发表于 2015-9-7 10:12
有道理,我之前怎么没想到,应该让显示屏也进去低功耗状态,每次唤醒都初始化平也挺蛋疼的。 ...
不多说了,直接上代码。
void OLED_ON(void)
{
WriteCmd(0X8D);//设置电荷泵
WriteCmd(0X14);//开启电荷泵
WriteCmd(0XAF);//OLED唤醒
}
void OLED_OFF(void)
{
WriteCmd(0X8D);//设置电荷泵
WriteCmd(0X10);//关闭电荷泵
WriteCmd(0XAE);//OLED休眠
}
IIC上面的两个上拉电阻,如果可以就不要焊上去,大概有几ma的影响,你直接用芯片的内部上拉,去试试吧。功耗肯定在ua级别 lgupen 发表于 2015-9-7 11:41
不多说了,直接上代码。
void OLED_ON(void)
{
非常感谢,马上试试。 wukangkang 发表于 2015-9-7 12:21
非常感谢,马上试试。
试的结果呢,马要就需要写OLED民间的,1306的,参考一下, 楼主解决了吗? lnso 发表于 2015-11-16 20:09
楼主解决了吗?
你好,解决了。其实不是MOS开关的问题,在单片机休眠前需要把操作IIC的引脚设置为输入口。否则会从单片机引脚有电流输出到导致OLED点亮。
页:
[1]