本帖最后由 鱼柯1412 于 2020-6-7 18:11 编辑
拿到麻雀的板子很长时间了,期间在做另外项目,有点坑要填,所以...晚了一段时间,打算将麻雀从开箱到项目完成文档放在一个帖子里。
使用麻雀的过程中,个人能力的问题,遇到一些坑,填坑的记录放在自己的公众号上(其实就是一些私人笔记),所以如果你在其他地方看到和本片帖子相关的内容,不要说这是从xx地方抄来的...
说了那么多废话,上开箱
[开发板]麻雀1号-01_开箱 搞了一块麻雀1号,开心,尝试下不同的MCU。板子是从rt-thread那里搞来的,确实小巧的很。 麻雀一号开发板采用的主控芯片是 BK7252 , 是一款高性能 WiFi 模块,采用高集成的无线射频芯片,内部集成 2.4GHz Wi-Fi 1T1R 先进技术,支持摄像头图像输出,拥有最佳的功耗性能、射频性能、稳定性、通用性和可靠性,适用于各种应用和不同产品需求。模块内部拥有 512KB 内嵌 RAM 和 4Mbyte Flash 空间,CPU 主频高达 180Mhz。并且集成了天线开关、功率放大器、低噪放大器、过滤器、电源管理模块, 支持 802.11e 以及 WMM-PS 协议, 支持 WPA、WPA2 和 WAPI 安全协议,同时集成了蓝牙 BLE 收发器,支持 BLE4.2,支持主机或从机模式。 RT-THREAD BK7252 麻雀一号开发板使用文档_20191112
片子是Beken 博通集成电路(上海)的,上他们官网转了一圈。没有资料,流汗。所有的芯片都只是弹窗介绍下功能,甚至连性能参数也没有,datasheet更是不用考虑了。
file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/beken.png?lastModify=1591523698 好吧,终于在rt-thread提供的包里面找到了datasheet。只有25页,里面只有功能描述如下图这样的。哎,这么多年看过最简单的datasheet。 file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/beken_datasheet.png?lastModify=1591523698 板上资源生活还是要继续, 看下板上资源,图来自于 RT-THREAD BK7252 麻雀一号开发板使用文档_20191112 file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/board_up.png?lastModify=1591523698 file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/board_down.png?lastModify=1591523698 开箱使用即是rt-thread出品的,finsh必然自带。上电,usb到pc,打开secureCRT,tab。出厂的一些cmd,大概瞄了一下。配一下网。 wifi ap scan
wifi ap join {ssid} {password}连到家里wifi, ntp_sync 同步一下时间, Get local time from NTP server: Sun Apr 12 20:05:57 2020
The system time is updated. Timezone is 8.可以,最基本的功能,wifi没问题了,其他的按键,lcd,led肉眼可见的功能,看看,按按就好。 代码更新方式数据手册里有这样一句化 Multiplexing program download and JTAG interface BK7252_Data_Sheet_V1.0
之所以要写开箱,是这个板子的代码更新的方式。按rt-thread手册所述,有三种: 没有看到详细说明,只能自己猜猜: 我最好奇的是无线烧录,这个无线烧录应该是一个webserver,通过wifi和pc建立连接后,浏览器访问无线烧录器,通过http post 到 无线烧录器,然后无线烧录器将bin文件 download到target上,可是没看到无线烧录器和核心板的接口管脚是?按框图理解,应该是uart。 有线的烧写工具,上位软件专有的烧写软件(主要是烧写算法),pc->有线烧写工具-spi->target。 ota升级是要bootloader和数据转存的app。这部分只能通过先把带有[bootloader, app] 的bin文件通过1,2方法下载到target中以后才能使用。
编译,生成all.bin 遇到首坑 file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/scons_error.png?lastModify=1591523698 后面发现问题,自己拿到rt-thread喜欢先menuconfig一下,看看板上实现哪些功能等等。menuconfig 每操作一次,就会把当前路径的rt_config.h的文件修改一下,而scons需要从这个文件找项目的依赖,这个就是问题症结了。这个sdk中的rt_config.h 可能前期用menuconfig配置过,后面一直手动添加依赖宏。换会初始的rt_config.h, 嗯,还好编译成功了。 无线烧录按照手册打包bin文件 file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/package.png?lastModify=1591523698 浏览器打开无线烧录器默认的 IP 为192.168.169.1,定位到固件位置,上传固件就可以了。 file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/download.png?lastModify=1591523698 先点个灯 file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/led_sch.png?lastModify=1591523698 官方的{sdk_root}/test/gpio_demo.c 添加了下面代码;编译 // LED1_PIN_NUM p13
static void pin_led_blink(void)
{
int i = 0;
rt_pin_mode(LED1_PIN_NUM, PIN_MODE_OUTPUT);
while (i++ < 10)
{
rt_pin_write(LED1_PIN_NUM, PIN_LOW);
rt_thread_mdelay(500);
rt_pin_write(LED1_PIN_NUM, PIN_HIGH);
rt_thread_mdelay(500);
}
}
MSH_CMD_EXPORT(pin_led_blink, blink led);
顺便再试试ota升级, ota打包,特别注意版本号,应该要不等于当前内部版本号 file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/ota_package.png?lastModify=1591523698 配置本地http服务器 file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/config_server.png?lastModify=1591523698 http ota,可以了,官方这个ota好像有断点续传功能,http_ota拉文件,失败了好几次,每次都是从上次失败的地方继续拉。 file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/upload_scuessed.png?lastModify=1591523698 tab键,可以了,刚才添加的函数,运行一下,结束本篇; file://D:/WorkSpace/95_Subscription/%E5%BC%80%E5%8F%91%E6%9D%BF/%E9%BA%BB%E9%9B%801%E5%8F%B7/$%7BPic%7D/run.png?lastModify=1591523698 总结:这东西没有rt-thread给的sdk,还真不好搞 芯片手册,几乎没有; menuconfig同时手动配置rt_config.h是一个坑; http ota 每次update后,都要重新wifi ap scan, wifi ap join,不方便,调试阶段还是用无线烧录器; 但是这里的无线烧录器和http_ota的断点续传我很喜欢;
|