骑士ME3616模块二次开发

一、二次开发简介
ME3616模块是高新兴物联基于MTK2625芯片开发的一款NBIoT模块,支持全频段和GPS功能,我买的这款不带GPS功能。这款模块相对其他的NBIoT模块的优点是支持二次开发,如果用户的应用场景比较简单,外围只是一些简单的传感器等器件,可以使用二次开发功能省掉外围的一颗MCU,一定程度上节省成本。

二、二次开发准备
硬件:骑士ME3616模块 + CP2102 USB转串口

三、二次开发步骤
1、硬件连接
将CP2102和ME3616模块用杜邦线连接好:
CP2102 ME3616
5V VCC
GND GND
TXD DRXD
RXD DTXD

2、获取二次开发底包和SDK
这个模块厂家会提供,由于我买的模块是不带GPS的,所以我拿到的软件版本是OC_ME3616C1AV0.0B08,C1A代表不带GPS版本,G1A代表带GPS版本。如下图:
骑士ME3616模块二次开发
解压后,会得到两个文件:
(1)WELINKOPEN_ME3616C_SDK.V0.8.exe:这个是SDK文件,直接双击安装即可,路径不要包含中文
(2)OC_ME3616C1AV0.0B08.7z:解压即可,路径不要包含中文
上述步骤操作完成后如下图:
骑士ME3616模块二次开发

3.安装gcc-arm编译工具链
安装文件在ME3616C1A_V0.8\SDK\sdk\tools目录下,默认路径安装即可,安装完了注意勾选“将其添加进环境变量中”

4.编译SDK
编译工具链安装完成后,可以尝试看看是否可以正常编译。执行ME3616C1A_V0.8\SDK\sdk\examples目录下的build.bat,出现如下界面表示编译正常;
骑士ME3616模块二次开发
因为我之前已经编译过了且没修改代码,所以这里提示没啥需要编译的。
如果编译失败,看看环境变量是否添加,或尝试其他方法编译(使用VScode工具),具体参考如下链接:
https://mp.weixin.qq.com/s/-gLmwkvDvczhHEpqQukw-g

5.下载二次开发底包
这里介绍两个下载工具:Downloader_tool和FlashTool,两个工具都可以用来下载固件(工具找模块厂家要),当其中一个不能用的时候尝试用另一个,两个都不能用的时候尝试换一个CP2102,如果还是不行,找模块厂家支持吧!
(1)打开Downloader_tool,选择串口号,选择固件文件,目录:ME3616C1A_V0.8\OC_ME3616C1AV0.0B08\flash_download.cfg,如下:
骑士ME3616模块二次开发
点击“开始”后,按一下模块上的复位按键,下载就开始了,如下:(如果不行,多试几次,还是不行,按照上面说的,换一个下载工具再试试)
骑士ME3616模块二次开发
下载成功后会提示success,如下:
骑士ME3616模块二次开发

(2)我们再用FlashTool来演示一遍下载过程,同样的,打开软件,选择串口号和底包文件,如下:
骑士ME3616模块二次开发
点击“start”后,按一下模块上的复位按键,下载就开始了,如下:(如果不行,多试几次,还是不行,按照上面说的,换一个下载工具再试试)
骑士ME3616模块二次开发
下载成功后会提示success,如下:
骑士ME3616模块二次开发

好了,到这里,我们用两种工具都实现了固件底包的下载,实际使用时,用户根据实际情况选择哪种下载工具。

(3)接下来我们要下载sdk的固件了,这里以printf代码为例,该例程位于:ME3616C1A_V0.8\SDK\sdk\examples\printf,如果编译成功,在该目录下还有bin和obj两个文件夹,如下:
骑士ME3616模块二次开发
同样的,还是使用上面说的两种下载工具,任选一种,打开,选择串口号,选择要下载的代码,位置在:ME3616C1A_V0.8\SDK\sdk\examples\printf\bin\download.cfg。点“开始”后按一下复位按键,下载开始,直到下载成功,如下:
骑士ME3616模块二次开发

好了,到这里,我们的二次开发底包和代码都下载进去了,现在来看看代码有没有正常运行

(4)打开串口调试助手,选择串口号,波特率115200,按一下模块上的复位按键,打印结果如下:
骑士ME3616模块二次开发
从打印log可以看出,前面的打印应该是一些初始化,然后跳转到一个地址,执行我们下载进去的代码,最后打印出Hello world和GCC工具链的版本

(5)为了验证代码运行是否正确,我们打开printf.c源文件,如下:
骑士ME3616模块二次开发
证明,打印正确。

至此,我们已经跑通了ME3616模块二次开发的流程,剩下的工作就是用户自己添加应用代码。用户可以结合源码自行分析,在ME3616C1A_V0.8\SDK\sdk目录下有include文件夹,里面放了所有可以使用的.h文件,其中定义了很多内容,用户可以自己去看,有C语言基础就行。要注意的是,所有外设的api接口都已经被定义好,用户在使用时要遵循api的接口定义。