【WIFI】[esp8266]-上电引脚初始化状态问题

ESP8266EX 上电时引脚的初始化状态

问题:
ESP8266EX 使用SDK:NONOS_SDK_1.5.3_16_04_18,IOT_demo中的light。
上电后的350ms内,GPIO12,GPIO13,GPIO14引脚的电平始终为高电平。

在使用ESP8266EX作为MCU做了一个wifi 七彩灯。4路PWM引脚分别为:R(GPIO 14), B(GPIO12), G(GPIO 13), W(GPIO4), 全部引脚设置为PWM引脚,初始占空比为零。
但过程中发现,每次上电后,总会RGB先亮一下,熄灭(然后进入我写的程序)。

解决:
用是逻辑分析仪采样发现RGB三个引脚上有350ms左右的高电平出现,(W引脚没有这个现象),起初以为是软件设置有误,于是将所有的代码全部注释,user_init()中只写RGB初始化为零的语句。再一次上电,发现RGB三个引脚居然还是一样的现象,首先出现350ms的高电平,然后拉低。
由此猜测:
1) ESP8266一上电,会有350ms左右的时间是不受用户控制的(至少是使用官方SDK的用户)。
2) 在上电后的350ms左右,RGB的引脚电平是被拉高的。但是引脚拉高有两种可能性:

  1. 第一是:输出功能,并且输出高
  2. 第二是:输入功能,并且上拉

为了搞清楚,其上电时,它引脚的状态,设置简单的测试环境。把可能干扰的电路以及其他全部弄掉,仅仅剩下一个ESP8266最小系统模块。这里使用的是ESP8266EX(AI的模块)。

1)  使用官方SDK:NONOS_SDK_1.5.3_16_04_18
2)  使用例程App:IOT_DEMO的light
3)  修改light源码:将user_light中全部注释,然后初始化以下引脚GPIO(0,2,4,5,12,13,14,15,16),将其设置为输出,然后置低电平。
4)  由于要进入Flash启动模式,所以先让GPIO15 = 0,GPIO2 = 1,GPIO0 = 1; 先判断其他引脚
5)  最后判断GPIO15,GPIO2,GPIO0的初始状态。

实验方法:
使用逻辑分析仪,采样各个引脚的波形,然后分析。
分析分为两个步骤,首先判断上电后,引脚的电平;然后判断是输入还是输出。

  1. 首先判定上电后引脚的电平
    由于用户程序写的是,上电置低,所以只要观察,上电后,特别是350ms以内,相应引脚的波形是否有高电平出现。
    1) 如果有高电平,说明引脚初始电平为高,
    2) 如果无高电平,说明引脚初始电平为低。
  2. 然后判断是输出还是输入
    1. 对于初始状态为高电平,那么其状态就可能有两种,一种是输出置高,另一种是输入上拉两种状态了。判断方法如下:
      各引脚使用下拉电阻,然后在上电测量,使用逻辑分析仪采样,观察波形。
      • 如果上电后的350ms内是高电平,则该引脚是初始状态为:输出置高
      • 如果上电后的350ms内是低电平,则该引脚是初始状态为:输入上拉
    2. 对于初始状态为低电平,那么其状态就可能有两种,一种是输出置低,另一种是输入下拉两种状态了。判断方法如下:
      各引脚使用使用上拉电阻,然后在上电测量,使用逻辑分析仪采样,观察波形。
      • 如果上电后的350ms内是高电平,则该引脚是初始状态为:输入下拉
      • 如果上电后的350ms内是低电平,则该引脚是初始状态为:输出置低

测量后的结果如下:

GPIO NO.PIN NO.初始状态初始电平
GPIO0Pin15输入上拉H
GPIO2Pin14输入上拉H
GPIO4Pin16输入下拉L
GPIO5Pin24输入下拉L
GPIO12Pin10输入上拉H
GPIO13Pin12输入上拉H
GPIO14Pin9输入上拉H
GPIO15Pin13输入上拉H
GPIO16Pin8输出置高H

如果想要在上电后,不出现高电平,解决的办法就是在相应的引脚上接上下拉电阻,然后就可以正常使用了,置高置低都不影响。我使用的是330欧姆的电阻,亲测可以用。


Pillarpeng
2016.8.4

  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PillarPeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值