国产MCU之光 第38期“我与极海APM32 MCU的故事”获奖作品精选
*阅读说明:排名不分先后,详细过程及源码资料等请戳原链接查看。
1、前言 作为一个DIYer,我囤的“小芯库”是见底了。一个应用方案或开发板上用一颗甚至好几颗MCU的奢侈年代已经一去不复返,但也因此萌生了使用国产优质芯片做“核心模块板”的想法。 拿到前不久申请的几颗极海APM32F407ZGT6样品,就准备用来试试水。仿照Raspberry PI Compute Module做一个基于APM32F407的Compute Module板。 2、整体设计 MCS Compute Module 1(以下简称CM1)是一个使用ARM Cortex-M4 32位微控制器作为核心,拥有板载WIFI & BLE 5.0、Ethernet接口的计算模块。同时用B2B接口保留407大多数外设核心功能,以满足不同开发底板的需求。 3、硬件设计 4、点个灯 板子做好时,发现RT-Thread 4.1版本已经支持APM32F407系列开发,那话不多说,直接用RT-Thread Studio上操作系统点灯。 5、上个云 设备要上云,肯定需要联网媒介,这里使用板载的ESP32 C3 WROOM模块,并写入ESP官方AT固件。 6、加个小程序buff 7、画个饼 接下来准备做个基于CM1的IOT扩展板、电机扩展板、触屏小终端、各种应用例程等等可以充分发挥APM32F407芯片性能的DIY 8、资料代码
我与APM32的故事: 在此基于APM32F10x_SDK,体验一把标准库函数开发的魅力; 以下是第一个应用:实例Eg1_KeyTest 我们想要测试一下按键的按下功能,主要是测试使用APM32F10x_SDK的库函数开发测试GPIO 输入模式的使用; 1、硬件设计 2、软件设计 首先关于新建工程,我们直接使用官方的Examples下面的GPIO例子,将输出改成输入模式。 3、下载验证 我们通过我们自有的仿真器模块WCH-link(DAP模式)把程序下载进去即可,仿真器需要选择CMSIS-DAP Debugger;
我们公司采用APM32F003F6P6芯片,主要想用它的ADC和SPI功能。下面就是我跟极海芯片的三次碰撞: 第一次碰撞,公司想做一个多路ADC的采集设备,用了NTC测温,用了AIN4、AIN5和AIN6管脚,一共是2路,1路加热和1路制冷。下面是MCU部分的原理图。 第二次碰撞也是跟ADC有关系,是为了读取一个电池的电压,使用采集完成中断来读取的,期间还用了SPI 读取了一个集成按键模块TM1628,一开始读取按键工作还正常,但有次出门之后,回来发现,莫名其妙读回来一个按键被按下的标志位,最终发现是ADC采集完成触发中断打断了SPI的读取,修改操作是用检测ADC采集完成的标志位来判断是否读取完成,再切换通道。 第三次碰撞是在一次系统独立看门狗喂狗。
STM32F103xE芯片只有一个CAN,而APM32E103xE是有2个CAN,且相互独立。因此使用CubeMX生成的F103xE_CAN程序(HAL库),无法满足APM32E103xE的CAN2使用。故建立文档,进行程序修改说明,以供电子同胞们参考学习使用。
对于MCU来说,时钟是单片机能够稳定执行程序的关键。通常,单片机使用的时钟源为外部晶振。如果在一些重要的场合中应用时,单片机的时钟收到外界的干扰而导致时钟失效,从而使得单片机无法正常运行程序,系统卡死,可能会造成损失。如果单片机使用在安全生产场所,还有可能造成人身事故。因此,对于时钟的安全管理对于单片机来说至关重要。正好,在我刚刚获得的APM32F030Mini板中,有相关的功能存在。因此,下面进行探讨。 1 时钟安全系统(CSS) 2 程序编写
32单片机在之前的学习中并未接触过,APM32单片机是我接触的第一款cotex内核的单片机,同时为了锻炼快速上手一款单片机的能力,申请APM32f103Mini开发板挂载超声波HC-SR04模块进行程序编写调试。 0开发环境搭建开发环境采用Arm-MDK5.33版本,烧录工具为ST-Link,利用外接的usb-ttl CH340G模块将超声波测距数据利用串口上传到电脑便于调试分析。超声波模块固有排针引出的四个接口,依次为VCC Trig(触发端) Echo(接收端) GND,与开发板的接线为Vcc接5v供电,GND接GND,Trig接PA4,Echo接PA5。至此硬件电路配置完成接下来结合几张图讲述工程模板搭建过程。
在使用APM32F407的芯片时,我们的使用到了其一个非常有意思的存储区域“OTP”区域,这个区域与普通的Flash不一样。那它有哪些特性呢,又如何使用呢?且同我一一往下看。 1 、APM32F4的OTP区域 2、 OTP 区域的作用 2.1外部设备的校准值 2.2序列号的保存 2.3产品加密 3 、OTP 区域的使用 3.1自编程方式 3.2ISP 下载编程 3.3仿真下载编程 4 、总结&代码
APM32E103作为极海APM32F103系列的增强版,在保持原有的极好兼容性的基础上增加了双CAN外设,并且主频可以达到120MHz。 相比STM32F105系列,只少了USBOTG功能。因此就想尝试下在ST库的105库的配置上兼容APM32E103。 而APM32E103要兼容105的代码就有了两种方式: 1、更改宏定义改成103的MD或HD,这样库就会变更为103的设置,但这样105就不能使用修改后的代码。 2、了解寄存器的差异,对有差异的地方根据是103还是105进行选择执行,这样可以做到两个型号兼容一套代码。 下面也主要讲讲寄存器方面的差异点。
HSICLK是RC振荡器,精度没有晶振高,理想情况下数值是8MHz,在出厂时,会在3.3V、25℃下校准至±1%的精度,即7.92~8.08。 但是随着温度、电压的变化,该精度是会变化的。这个时候,可以通过配置HSITRM进行微调。通过实验,记录了手中的MCU调整的范围。
|