本帖最后由 JMU2010 于 2020-6-14 09:09 编辑
1. 引言先简单聊一下我与MM32的故事。 在去年,我开始做BLDC的项目,于是开始学习了解各家的mcu及其解决方案。有幸获得了灵动微电子的MM32 SPIN系列开发板,给我的感觉是开发板做工精良,开发配套资料很全,FAE支持也很及时,我想有机会也要去了解其他系列,这不,机会就来了嘛。 2. 关于开发板学习使用一款新的mcu及其解决方案,要先把相关的软硬件资料准备好。推荐去灵动官网下载相关资料。 以下为链接地址:http://www.mm32mcu.com/download1.aspx 由于MM32系列很多,我们可以根据自己的需要下载对应的资料,如我们手中的 Mini board 搭载的是 MM32L073,下载相关资料即可。
2.1 硬件资料这个链接里的文档附有原理图和操作手册,建议仔细查阅。
2.2 软件资料这个链接里有库函数和相关的 Demo,建议仔细查阅。
2.3 开箱点评:元器件都在正面,反面啥也没有。开发板摸上去手感很好。
2.4 硬件资源盘点我手中这一款是MB-023,根据相关文档可知,其具备以下模块: - CN2, Power And Debug
- CN3, Power,稳压输出3.3V
- 4个LED灯
- 4个按键
- 支持 Arduino 接口
- CN4, UART接口
- CN5, CAN接口
- 1个蜂鸣器模块
- 8MHz晶振
- SPI Flash模块
- AT24C02, EEPROM存储模块
- 板载仿真器
点评:板载资源非常丰富,有点超出期望了。之前玩过的STM32评估板资源很少,只有板载调试器+ mcu 最小系统。做原型样机开发时,连接很多外部模块时就显得不方便。相比较而言,MM32就考虑更周全了。嵌入式开发的最常用的模块都有,有了这款开发板,很方便做原型样机验证,这里,给灵动点个赞。
2.5 软件Demo演示有了板载调试器,用一根 Micro USB 数据线连接好就可以进行开发调试了,很方便。 软件库支持最主流的两大编译器:Keil 和 IAR. 首次使用L073系列,需要安装 Pack 包。 下载解压后,双击安装即可。 点灯程序,号称嵌入式世界的 "Hello world". #include "delay.h"
#include "sys.h"
#include "led.h"
int main(void)
{
delay_init();
LED_Init();
while(1)
{
LED1_TOGGLE();
LED2_TOGGLE();
LED3_TOGGLE();
LED4_TOGGLE();
delay_ms(300);
}
}
需要注意的是:仿真调试时需要手动选择一下仿真器型号。 效果:4个IO口间隔300ms翻转,可以看到4个LED灯在闪烁。 3. 项目实战3.1 项目描述使用 MM32 驱动步进电机工作,步进电机有工作头,进而完成一些自动化的任务。
3.2 步进电机控制原理当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。 简单来说,驱动器的四个 IO 口需要规则的脉冲信号,如间隔一小段时间的0b1000->0b0100->0b0010->0b0001,驱动信号一直循环下去电机就可以一直旋转。
3.3 主要代码int main(void)
{
static uint8_t s_u8Step = 0;
delay_init();
LED_Init();
while(1)
{
switch(s_u8Step)
{
case 0:S1_OFF();S2_ON();S3_ON();S4_ON();break;
case 1:S2_OFF();S1_ON();S3_ON();S4_ON();break;
case 2:S3_OFF();S1_ON();S2_ON();S4_ON();break;
case 3:S4_OFF();S1_ON();S2_ON();S3_ON();break;
default:break;
}
s_u8Step++;
if(s_u8Step >= 4)
{
s_u8Step = 0;
}
delay_ms(5);
}
}
// 步进电机引脚控制
#define S1_ON() GPIO_ResetBits(GPIOA,GPIO_Pin_4) // PA4
#define S1_OFF() GPIO_SetBits(GPIOA,GPIO_Pin_4) // PA4
#define S1_TOGGLE() (GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_4))?(GPIO_ResetBits(GPIOA,GPIO_Pin_4)):(GPIO_SetBits(GPIOA,GPIO_Pin_4)) // PA4
连线说明: 驱动器的电源来自开发板的 5V 和 GND 。 驱动器的 IO 信号来自开发板的 PA3~PA7,需全部设置为GPIO的输出引脚功能。 实测效果:步进电机旋转一周大约5s。 小结最后,总结一下总体感受。 - 开发板做工精良
- 板载资源丰富,原型开发验证方便
- 软件资源齐全,与主流开发工具无缝对接
- 软件库与STM32相似度较高,便于开发人员快速上手。
|