小米标准模组+MCU 开发笔记之固件调试
- 背景
- 技术名词简介
-
- [● 小米IoT开发者平台](#● 小米IoT开发者平台)
- [● 小米IoT 模组](#● 小米IoT 模组)
- [● 固件](#● 固件)
- [● OTA](#● OTA)
- [● CRC32](#● CRC32)
- 固件双串口调试
-
- [● MHCWB6S-IB 模组资料下载](#● MHCWB6S-IB 模组资料下载)
- [● MHCWB6S-IB 模组管脚图](#● MHCWB6S-IB 模组管脚图)
- [● 上电调试](#● 上电调试)
背景
小米标准模组+MCU的开发过程中,由于部分官方资料较为古早,踩了很多的坑。
同时发现,网络上能找到的相关开发资料较少,特此进行开发过程记录。
本次开发过程记录,以MHCWB6S-IB为例
【已发布过的开发笔记】
小米标准模组+MCU 快速上手开发(一)------之固件下载
小米标准模组+MCU 快速上手开发(二)------之模组串口调试(本章)
【MHCWB6S-IB 硬件基础信息】
模组类型:Wi-Fi蓝牙双模模组
软件开发方式:小米标准模组+MCU | 基于小米SDK标准接口的独立模块开发
通信标准:802.11b/g/n
芯片平台:ESP32-C3
RAM: 400KB 剩余20KB
FLASH: 4MB 剩余416KB
模组尺寸:1213.52.5mm
感兴趣的宝子,可以点个赞+收藏,便于后期有需要的时候能快速找到~~
技术名词简介
● 小米IoT开发者平台
小米IoT 平台是小米面向消费类智能硬件领域的开放合作平台。
开发者可以借助小米IoT 平台开放的资源、产品,进行智能化解决方案的搭建,从而以极低的成本,和较低的技术门槛,在确保产品智能化水平的情况下,快速将方案落地,从而满足不同用户对智能产品的使用需求和体验要求。
接入小米IoT 平台的产品:
- 能够借助米家APP 变相对设备进行集中管理和控制;
- 能够被具有小爱同学能力的产品,如手机、电视及音箱等控制;
- 能够和其他接入小米IoT平台的智能产品间形成智能联动,实现真正的智慧化生活。
【官方技术平台链接】
小米IoT开发者平台:https://iot.mi.com/
小米模组商城:https://iot.mi.com/moduleBrowser.html
● 小米IoT 模组
模组是一个可以集成到目标电子系统的元器件,小米智能模组集成了小米IoT 平台开放能力,并已获取了主流的认证测试,能够使嵌入式系统连接到网络,并与小米服务进行通信。
小米IoT 模组是集成了小米IoT 平台开放能力的智能模组,智能模组均已获取了主流的认证测试。
使用时,开发者在选择产品接入方案并确定固件开发方式后,需选择使用相应的模组,并根据实际需要选择获取其他开发资源开发产品的智能化功能。
截至2024年2月,模组类型主要有:BLE-Mesh模组
、Wi-Fi蓝牙双模模组
、Wi-Fi单模模组
、透传模组
共四种。
PS:
1、目前,小米IoT 模组仅支持Wi-Fi 2.4GHz,暂不支持5GHz。
2、由于其他平台的模组并没有集成小米IoT 平台开放的能力,因此,未使用小米IoT 模组的设备无法接入小米IoT 平台。
3、小米IoT 平台已停止对新型号待接入产品使用Wi-Fi 单模模组ESP-WROOM-02U 和ESP-WROOM-02D(ESP8266系列)的支持,仅处于开发中或已上线的产品,仍可以继续使用并采购Wi-Fi 单模模组。
● 固件
指写入 EROM(可擦写只读存储器)或 EEPROM(电可擦可编程只读存储器)中的程序,是担任着一个系统最基础最底层工作的软件,是控制硬件产品与小米IoT 平台通信并执行指定功能的基础。
● OTA
OTA 为 Over-the-Air 的缩写,是对设备固件进行迭代升级的方式。
● CRC32
CRC 为 Cyclic Redundancy Check 的缩写,指循环冗余检查,是一种为了保证数据的正确而采用的验错手段,当使用的是 WiFi+BLE 模组,且使用 小米标准模组+MCU 开发模式时,需要在固件尾部添加CRC,小米提供了CRC32开发工具。
固件双串口调试
为使基于小米 IoT 模组/SDK 接入(即"直连接入")小米 IoT 平台的硬件产品能够符合小米 IoT 平台规范要求,开发者需根据小米 IoT 平台提供的产品接入方案、产品本身功能特性、团队实际的开发水平,选择合适的开发模式开发产品的固件。
● MHCWB6S-IB 模组资料下载
模组资料下载:https://iot.mi.com/moduleBrowser.html
● MHCWB6S-IB 模组管脚图
● 上电调试
如MHCWB6S-IB 模组管脚图,可看出,MHCWB6S-IB 模组共有两个串口。
- Log串口:是用来显示系统输出
- MCU命令串口:主要用来进行命令交互,如model指令下发,模组model设置等等。
● 串口工具:SecureCRT,或者 Putty 等串口调试工具
配置以ESP32-C3为例
• 端口:选择外接串口模块的串口号,如"COM3"。
• 波特率:115200。
• 数据位:8
• 奇偶校验:None
• 停止位:1
• 流控:取消选择"RTS/CTS"。
● Log串口使用方式:即模组开发板的USB接口,直接插入插槽即可交互。
● MCU命令串口使用方式:需要连接串口转接板(如CP1202 串口转 USB 板
,以下简称串口板
),
- 串口板的RXD和TXD 与 开发板的记得要交叉连接(如ESP32-C3为例,串口RXD连接板子GPIO7,串口TXD连接板子GPIO6)
如果无法通信,可以尝试对调一下再试试
- 串口GND连接板子GND
- 串口电源引脚悬空
● 无法正常通信连接,如何排查:
如果无法正常交互,需要进行以下几种尝试:
1、重复以上几个步骤,看是否有波特率等设置错误或者引脚链接错误。
2、查看CP1202串口驱动是否已经安装。
排查方法:插上串口板,在设备驱动里面可以看到 COM 口,如果设备驱动出现感叹号,需要重新安装串口驱动程序
● 正常通信连接,显示的log:
图中左边为Log记录,右边为MCU指令交互记录
注意:MCU发送指令时,一定要记得自动发送"附加位0x0DH"
【官方技术平台链接】
固件开发官方教程
https://iot.mi.com/v2/new/doc/embedded-dev/overview_fw_dev
平台配置------之固件开发指引
https://iot.mi.com/new/doc/accesses/direct-access/productcenter/develop-firmware