智能双卡设计实战指南:硬件电路与软件配置详解!

电子说

1.4w人已加入

描述

在智能双卡设计中,硬件电路的可靠性与软件配置的精准性直接决定双卡功能的稳定性。本文基于实际项目经验,详细拆解硬件设计中SIM卡供电电路、时钟信号匹配及卡槽复用设计的实现细节,并同步讲解软件层的初始化配置、双卡状态同步与运营商策略配置方法,形成一份可直接复用的实战指南。

今天我们以Air780EPM系列低功耗模组为例,分享双SIM卡硬件设计与软件配置要点,带你了解如何构建稳定可靠、功耗优化的物联网设备。

01. 模组相关管脚
 

Air780EPM系列模组与SIM相关的管脚,包括:

SIM1:VDD_SIM1,PIN14;SIM1_DAT,PIN11;SIM1_RST,PIN12; SIM1_CLK,PIN13;

SIM2:VDD_SIM2,PIN65;SIM2_DAT,PIN64;SIM2_RST,PIN63;SIM2_CLK,PIN62;

Air780EPM管脚图如下所示:

硬件电路

02. 主要功能说明

Air780EPM系列模组支持双卡,但只能单待;模组SIM1为原生SIM卡接口,SIM2的数字信号为GPIO模拟,电源共用SIM1。

1)GPIO复用

复用为SIM2的GPIO,在硬件上同时被引到了不同的模组管脚上,比如:

USIM2_RST:与CAM_BCLK(GPIO4)复用,二者不可同时使用; 

USIM2_CLK:与CAM_CS(GPIO5)复用,二者不可同时使用; 

USIM2_DAT:与CAM_RX0(GPIO6)复用,二者不可同时使用。 

这里的不可同时使用:

是指在同一个硬件上,使用SIM2时就不能再使用GPIO4/5/6,包括这三个GPIO可以复用的其它功能,比如Camera、I2C、UART等。

具体见GPIO复用表:https://docs.openluat.com/air780ehnehu/product/shouce/

硬件电路

2)IO电平

SIM1支持1.8V/2.8V两种IO电平的SIM卡,SIM2由于是GPIO4/5/6复用,所以可以支持的SIM卡的电平与模组IO的电平保持一致。

模组IO电平设置为1.8V时:SIM2则只支持1.8V电平的SIM卡;

模组IO电平设置为2.8V/3.3V时:SIM2则只支持2.8V/3.3V电平的SIM卡(就IO电平而言,2.8V和3.3V可认为电平一致)。 

当前运营商提供的SIM卡基本默认兼容1.8V/2.8V电平,所以大家在实际应用中很少遇到因为IO电平不一致而导致不识卡的情况。

3)模拟开关

也可以使用“SIM1+模拟开关”的方式实现双卡单待,我们验证调试过的SIM卡模拟开关为:BCT4567

相关手册详见:https://docs.openluat.com/air780epm/product/air780exxpins/#sim1sim2


 

03. 硬件参考设计

双卡设计时,推荐SIM1带插入检测功能,且配合SIM卡座的规格,保证在SIM卡插入后USIM_DET信号悬空而不是接地,可以进一步降低功耗。

双卡设计且其中之一为贴片SIM卡时:推荐使用SIM2接贴片SIM卡,SIM1接SIM卡座。

接下来,我们一起看看硬件设计及相关注意事项:

▼  SIM1参考设计  ▼

硬件电路

相关注意事项如下:

1)USIM_DET为SIM卡插入检测管脚,不需要时可以不接;

2)USIM_DET推荐默认使用WAKEUP2,当然使用其它WAKEUP或GPIO中断也可以;

3)WAKEUP2被命名为USIM_DET,目的是为了引导大家默认使用WAKEUP2用作USIM_DET,当设计中不需要USIM_DET时,该管脚WAKEUP2与其它WAKEUP信号没有区别,也可以用作它用; 

4)USIM_DET代码示例;

硬件电路

5)USIM_DET需上拉至某一AGPIO:

比如AGPIO3(GPIO23,软件可以控制一直高电平输出,此管脚在某些文档中也常被称为Vref),不能使用VDD_EXT(低功耗模式pm.WORK_MODE,1和PSM+模式pm.WORK_MODE,3下不能一直输出,后续的章节中会详细介绍)。

▼  SIM2参考设计  ▼

硬件电路

相关注意事项如下:

1)请严格按照SIM2参考设计电路进行设计,SIM2可以接SIM卡座,也可以接贴片SIM卡;

2)特别注意USIM2,无论电源还是信号(CLK/DATA/RST),均为复用模组的其它管脚。

USIM2_VDD:与USIM1_VDD使用同一个电源LDOSIM;

USIM2_RST:与CAM_BCLK(GPIO4)复用,二者不可同时使用;

USIM2_CLK:与CAM_CS(GPIO5)复用,二者不可同时使用;

USIM2_DAT:与CAM_RX0(GPIO6)复用,二者不可同时使用; 

3)使用SIM2时,必须使用API函数mobile.simid(1)进行切换,否则模组不会自动初始化SIM2。 

API函数详细说明参见:https://docs.openluat.com/osapi/core/mobile/#mobilesimidid-priority

4)TVS保护:SIM卡插拔时极易产生静电,电路上需要添加TVS保护。

推荐TVS型号为:芯禾微XESD100N-3V3 


 

04. 与SIM相关的LuatOS API

以下是两个常见的API,详见资料中心:https://docs.openluat.com/osapi/core/mobile/

mobile.imsi(index)用于获取IMSI(国际移动用户识别码)

示例代码:

硬件电路

mobile.iccid(id)

获取或设置ICCID(集成电路卡识别码)

示例代码:

硬件电路

05. 常见问题解答

问题:SIM卡不识卡,使用万用表测量SIM卡电源VDD_SIM没有电压,怎么办???

解答如下:

首先,需要明确的是,是因为模组没有识别到卡,所以 VDD_SIM没有电压,并不是因为VDD_SIM没有电压所以识别不到SIM 卡,因果关系不要反了,这几乎是所有新用户都会遇到的常识性的认知错误。

真实原因是:SIM卡在初始化时,系统会尝试4次与SIM卡交互,此时 VDD_SIM也会打开4次,分别在1.8V和3.3V交替检测。若检测不到SIM卡,VDD_SIM卡就会关闭。因此在检测不到SIM卡的情况下你用万用表测量USIM_VDD总是低电平。

下图是使用示波器测量出来的,对应SIM卡未被识别到时的波形:

硬件电路

一般来说,不识别卡的主要原因大概有如下几个:

SIM卡封装做错;

SIM卡接触不良;

SIM卡信号线连错;

SIM卡信号使用的TVS容值太大,导致SIM卡信号变形严重;

SIM卡本身不良,一般做法是先使用个人手机SIM卡对比测试;

SIM2不识别时,大概率是没有设置 mobile.simid(1) 导致的;SIM2由GPIO复用而来,所以模组底层软件并不会主动轮询识别SIM1和SIM2,只会默认初始化识别SIM1。

再次强调:初始化SIM2需要主动设置mobile.simid(1) 。

详见资料中心:https://docs.openluat.com/osapi/core/mobile/#mobilesimidid-priority

今天的内容就分享到这里了~

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分