【SIM卡】SIM不识别分析处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CodingNotes/article/details/89336125

1.1. sim 卡检卡流程介绍:

Sim 卡检卡是在modem 侧完成的,modem 在初始化时会去做sim 卡的初始化,包括检卡动作。检卡的时序是follow ISO_IEC_7816-3 的spec,所有卡(联通卡,移动卡,电信卡...)都一样. 
简单说明时序如下:
(1) 先给sim 卡上电(会先上1.8v,如果检卡失败会切换到3.0v);
(2) Sim controller 拉动RST pin;
(3) Sim 卡收到controller 的RST 后会回复一串字符串,称为ATR(answer to reset),ATR里面包含了一些卡的信息;
(4) Sim driver 收到卡回的ATR 后就可以跟卡进行通信了.
注: 检卡失败后会将vsim 关掉。


1.2. Sim 卡不识别如何排查

根据上面1.1 的简单介绍,已经了解了sim 卡检卡的一个简单的流程,接下来将告诉大家在遇到不识别
卡的问题时要怎么排查:
(1) 确认modem 是否有正常bootup, 有时候客户报卡不识别,实际上是modem 没有bootup 成功,modem 都没起来,当然不能检卡.确认modem 是否有成功bootup 的方法是在关于手机里面看是否有baseband 版本信
息.
(2) 多找几张卡不同的卡进行测试,看是否所有卡都不识别,还是只有个别卡不识别。因为所有卡的检卡流程都一样,如果是只有个别卡不识别,通常是卡与卡槽不匹配,或者卡没插好。经常有客户反馈插某张卡不识别,最后发现测试人员拿一张nano 卡插在micro 卡槽上,不要笑,这类问题很多,卡是插进去了,但是卡与卡槽的pin 是否联通有确认吗???
(3) 如果插所有卡都不识别,先请hw 检查下线路是否正常,vsim 上是否有贴电容。如果支持热插拔的,请先将热插拔功能关闭看是否识别,关闭热插拔的方法请参考3.2小节; 如果关闭热插拔就ok 的,那说明热插拔配置有问题导致不识别。
(4) 因为检卡是modem 开机就做的,所以软件流程上基本不会出现问题,基本都是配置问题。检查codegen.dws 中sim 相关的gpio(rst, io,clk)配置是否正确。通常mtk default 给出去是配置好的,不排除客户有改动到,要做double check, 除了检查配置,更要在开机后cat gpio 状态,排除其他模块有改动到gpio 模式,
方法如下:
To show GPIO status:
adb shell "cat /sys/devices/virtual/misc/mtgpio/pin"
每行分别对应:
IO 编号: 模式, 输入上拉选择,输入值,输出值,输入上拉使能,方向,输入翻转Codegen.dws 配置如下,IO 记得要配置上拉!
(5) 如果以上方法都排查后仍不识卡,请hw 测量检卡时的vsim,rst,io 的波形,3 个pin 要同时抓,用trigger vsim 的方式抓取。


1.3. 举几个不识卡的例子:
 

通过check modem log 来确认不识卡的原因。
1.3.1. 没有收到卡回的ATR (多数不识别卡的问题都是这种case).
Case 1:没有收到任何数据!举例log 如下:
Sys trace:
红框中的数字10 代表: SIM_PRINT_L1USIM_RESET_FAIL. 请参考sim_drv_HW_def_MTK.h 中的enum:sim_printEnum.
Primitive log:
ATR 都收不到的问题,通常是hw 问题!

Case 2:收到数据,但是收到的数据不符合ATR 的spec 规定!
例1:客户回报不识别某张卡
从log 来看,卡收到rst 后,回了ATR,但是回的ATR 不符合spec,TS 是invalid.这种情况按照正常的流程我们会认为卡异常,因为卡回的数据不正确,因此会打出card error 的信息出来。这种问题根据经验有可能是下面几种情况:
a) 这张卡有磨损,导致检卡异常;
b) 卡与卡槽接触不良,可以尝试在卡背面贴几张小纸片确保卡与卡槽接触良好再做测试,同时插卡时应注意,请确保卡有插好;
c) 这种case 通常会发生在某张特殊的卡上,并不是所有的卡插在这支手机上都是这样,也可以在对比机上做对比试验,确认是否是卡有问题。有一种方法可以很好的验证是否是卡有问题还是卡接触不好,就是直接将卡飞线到卡座上,但是这样有损坏卡的可能,因此很多客户不会选择做这个实验。

1.3.2. 有收到ATR,但是后面跟卡通信出现异常
例2:客户回报某个运营商的卡在卡槽2 识别不到:
log 上一开始有收到卡回的ATR,但是后面的检卡过程中出现通讯异常导致重新检卡,检卡又收到正确的ATR,后面又出错,如此反复,导致检卡失败。

这种case 通常是由干扰引起的,客户反馈是某个运营上的卡插在卡槽2 才有这样的问题,很有可能是卡槽2 太靠近RF 收到RF 干扰引起,可以尝试用导电布将sim 卡座包起来避免被其他模块干扰到,再做测试。

1.3.3. Sim 卡热插拔卡配置不正确引起的不识卡问题
不识别sim 卡有时与sim 卡热插拔配置错误有关。此类问题可以从log 中看到:开机检卡时有收到卡回的ATR,但在后面又马上出现拔卡消息:请跟hw 确认硬件上是否有支持sim 卡热插拔功能,如果不支持,需要将热插拔功能关闭,关闭sim 卡热插拔的方法请参考3.2 小节。如果支持,说明中断电平配反了,注意Polarity 需要配置为拔卡后的中断电平。

这个问题主要是因为这几个平台chip 设计相关:
▪ 75/77 SIM SIO 是Digital IO,并不是6320 level shift Analog IO,因此对于75/77 来说,SIM SIO input 低电平判断的max voltage = 0.35 x 3.0V = 1.05V,也就是说SIO 低电平在1.05V 以内对于75/77 来说都是可以识别的,即使SIM FAIL spec (> 0.15x 3.0 = 0.45V)
▪ 而对于89 来说,6320 level shift 并不是digital buffer,当传递电压在0~1.8V 时,89 SIM SIO看到的电压跟6320 看到的几乎是一样的(NMOS 内阻暂忽略),也就说,SIM SIO 送给6320 的0.8V 的低电平,也会以同样的电压传递给89,就是89 SIO 看到的电压也是>0.8V (加上NMOS内阻,实际值近1.0V),89 SIO 低电平的max threshold = 0.35x DVDD = 0.35 x 1.8V (89 IOalways 1.8V) = 0.63V < 0.8V (这张卡的SIM SIO 低电平电压)
▪ 综上所述:这张特殊的卡不符合spec 规定的电器特性,于是跟我们的89/72/82/92/71 平台出现兼容性问题,这种问题因为是chip 的限制,因此目前无法解决。
▪ 为了提高兼容性,MT6595 平台之后的chip 将改掉这个design.

猜你喜欢

转载自blog.csdn.net/CodingNotes/article/details/89336125
sim