基于APM32F407的计算模块

作者利用极海APM32F407芯片制作了一款计算模块CM1,集成了WIFI&BLE5.0、以太网接口,并基于RT-Thread操作系统实现点灯操作。之后通过ESP32C3连接OneNet平台,实现了物联网设备的云端控制。计划未来将推出更多应用扩展板。
摘要由CSDN通过智能技术生成

01 前言

不知不觉,缺芯已经持续很长一段时间了,芯片价格飞涨,各种M4、M7系列开发板的价格也是水涨船高。作为一个DIYer,不知大家手里还有多少存货,反正我囤的“小芯库”是见底了。一个应用方案或开发板上用一颗甚至好几颗MCU的奢侈年代已经一去不复返,但也因此萌生了做能够复用的“核心模块板”的想法。
300

刚好拿到前不久申请的几颗极海APM32F407ZGT6样品,就准备用来试试水。仿照Raspberry PI Compute Module做一个基于APM32F407的Compute Module板。
300

02 整体设计

MCS Compute Module 1(以下简称CM1)是一个使用ARM Cortex-M4 32位微控制器作为核心,拥有板载WIFI & BLE 5.0、Ethernet接口的计算模块。同时用B2B接口保留407大多数外设核心功能,以满足不同开发底板的需求。

业余时间断断续续捣鼓了半个多月,第一版终于出来了。下面简单介绍模块板参数和开发过程。

核心配置

  • 极海 APM32F407ZGT6 168MHz 32-bit ARM Cortex-M4 CPU
  • 内部192KB + 外部2MB SRAM
  • 1MB Flash存储
  • 支持 IEEE 802.3的百兆以太网PHY
  • 支持 2.4 GHz Wi-Fi和Bluetooth 5.0(LE)
  • 支持USB 2.0
  • 支持SWD接口下载APM32F407程序
  • 支持USB-JTAG下载ESP32 C3程序

B2B接口

B2B接口做成统一的,保证后续设计的CM2、3、4等,能够在不同扩展板上兼容使用。

高速低速
LCD 8080接口 x 1GPIO x 10
DCMI-14bit接口 x 1UART x 2
Ethernet接口 x 1I2S x 1
OTG_HS接口 x 1CAN x 2
OTG_FS接口 x 1I2C x 1
SPI x 1
TIMER通道 x 10
TIMER互补通道组 x 1
SDIO-8bit接口 x 1
DAC通道 x 2
ADC通道 x 6

03 硬件设计

原理图

模块各部分原理连接图。
500

PCB

绘制PCB图,用BGA封装的估计好布线些,建议官方出些不同封装的芯片,满足不同应用场景的需求。
500

贴片

以下是人工智能贴片(狗头),画这块板时还赶上立创免费打样规则变更,又不见几十大洋。
500

04 点个灯

发现RT-Thread 4.1版本已经支持APM32F407系列开发,那话不多说,直接用RT-Thread Studio上操作系统点灯。

安装SDK

因为是自己设计的开发板,这里使用芯片支持包开发。

安装JLINK支持

JLINK v7.8以上版本已经支持APM32各系列,不想下载仿真时再多选几个选项的同学可以装个最新版。

创建项目

CM1用到的是APM32F407ZGT6,那么这里的芯片型号也是选APM32F407ZGT6,而RT-Thread选择4.1.0版本。
500

编写代码

应用程序

在main.c文件中加入LED闪烁和打印“Hello RT-Thread!”的代码。

配置晶振

要留意system_apm32f4xx.c默认使用外部晶振,且配置为8MHz的。因为CM1使用的是25MHz外部晶振,所以需要修改对应值。

下载和调试

下载程序。

启动RT-Thread Studio的串行终端。
300
可以看到串口打印的字符串。

完成点灯。

05 上个云

设备要上云,肯定需要联网媒介,这里使用板载的ESP32 C3 WROOM模块,并写入ESP官方AT固件。

配置ESP32 C3

ESP官方AT固件可以从gitee获取:

https://gitee.com/EspressifSystems/esp-at

AT固件默认使用ESP32 C3 UART1进行AT指令通信。而CM1是采用APM32F407 USART3与ESP32 C3 WROOM UART0通信的方式。所以需要修改官方固件配置。

修改默认UART口为UART0。

配置不从UART0输出log信息。

加载工程,并编译。

下载固件到ESP32 C3 WROOM。

从ESP32 C3 WROOM预留的调试串口发个"AT"字符,有回应就表示OK了。

具体支持的AT指令可以查看官方手册。
400

AT Device软件包

接下来就是使用APM32F407控制ESP32 C3 WROOM联网,这里就不重复造轮子了,直接在RT-Thread Studio上使用AT Device软件包(感谢RT-Thread团队)。

添加软件包

打开RT-Thread Settings,添加AT Device软件包。

配置软件包

配置at device软件包和UART设备驱动组件,并保存配置文件,WIFI和串口信息要根据自己设备的情况配置哦。

修改官方代码

官方代码还不很完善,自己添加用于透传的UART3配置。

300

400

编译下载

编译后重新下载,可以看到At device通信成功。

OneNet平台创建MQTT产品和设备

OneNet平台的操作有很多文章介绍了,大家可以参考官方文档。

https://open.iot.10086.cn/doc/multiprotocol/book/get-start/product&device/product-create.html

这里要注意的是,使用旧版“多协议接入”创建MQTT产品。不要问为什么不使用新版,问就是催更RT-Thread团队。创建完成后记录设备ID、鉴权信息、设备API Key、产品ID和产品API Key等信息。

OneNet软件包

该软件包只支持oneNET平台的旧版多协议接入(再次催更)。

添加软件包

配置onenet软件包并填入创建产品和设备时记录的相关信息。

配置完成后,会同时引用cJSON后WebClient软件包。

这时可以用onenet_sample代码进行测试。

编写OneNet应用API

官方的Demo不完善,可以自己仿照重写一个。

新增bsp文件

工程目录结构如下。
200

bsp_onenet文件msh命令定义如下。

原onenet软件包的http文件默认接收字符串数据类型的datastream。这些做简单转换,可以接收float等数据类型。

编译下载

在ESP32 C3连接上wifi后,在终端按tab键会打印出msh命令行。

初始化MQTT Server

发布数据

获取数据

OneNet平台

可以看到onenet平台上Template值变为24,也可以上传、读取bin文件做OTA、读取图片做图传显示等操作。

06 加个小程序buff

还没时间搞,先占坑。

07 画个饼

接下来准备做个基于CM1的IOT扩展板、电机扩展板、触屏小终端、各种应用例程等等可以充分发挥APM32F407芯片性能的DIY,感兴趣的小伙伴可以插个眼,蹲个后续。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MorroMaker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值