当前位置:首页 > 公众号精选 > 嵌入式大杂烩
[导读]点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记! 前阵子小熊派发布了一款超高性价比的4G开发板(19.8元包邮),但是板子仅限量1000套。小熊派官方也给我送了一块,我们一起来学习学习: 开发板硬件资源介绍 板子做得小巧精致,控制核

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!

前阵子小熊派发布了一款超高性价比的4G开发板(19.8元包邮),但是板子仅限量1000套。小熊派官方也给我送了一块,我们一起来学习学习:

开发板硬件资源介绍


板子做得小巧精致,控制核心用的是移远的EC100Y LTE Cat1无线通信模组,该模组可对所有用户开放二次开发;EC100Y LTE Cat1模组两侧座子/排针是E53接口,可接小熊派的E53拓展模块,如:


小熊派4G开发板与其E53接口拓展模块配合来使用就可以做各种丰富的实验。EC100Y LTE Cat1模组下方是一个SIM卡槽,支持全网通。

SIM卡卡槽左侧预留了几个排针孔,连着两个串口,可根据需要焊接排针来使用。板子顶部是一个小辣椒天线。

板子左下角有一个摄像头接口与一个音频输入/输出接口。板子右下角是4个按键:BOOT按键、RESET按键、POWER按键、用户按键。板子最下方是一个USB口。

开发板入网测试

1、SIM卡槽插入一张手机卡

SIM卡插入一张手机卡,支持全网通,我这里用的是移动4G卡。

2、串口助手发送AT指令进行测试

AT+CPIN?    : 查询SIM卡状态
AT+CSQ      : 查询信号质量
AT+CGATT?   : 查询是否附着网络


以上图片是入网成功的情况,如果不成功则需要检查SIM卡有没有插反、COM号有没有选对等等。

开发板OPENMCU开发

OPENMCU是一种以模块作为主处理器的应用方式。这里就是把移远的EC100Y LTE Cat1无线通信模组作为主处理器的应用。

1、SDK软件开发包


我们主要需要关注的是ql-application文件夹,一般的开发主要都是在这里面添代码。

2、生成固件

(1)编译环境

一种方法是自己搭建相关编译环境,另一种方法是直接用SDK包里面的编译工具。SDK包中相关的工具在ql-cross-tool中。

为了简单省事,我们直接使用SDK包给我们提供的编译工具。

(2)编译流程

(图片来自移远官方文档)

可见,固件打包需要用到一些镜像,主要分为四大块:kernel镜像bootloader镜像app镜像其它镜像

SDK包中有两个编译相关的批处理文件:build.batbuild_all.bat。其中:

build_all.bat:提供整体编译的功能,即双击这个批处理文件就会执行上面四大块镜像的编译及打包生成固件的过程。但一般我们都只是修改APP相关的代码,没有必要全部编译。

所以,SDK包中给我们提供了build.bat批处理文件,我们可以在命令行指定一些参数来执行相应的过程,如:

build.bat bootloader命令:只编译bootloader
build.bat kernel命令    :只编译kernel
build.bat app命令       :只编译app
build.bat firmware命令  :生成固件包

因为我们平时开发基本上只是修改了app,所以大多数情况下都是只需要这两条命令:

build.bat app命令       :只编译app
build.bat firmware命令  :生成固件包

win7环境下在sdk路径下快捷操作进入cmd窗口的方法:


与上面操作相同,在win10环境下可在sdk路径下进入Power shell窗口。当然,win10下也可以进入cmd窗口,然后再进入sdk路径。

其中,在Power shell窗口中运行的编译命令与在cmd窗口中运行的编译命令有点不一样,在Power shell窗口中需要加上.\,如:


执行这个编译命令时,会自动找到ql-cross-tool里的编译工具来编译我们的程序。

生成固件操作:


固件存放的路径:


我们并没有编译bootloader与kernel,那么生成固件需要的bootloader镜像与kernel镜像又是从哪来?

其实,SDK包给我们提供了一组出厂的镜像,存放在路径ql-sdk\ql-config\quec-project\aboot\images下:


所以,当我们执行完编译app的命令,并执行生成固件包的命令时,大致过程如下:


当我们需要恢复出厂设置的时候,可以下载出厂自带的那组镜像,此时我们需要先执行如下清除命令:

build.bat kernel/bootloader/app clean命令

分别清除这三大模块编译生成的一些文件,然后再打包生成固件。

(3)实操:输出helloworld实验

sdk包中已经给我们做好了一个hello例程:


一般printf都是重定向到串口,小熊派4G开发板也有引出debug串口的排针孔,我们可以焊接排针来使用;但是小熊派这里给我们提供了另一种更方便的方法,重新封装一个打印函数,打印信息通过USB口输出。

还需要注意的是Makefile文件的修改。这里需要修改两个Makefile文件,一个是ql-sdk\ql-application\threadx\interface\init\example下的Makefile文件:


另一个是ql-sdk\ql-application\threadx\下的Makefile文件:

编译、生成固件前面已经介绍过了。下面看一下如何下载固件到板子里:

打开aboot工具,找到我们编译生成的.zip后缀的固件,点击start:


下载成功,点击back返回。然后按下板子的RESET键复位板子。


这里需要随意发送一串字符串触发我们的输出,至于为什么要这样,后续还需研究研究。

另外,有些电脑可能识别不出这个USB串行设备,那打印输出的信息就没办法从USB口输出。

我有两台电脑,刚开始用另一台开发,发现一直识别不出这个USB串行设备,各种重启、重装驱动的方法也都试过,还是没用。然后我换用另一台电脑,另一台电脑竟然可以识别。所以可能原因有:

① 电脑USB口输出电流不足。小熊派这个USB口的输入的电流有一定的要求,电脑的USB口输出的电流不足板子可能就不正常;

② 操作系统的问题。我一台电脑装的是win7、另一台电脑装的是win10。装win10的那台电脑可以正常识别这个USB串行设备,win7的那一台识别不了。

(4)实操:LED实验

我们创建一个example_led.c文件,与上面的example_helloworld.c放在同一个路径下,并编写如下代码:

左右滑动查看全部代码>>>

#include "ql_application.h"
#include "ql_gpio.h"
#include <stdio.h>

/* led配置表 */
static quec_gpio_cfg_t led_gpio_cfg[] =
{
 /*---引脚号-----------引脚方向---------引脚边沿--------内部上下拉--------引脚电平---*/
 {GPIO_PIN_NO_75, PIN_DIRECTION_OUT, PIN_NO_EDGE, PIN_PULL_DISABLE, PIN_LEVEL_LOW},

 // 其它GPIO配置......
};

/* led测试任务 */
static void led_test(void * argv)
{
 /* 用户LED引脚初始化 */
 ql_gpio_init(led_gpio_cfg[0].gpio_pin_num, led_gpio_cfg[0].pin_dir, led_gpio_cfg[0].pin_pull, led_gpio_cfg[0].pin_level);

 while(1)
 {
  ql_gpio_set_level(led_gpio_cfg[0].gpio_pin_num, PIN_LEVEL_LOW);
  ql_rtos_task_sleep_s(1);
  ql_gpio_set_level(led_gpio_cfg[0].gpio_pin_num, PIN_LEVEL_HIGH);
  ql_rtos_task_sleep_s(1);
 }
}

application_init(led_test, "led_test"22);

这里需要注意的是:这里的引脚号并不是原理图上标的(原理图上标的是引脚名)。

每个引脚都有好几种模式/功能,我们需要查看《Quectel_EC100Y_QuecOpen硬件设计手册V1.0.pdf》的功能复用表查看真正的引脚号:


这里我们创建了一个led配置表,方便添加、修改LED的配置。创建表的形式有时候更清晰一些,关于表驱动的相关文章:

C语言精华知识:表驱动法编程实践

空间换时间,查表法的经典例子

修改同目录下的Makefile文件:

编译、生成固件,下载固件,可以看到LED闪烁的现象。

以上就是本次的分享,关于小熊派4G开发板更多教程资料可查看小熊派B站视频:

4G Cat.1开发实战教程" data-miniprogram-imageurl="http://mmbiz.qpic.cn/mmbiz_jpg/PnO7BjBKUzibcora7LAed2uv9Q5aribd392fgF6jGQ3iche9RBCkwkPicfHJdXlGI2vY02wjGpic0SBuDUyvtCrI4hg/0?wx_fmt=jpeg" data-miniprogram-type="card" data-miniprogram-servicetype="0">


猜你喜欢

C语言、嵌入式应用:TCP通信实例分析

一些不可不知的计算机网络基础

AT指令测试ESP8266通信模组并获取天气数据

最后

若觉得文章不错,转发分享、在看,也是我们继续更新的动力。

在公众号内回复更多资源,可免费获取嵌入式资料。期待你的关注~


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

基于米尔-全志 T527设计一个简易的物联网网关,该网关能够管理多台MQTT设备,通过MQTT协议对设备进行读写操作,同时提供HTTP接口,允许用户通过HTTP协议与网关进行交互,并对设备进行读写操作。

关键字: 物联网 开发板 网关

本次直播STM32将联合合作伙伴米尔电子,深入探讨如何利用STM32MPU产品系列推动工业行业的产品开发。为您带来一系列详细的产品展示、核心板的应用案例和行业专家的深度分析。

关键字: STM32MPU 开发板

业内消息,上周德媒报道慕尼黑地区法院作出一审判决,认定三星电子在生产的移动通信设备中侵犯了由大唐拥有的4G标准必要专利。

关键字: 三星 大唐 4G 专利

Linux系统平台上有许多开源的系统构建框架,这些框架方便了开发者进行嵌入式系统的构建和定制化开发,目前比较常见的有Buildroot, Yocto, OpenEmbedded等等。

关键字: 树莓派 瑞米派 开发板

NXP在处理器板块耕耘多年,从早期的i.MX 6 → i.MX 7 → i.MX 8,再到最新的i.MX 9都已经有一条完整的生态链以及很多客户基础。i.MX 93是NXP i.MX 9产品组合中最新的一个系列。i.MX...

关键字: 核心板 开发板

近日,米尔电子推出米尔基于NXP i.MX 93系列产品-MYC-LMX9X核心板及开发板。NXP i.MX 9系列在i.MX 6和i.MX 8系列产品市场验证的基础上,继承了前代产品的优点的同时,进一步提升了性能、资源...

关键字: 核心板 开发板 处理器

我们先实现 dmaion buffer 管理器,这里贴的代码省略了异常错误处理的逻辑,有个坑是 linux-4.9 和 linux-5.4 用法不一样,米尔电子的这个T113-i系统是linux-5.4,所以不兼容4.9...

关键字: 核心板 开发板

一直以来,5G手机都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来5G手机的相关介绍,详细内容请看下文。

关键字: 5G 手机 4G

以下内容中,小编将对5G手机的相关内容进行着重介绍和阐述,希望本文能帮您增进对5G手机的了解,和小编一起来看看吧。

关键字: 5G 4G
关闭
关闭