模组成功识别SIM卡是模组连接网络及参与网络活动必要条件,但是我在调试过程或使用经常遇到SIM卡无法识别和者SIM_VDD没有电压(SIM_VDD没有电压就是因为没有识卡导致,下文会有详细解释)
1. AT指令判断模组有没有识别SIM卡
查询指令: AT+CPIN? //(‘?’为英文字符)
返回指令: ERROR // 识别SIM卡失败
返回指令:OK // 识别SIM卡成功
2. 初步排查
在模块可以正常开机并且可以正常串口通信的前提下,强烈建议一步一步按照以下排查操作:
1、检查SIM卡有没有插反,市面上SIM卡座种类繁多,部分SIM卡座没有防呆标识,正反插都可以放置在卡座内。
2、更换SIM卡,SIM卡可能长期插拔使用过程中损坏。
3、模组上电前按压SIM卡座,防止SIM卡座弹片和SIM卡接触不良。
4、把SIM卡电路部分电容和ESD器件全部去掉,防止焊接电容容值不对和ESD器件焊接导致模组SIM卡不识别,这两种类型器件模组识卡是不影响。如果器件是手动焊接的,尤其关注这两点。
5、尤其注意部分客户是手动焊接,检查SIM卡座各个引脚焊接是否存在短路问题。
6、检查SIM卡座封装设计,确保封装正确。
7、发送AT指令:AT+QSIMDET=0,0 //关闭SIM卡热插拔功能 ,模块重新开机尝试能否识别卡。主要由于SIM卡座结构可能与开启的热插拔识别电平不一致导致无法识卡。
3. 进一步排查
如果初步排查都验证完成,再一步确认下模块和SIM卡部分状态。
测试模块SIM卡接口相关引脚阻抗(SIM_VDD、SIM_DATA、SIM_CLK、SIM_RST),以EC20模组为例,引脚对地阻抗为0.4~0.6V(不同模组的引脚阻抗不尽相同,SIM_DATA、SIM_CLK&SIM_RST阻抗值相近,SIM_VDD阻抗值略大)
引脚阻抗测量方法如下:
使用万用表二极管档位,红表笔接GND,黑表笔接所需测的模块引脚。如下图:
如果模组的引脚阻抗都是正常的,90%的概率模组都是正常,需要排查SIM卡座部分电路。确认模组SIM卡接口是否正常或确认SIM卡座部分电路是否存在问题,最简单有效的办法就断开模组与SIM卡座的连接(断开串联的电阻),单独飞一个SIM卡座(没有飞一个SIM卡座解决不了的问题),如下图:
飞线注意事项:
1、SIM_VDD、SIM_DATA、SIM_CLK、SIM_RST、GND共5根线,线不宜过过长约6cm。
2、连接线不宜太粗,太粗焊接容易和其他引脚短到一起。
3、飞线一端连接到SIM卡座的PIN,一端直接连接模块的引脚。
4、飞线完成后检查确认。
如果外接SIM卡座的条件下,模组可以识别SIM卡,那基本可以确定SIM卡电路部分存在问题,检查SIM卡座焊接及质量问题、检查电容的容值和焊接问题等。
如果测试某个引脚对地阻抗接近为零,断开调试电阻,确认是模块引脚短路还是外围电路短路导致。如下图是SIM参考设计电路图:
4. 示波器排查
如果模块SIM卡接口相关引脚阻抗也都正常,我们需要进一步借用示波器测量模块每个引脚的波形,看模块是是否存在识卡的动作。EC20系列模组SIM卡支持1.8V/3.0V,SIM卡相关引脚先识别1.8V的SIM卡,如果找不到再去寻找3.0V的SIM卡。下面我们详细看下EC20的SIM_VDD、SIM_DATA、SIM_CLK、SIM_RST识卡的波形:
如下是SIM_VDD&RESET的识卡动作波形:
SIM_VDD和SIM_RESET识卡动作波形我们可以看出来,模组SIM_VDD和SIM_RESE电平由1.8V切换至3.0V,后变为低电平。其实模组想法是:我先去找你1.8V的SIM卡;我找不到我再找你3.0V的SIM的卡,我要是再找不到你就不能怪我了,我可就关闭电源了哦。而不是我们大多数人认为你的SIM_VDD为啥没电了,所以导致我不识卡了,凡是有这想法的同学们看到这个波形你就会知道你错怪模组了。我们再看下SIM_CLK和SIM_DATA的识卡波形。 如下是SIM_VDD和SIM_CLK的识卡波形:
如下是SIM_VDD和SIM_DATA的识卡波形:
如果你测试模块SIM_VDD、SIM_DATA、SIM_CLK、SIM_RST都具有识卡动作,说明模组是正常的,建议此时断开调试电阻,飞一个SIM卡直接连接模块引脚,排查是否是SIM卡座导致不识卡。
通过示波器可以判断具体那一个PIN存在问题,我们可以认为具有识卡动作的PIN为正常的,没有识卡动作的PIN未异常的,这样可以重点排查存在问题的引脚。