本帖最后由 zhczlzhang 于 2022-9-12 16:18 编辑
收到AT-START-WB415有一段时间,本来我是打算把它更换到项目中去,去实现无线控制货架的功能。但是领导看到这块板子后,对我发出灵魂拷问。
1:这块板子你能缩小吗,他比咱们现在用的蓝牙模块大了几斤4倍。
2:价格如何,供应充足吗?
3:后端开发的同学已经忙成狗了,你能让他们抽时间配合你开发吗?
4:稳定性如何,最远距离多少?
我试用一段时间后,跟领导回答。
1:板子等真正要上的时候,我可以把它缩小,缩小1半是能保证的。
2:价格很便宜,某宝上面芯片价格大概12元左右,比现在在用的要便宜8元左右,供应要去谈,但我们量不多,淘宝应该就满足了。
3:我可以封装接口,在不改变协议的情况下进行移植,尽量不要修改后端与通讯协议。后端同学只需要查看数据正不正常就好。
4:稳定性还好,就是距离大概在6-7米左右,耗电量20ma左右,应该可以优化。
领导当时就问我,那你换他的意义何在,我答,我们要有后手。
最终还是不同意直接上,只是让我忙完手上项目后,抽时间熟悉,最好随时顶上去的可能。
然后,某一天我在调试电路板上程序的时候,因为DAP跟jlink都被其他工程师带走了,我要调试的设备电路板在柜子上固定比较不太方便拆装,但是又要接驱动,每次调试的时候,我都举着笔记本凑近设备在更新,因为没有那么长的线。
所以当我翻箱倒柜找调试器的时候,我忽然想到,为什么不做一个无线更新的IAP。
然后,花了一点时间调试,一个能用的蓝牙IAP就出现了,我只需要用电脑蓝牙连接AT-START-WB415。AT-START-WB415 MCU串口连接电路板串口,然后用蓝牙串口软件传输BIN文件给AT-START-WB415,AT-START-WB415再通过串口控制电路板进行更新。
以下就是过程。
首先打开官方提供的蓝牙开发SDK,找到:wb415_ble_demo_2.0.3\wb415_ble_demo_2.0.3\projects\ble_app_gatt路径下的名为wb415的Keil工程,然后打开。
友情提示,需要安装arm7,arm9的升级兼容包。
然后编译后,出现0错误。
然后打开:\SourceCode\wb415_mcu_demo_2.0.3\project\at_start_wb415\at_side\mdk_v5下的keil工程,然后编译打开。
友情提示,需要安装PACK包。
然后在雅特力官网下载AT32WB415入门使用指南(开发环设置与下载编译常见问题),参考AN0077_AT32_BLE_Application_Note_ZH_V2.0.4 4.24环节。
把BLE与MCU 2个文件都下载到开发板上。
这一步我看到论坛很多人都在讲,我就不说了。
下载完成后,找一个蓝牙串口助手,连接到 WB415-GATT 的蓝牙设备,进行文件传输,然后你就可以看到目标开发板进入了IAP更新。
这一步我本来是准备把公司的蓝牙串口助手截图给大家看一下,但是涉及公司产品,只能作罢。
在这里我要提几个注意的要点。
1:电路板的bootloader可以用正点原子自己IAP,也可以用自己的IAP。我用的IAP设定发送0A01进入bootloader,然后就可以开始接受数据进行更新。
2:接受缓冲区问题,我的电路板IAP接受缓冲区设定了252个接收到后就进行烧录到flash,使用正点原子那一章节的iap我的测试程序用的大概7K,烧录成功了,这一点大家注意下。
3:发送时间要有延时,通过蓝牙发送文件一定要注意设定一次最大发送字节长度,最大不超过512,我的无线蓝牙串口软件最大一次传输252字节,到达设定的最大值后延时50ms,然后再开始传输。
在tp_mode.h中,USART_RECV_LEN定义了接收的长度512.
实际上这次不能说是一个成品,只能说雅特力这次的demo开发的已经很成熟了,基本上拿来就用,我这边改动的不多,基本上就是麻烦桌面设计的同事给我做了一个软件,接下来我还要在BLE与MCU中嵌入缓冲区接收与CRC16来进行数值的校验,使它的可靠性更高一点。
此次涉及到公司的部分比较多,都是不能上传的,下次抽空我自己写一个QT的蓝牙串口软件,放给大家看。
|