灵动微电子MM32F0121C6P测评及烧录程序
分享作者:litpton
评测品牌:灵动微电子
评测型号:Mini-F0121-OB
发布时间:2025-01-15 14:00:05
0
前言
样片测评
开源口碑分享内容

       前几天申请到了一块灵动微电子的MM32F0121C6P的开发板,因为最近考试一直没发测评,今天来写一下,主要包括就是板子的一些参数,使用和如何烧录程序进去,本次烧录和oled屏幕的stm32的驱动程序的移植.

   可以在灵动微电子的官网(https://www.mindmotion.com.cn/products/mm32mcu/mainstream_line/mm32f_mainstream/)获得MM32的keil的驱动pack还有官方给的lib例程,以及MM32的用户手册和使用手册.

MM32F0120 微控制器搭载 Arm® Cortex®-M0 内核,最高工作频率可达 72MHz。内置     64KB Flash 存储器、3KB Data Flash 存储器和 8KB SRAM,并集成了丰富的 I/O 端口和 外设模块。本产品包含 1 12 位的 ADC1 个比较器、1 CSM 通用串行模块、1 16 位高级定时器、1 16 位通用定时器、3 16 位基本定时器和 1 个实时时钟(RTC)模 块,还包含标准的通信接口:3 USART 接口、1 SPI 接口和 1 I2C 接口。 本产品系列工作电压为 2.2V ~ 5.5V,工作温度范围(环境温度)包括 -40°C ~ 85°C 的工 业型和 -40°C ~ 105°C 的拓展工业型。内置多种省电工作模式保证低功耗应用的要求。

主要特点

内核与系统

32-bit Arm® Cortex®-M0

工作频率可达 72MHz

32 位硬件除法器

存储器

多达 64KB Flash 存储器

多达 3KB Data Flash 存储器

多达 8KB SRAM

Boot loader 支持片内 Flash 在线系统编程(ISP

时钟、复位和电源管理

2.2V ~ 5.5V 供电

上电/断电复位(POR/PDR)、可编程电压监测器(PVD

内嵌 144MHz HSI 高速振荡器

内嵌 30KHz LSI 低速振荡器DS_MM32F0120_Ver0.91

总览

支持最高 24MHz 外部时钟输入

外部 32.768KHz 低速振荡器

低功耗

多种低功耗模式,包括:睡眠(Sleep)、停机(Stop)和深度停机(Deep Stop

· 1 3 通道 DMA 控制器,支持外设类型包括定时器、ADCUSARTI2CSPI CSM

· 7 个定时器

1 16 4 通道高级控制定时器(TIM1),可输出 4 PWM 3 路互补 PWM

对,支持中心或边沿对齐 PWM 模式,支持硬件死区插入和故障刹车,可运行在最

144MHz 时钟下,通道 1~3 支持 PWM 移相输出模式

1 16 4 通道通用定时器(TIM3),可输出 4 PWM 或捕获 4 路输入信号,

支持霍尔传感器和正交编码器的解码,支持 IR 控制解码

3 16 位基本定时器 (TIM14 / TIM16 / TIM17),可输出 1 PWM 或捕获 1

输入信号。TIM16 TIM17 1 组互补输出,支持硬件死区插入和故障刹车

1 个配置了独立时钟的硬件看门狗定时器(IWDG

1 Systick 定时器:24 位自减型计数器

· 1 个实时时钟(RTC)模块

多达 42 个快速 I/O 端口

所有 I/O 口可以映像到 16 个外部中断

所有端口均可输入输出电压不高于 VDD 的信号

多达 5 个通信接口

3 USART 接口,其中 USART1 USART2 支持三线 SPI 模式

1 I2C 接口

1 SPI 接口

· 1 12 位模数转换器(ADC),支持最快 1μs 转换时间(1MSPS 采样率),配置 12

个外部通道和 1 个可采集内置参考电压的内部通道

· 1 个高速模拟比较器,内置 4 位电压参考

· 1 个通用串行模块(CSM),可接收和发送 1.2V 数字信号

· CRC 计算单元

· 96 位芯片唯一 IDUID

调试模式

串行调试接口(SWD) 接口

工作温度范围包括 -40°C ~ 85°C 工业型和 -40°C ~ 105°C 的拓展工业型

工作电压范围为 2.2V ~ 5.5V

   可以看到,相对于我们常用的stm32的c8t6,这块开发板给到的定时器数量,工作频率都是属于量大管饱的那种,性能相对优越,同时也使得资料比较多的stm32的程序案例更加容易移植进来,极大的方便了开发和学习,同时也自带了一个cmsis-dap烧录,可以直接使用typec进行烧录程序,方便我们的调试.

接下来是如何使用官方的例程,以及安装keil的驱动.

首先我们在官网上下载到这两个文件

解压出来文件后,我们选择MindMotion.MM32L0xx_DFP.1.1.3.pack双击进行安装到我们keil的pack里面,然后我们选择一个官方例程进行打开,我们选择一个gpio控制电平翻转的经典例程

打开后点开我们熟悉的魔术棒工具,将编译器版本设置成版本6的因为MM32不支持版本5的编译器,会直接报错的,debug方式选择cmsisdap即可,然后插入我们的数据线(如果出现识别不到设备的情况,换一根数据线试试,我的自带的数据线好像是坏的,忙活了半个小时也没烧录进去,给我气急了直接拿手机数据线插上去就好了,而且好像是板载程序的问题吧,用数据线插入之后直接被识别成U盘设备了,如果是官方设计的话可以注意一下这个点,总感觉会出问题,因为之前用的msp和stm的一些国外厂商的板子都没出现过这种情况,碎碎念~~~~),然后编译下载一气呵成,皆可以在板子上观察到led电平的翻转现象了

       下面是控制点灯程序的源码,还是能看出stm32标准库的影子的,这样的话也方便我们程序的移植.

void GPIO_Configure(void)

{

   GPIO_InitTypeDef GPIO_InitStruct;

   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);

   GPIO_StructInit(&GPIO_InitStruct);

   GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_14 | GPIO_Pin_15 ;

   GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;

   GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_Out_PP;

   GPIO_Init(GPIOB, &GPIO_InitStruct);

   GPIO_WriteBit(GPIOB, GPIO_Pin_14 | GPIO_Pin_15, Bit_SET);

}

/***********************************************************************************************************************

 * @brief

 * @note   none

 * @param  none

 * @retval none

 *********************************************************************************************************************/

void GPIO_IO_Toggle(GPIO_TypeDef *GPIOn, uint16_t PINn)

{

   if (Bit_RESET == GPIO_ReadOutputDataBit(GPIOn, PINn))

   {

       GPIO_SetBits(GPIOn, PINn);

   }

   else

   {

       GPIO_ResetBits(GPIOn, PINn);

   }

}

oled屏幕驱动程序的移植源码放在下面了,把后缀改成zip格式就可以用了

全部评论
暂无评论
0/144