SIM7600模块固件升级(模块自身升级)

    技术2023-03-28  90

    SIM7600模块固件升级(模块自身升级)

    本文博客链接:https://editor.csdn.net/md/?articleId=107102723 作者:zsj ,转载请注明.

    之前选购了一款4G通讯芯片——SIM7600CE,测试通过,应用到项目中,效果不错。 在第二批采购回来,进行简单测试(USB连接电脑发送AT指令)后,发现其无法直接应用到项目上,串口无收据。 询问厂家,告知需要注网,(但是未多思考按其操作),操作流程如下(厂家提供注网文档):

    //硬件上一定要把给模块断电的功能加上!

    //如果是一个单独电源芯片给模块供电,可以把电源芯片的使能脚引到MCU上,控制模块断电,如果这样不行,建议用MOS管做开关,由MCU控制MOS管,给模块断电。MOS管压降只有0.1V,而且MOS管能通过的电流大。需要重启时,正常情况下,使用POWERKEY关机开机来重启模块,但我们不排除在极端情况下,POWERKEY无效,这时RESET也可能无效,就需要给模块断电来解决。而反复断电可能导致模块文件系统损坏

    //即:需要重启模块时,正常情况用POWERKEY,POWERKEY 无效再断电

    //初始化流程! //1.开机之后循环发送"AT",每500毫秒发一次,一般发两三个之后就能收到OK了,表示串口通了 //2.收到正确应答后,发AT+CPIN?,如果没收到正确应答,就循环发送,每500毫秒发一次,最多发20次 //3.当AT+CPIN?收到正确应答后,发AT+CSQ,如果没收到正确应答,就循环发送,每500毫秒发一次,最多发100次 //4.当AT+CSQ收到正确应答后(CSQ的值只要是非零就是正确应答),发AT+CGREG?,如果没收到正确应答,就循环发送,每500毫秒发一次,最多发100次 //5.当AT+CGREG?收到正确应答后(0,1和0,5都是正确应答),表示模块初始化及注册网络已成功,这时才可进行数据连接! //注意!以上初始化流程必须执行,当模块处于网络不好的条件下,注册时间会延长,如果不执行,可能会在不知道模块是否已注册上网络的情况下开始数据连接, //导致数据连接不成功,不成功后重启模块,又重连,导致反复重启死循环 //以上命令超时时间为500毫秒,如果发送AT命令500毫秒后仍得不到响应,视为超时。 //所有AT命令均可在AT手册中搜到,以查看具体用法

    //以上初始化流程在所有对7100的应用中都必须加上

    //以下命令回复的超时时间除了特别说明的,剩下全为500毫秒 //发送 AT,测试串口或USB口是否通 AT OK //查询SIM卡是否已准备就绪 AT+CPIN? +CPIN: READY//必须判断READY与否

    OK//不能判断OK //查询信号强度 AT+CSQ +CSQ: 17,99//必须判断前一个数字,来确定信号强度,比如这里是17(范围0-31,31表示信号最强),后一个数字不用判断

    OK//不能判断OK //查询网络是否附着上 AT+CGREG? +CGREG: 0,1//必须判断0,1或0,5才是正确的

    OK//不能判断OK,0,1/0,2/0,3/0,5等等都会回OK //到此初始化检测通过,说明模块可以正常工作了 //查询版本号 AT+SIMCOMATI Manufacturer: SIMCOM INCORPORATED Model: SIMCOM_SIM7100C Revision: 4534B03SIM7100C SIM7100C_4534_150326_V1.00 QCN: IMEI: 866154020007660 +GCAP: +CGSM DeviceInfo: 200,170

    OK //查询网络设置 AT+CNMP? +CNMP: 2

    OK //查询当前网络 AT+CPSI? +CPSI: LTE,Online,460-00,0x1816,27551521,245,EUTRAN-BAND40,38950,5,5,-68,-1046,-778,19

    OK //CMNET是中国移动,3GNET是联通,电信是CTNET AT+CGDCONT=1,“IP”,“CMNET” OK AT+CSOCKSETPN=1 OK AT+CIPMODE=0 OK AT+NETOPEN OK//不能判断OK

    +NETOPEN: 0//默认超时时间120秒,必须出现0,才说明NETOPEN成功,如果该数字不是0,说明打开失败 AT+IPADDR +IPADDR: 10.21.110.228//只要有IP,就说明NETOPEN成功

    OK AT+CIPOPEN=0,“TCP”,“116.247.119.165”,9336//非阻塞式 OK//不能判断OK

    +CIPOPEN: 0,0//默认超时时间120秒,这条表示在通道0上,链接服务器成功。前一个数字表示通道号,后一个数字必须为0,才说明CIPOPEN成功,如果该数字不是0,说明CIPOPEN失败 AT+CIPSEND=0,5

    ABCDE OK//不能判断OK

    +CIPSEND: 0,5,5//默认超时时间120秒,这条表示在通道0上,要发5个,实际也发送了5个,需要判断收到这条,才表示发送成功 AT+CIPCLOSE=0//关闭通道0的SOCKET链接

    OK

    +CIPCLOSE: 0,0//默认超时时间120秒,表示模块和服务器的SOCKET链接关闭了 AT+NETCLOSE//释放模块IP地址

    OK

    +NETCLOSE: 0//默认超时时间120秒,表示模块将IP地址释放了

    按照上述方式,注网完成以后,发现模块还是不可用,由于手里有之前的模块,因此采用对比方式进行测试,遵循单变量原则,将一个调试完成的控制板,换上新的模块后,发现串口接收没有数据,根据经验思考:为什么之前的模块可以用,新模块不可用,对照过硬件芯片,跟之前的都是一样,以前串口可以输出数据正常使用,新模块不行,考虑是不是新版模块没有开放与MCU通讯的串口功能? 与厂家沟通,通过“ AT+SIMCOMATI” 这条指令读取模块相关数据,发现是新模块的固件(程序)与旧模块不一致,新模块的固件信息如下: 旧模块的的信息如下: 其中,Reversion不同,新模块对应的固件,属于调试固件,对应的与MCU通讯的串口没有开启,与之前设想的结果一致。

    知道问题以后,解决的办法就是刷固件(有人会问,新买的东西,版本不对,不应该直接发回原厂么,其实你想的是对的,但是由于快递耽误时间较长,还不如自己进行升级)。

    固件升级方法,如下:

    首先,总体说明:SIM7600固件升级所需要的资源, 主要包括一个升级软件(SIM7500_SIM7600_QDL V1.41 Only for Update), 下载地址:https://download.csdn.net/download/zsj2016o/12584505 一个驱动包(SIM7100 7500 7600 Windows10驱动,没有可能升级不成功), 下载地址:https://download.csdn.net/download/zsj2016o/12584281 一个SIM7600固件包(LE11B06SIM7600M22_MIFI_190925 带wifi), 下载地址:https://download.csdn.net/download/zsj2016o/12584557 SIM7600模块(待升级),如下图 官方模块底座(最好是官方的,自己画的满足功能也可以),如下图 其次,升级过程,操作文档(https://download.csdn.net/download/zsj2016o/12584529),这个操作文档其实就是升级软件中自带的,这个是1个积分,其实是失误了,刚开始没有看,以为弄的0积分呢,直接在软件解压包里查找就好,这里提出来单独说明,就是告诉大家一个名字。 具体过程如下: 1)解压软件SIM7500_SIM7600_QDL V1.41 Only for Update(将软件以及固件放在盘(如G盘)根目录下) 软件无须安装,直接打开就可以用。 2)运行软件SIM7500_SIM7600_QDL V1.41 Only for Update 在运行之前,首先运行 vcredist_x86(一个微软公司Visual C++的32位运行时库,包含了一些Visual C++的库函数),完成后打开软件, 如下图, 点击1,选择MDM9X07(……)选项,随后出现固件选择框,选择固件对应的位置。 3)连接硬件(将模块连接到板子上,并且为板子供电,并将USB连接线将模块与电脑相连),成功如下图: 4)点击2开始,3位置自动识别串口,并自检,信息栏5有数据出现,如果进度条开始读数,那就证明开始升级。 如果进度条无进展,并且在升级时间栏4,显示到30S左右时,5提示“……Please re-power No1 DUT”,右击电脑图标,点击管理->设备管理器,找到故障的驱动,更新驱动(SIM7100 7500 7600 Windows10),重新操作,即可。

    eg:初写乍练,不喜勿喷,文中所写均为本人实际接触过项目中用到的技术,有问题可留言交流。

    Processed: 0.013, SQL: 10