当前位置:首页 > 公众号精选 > 嵌入式ARM
[导读]应读者要求,嵌入式ARM将继续介绍能够替代STM32的国产产品。


应读者要求,嵌入式ARM将继续介绍能够替代STM32的国产产品。 今日带来能够完美替代STM32的产品是灵动微的MM32 MCU。

MM32是一个全球化的MCU产品,灵动微在上海设立芯片设计及运营中心,借助上海晶圆代工、封装测试完整产业链,确保灵动MCU从研发到生产一条龙进程;在南京设立软件及方案中心,一个50人规模的团队充分保障MCU方案的研发;深圳则建立销售及技术支持中心,可第一时间给予客户服务支持;此外还有香港建有海外运营及客服务中心,在台湾新竹的前不久刚成立东亚营销及方案中心。这使得MM32在中国形成多据点、本地化布局,以及时、快速的响应服务广大客户。
最新发布的MM32 MCU产品家族的五大产品系列,包括MM32 F系列通用高性能微控制器产品、MM32 L系列低功耗宽电压微控制器产品、MM32 W系列无线微控制器产品、MM32 P系列超小封装微控制器产品以及MM32 S系列安全加密微控制器产品。
根据21ic坛友火星国务卿的总结,MM32拥有以下亮点:
亮点一:MM32F的强悍之处
MM32F1主频高达168MHz,Flash/SRAM高达512KB/128KB,并有丰富的接口,据悉将在第四季度供货。
另一款MM32F0,标准主频全面升级到72MHz,保留超频潜力,相比通常只有48MHz主频的MCU提升不少。另外新增MM32F031C8T6系列对客户已经有百K级的交付。娄方超表示,针对近期MCU市场供不应求甚至炒货的情况,灵动微电子承诺只要有货绝不存货,准时发货,同时价格保持不变。
亮点二:L系列低功耗宽电压
灵动低功耗宽电压MCU系列具有全球主流低功耗MCU水准,超宽的工作电压, 同时MindSafe强大的安全功能,坚固的代码保护和数据流加密等。
亮点三:无线MCU
支持无线连接方式BLE,支持OTA(空中升级),sub 1GHz(将于2018年Q1支持)。
MM32无线系列的W0/W3产品,与F/L系列全部管脚兼容,并首次提出无线MCU原位替换通用MCU,同时还提倡让无线变成标准接口理念。
亮点四:P系列超小封装
亮点五:MindSafe技术
除此之外,灵动MM32已经建立了丰富成熟的生态系统,用娄总的话说,七年时间做MCU,其中五年优化生态,可见完善的生态系统对MCU产品的重要性。这个生态系统包括了应用文档、库函数与样例,开发评估板、解决方案、仿真工具以及在线支持等等。
灵动首席科学家刘强表示,基于灵动MM32开发平台,传统的库函数、例程、外设得以自然融合,给开发者以极大的便利,十倍百倍的提升开发效率,有效降低开发风险,并且使得开发成果易于复用、重用和维护。灵动还将推出在全球业界领先的SMART敏捷开发平台,将本土MCU开发水平提升至世界水准。


多说无益,直接看几个21ic家网友的测评:
【MM32 eMiniBoard测评报告】+ 裸机多任务工程
用户:BinWin
首先感谢厂家和社区提供这样一个直接体验产品的平台和机会。希望如此大力的推广可以收到较好的效果,加深工程师对灵动的印象,未来更多的产品内蕴藏着灵动微电的中国芯。
下面要看收到的物件了,整个板卡沉稳黑色,且期间布局比较美观整齐,接口靠近板边,看得出设计者考虑的还是比较细致的。
另外板载MM-LINK调试器,含虚拟串口,对调试来说很是方便,一根USB线就解决了烧录和串口打印。
加上厂商有编程的上位机软件,配套调试器堪称全家桶。EEPROM存储器,CAN控制器, FLASH存储器也都板载,可以进行SPI和I2C协议的调试,三个电位器接在ADC端口上。这些组成让板卡可以开箱即用,实现项目的初期调试。
说了这么多,看下实物照片。

同样给了黑色的背景
展示完了硬件,来烧录个程序看看吧。利用定时器设计时间片任务轮询,添加按键检测,LED提示,蜂鸣器响应,停机模式触发,串口打印信息几个任务,通过这些代码的调试体验改MCU的开发难度和外设易用性,也可评估低功耗特性和稳定性。下面看主要代码。
#include "main.h"#define TASKS_MAX 4typedef struct _TASK_COMPONENTS{uint16_t Run; uint16_t Timer; uint16_t ItvTime; void (*TaskHook)(void); } TASK_COMPONENTS; static void System_Task(void);static void Uart_Process(void);static void Key_Scan(void);static void AdcTemp_Samp(void);static TASK_COMPONENTS TaskComps[] ={ {0, 10, 10, Key_Scan}, {0, 200, 200, Uart_Process}, {0, 500, 500, AdcTemp_Samp}, {0, 1000, 1000, System_Task},};void TaskRemarks(void){uint16_t i;for (i=0; i {if (TaskComps[i].Timer)  { TaskComps[i].Timer--; if (TaskComps[i].Timer == 0)  { TaskComps[i].Timer = TaskComps[i].ItvTime; TaskComps[i].Run = 1;  } } }}void TaskProcess(void){uint8_t i;for (i=0; i {if (TaskComps[i].Run)  { TaskComps[i].TaskHook(); TaskComps[i].Run = 0;  } } }static void System_Task(void){ bsp_LedToggle(1);}static void Uart_Process(void){//printf("hello mm32\r\n"); bsp_LedToggle(2);}static void Key_Scan(void){uint8_t ucKeyCode; bsp_KeyScan(); ucKeyCode = bsp_GetKey();if(ucKeyCode != KEY_NONE) {switch (ucKeyCode) {//stop mode ,turn off adc ,set gpio aincase KEY_DOWN_K1:printf("\ninto stop mode\r\n");for(uint8_t i = 1; i < 5; i++){ bsp_LedOff(i); } HSI_SYSCLK(); Sys_Stop();break; default: bsp_LedOff(4); break; } }}static void AdcTemp_Samp(void){uint16_t adcVal;float Temp; adcVal = ADC1_SingleChannel_Get(ADC_Channel_10); Temp = 27.0 + (adcVal - 1800) / 5.96;printf("\ncpu temp is %.2fC\r\n",Temp);}int main(void) { Hal_Init();printf("\ninto normal mode\r\n");for(;;){ TaskProcess(); }} 板载按键K3按下后进入停机模式,这里没有做IO的配置和ADC的关闭操作。吐槽一下,这块板卡个人认为特色就是USB和低功耗。然而电路上没有可以方便测量工作电流的接口,或者有个电阻磁珠啥的可以挑开测测也行,但是看了原理图,没有。简单测了下整块的工作电流如图,这包括了调试器电路和板载其他期间的使用。
  上电任务开始运行后,进入停机模式之前,LED1以0.5hz闪烁,LED2以1hz闪烁,ADC任务采集核心温度,串口打印如下图,内心凉凉。    工程结构如下所示   整个工程的建立和调试相对于其他厂商来说还是很便利的,而且库函数的很多寄存器与常用的MCU比较近似,所以寻求替换的朋友们可以尝试了。应该说成本敏感和地方,确切外设应用的地方,使用MM32是比较有优势的。从demo板的设计与资源来看,厂家的支持应该也不错的。整体体验暂如此,接下来的小项目中继续挖掘详细的内容。 【MM33 eMiniBoard测评报告】+我的评测总结 用户: hu9jj 

有幸获得了MM32 eMiniBoard的评测机会,自从上月20日收到这块小巧精致的评测板之后,我立即开始了评测过程,在短短的半个月时间里,我测试过厂家提供的ADC、I2C、UART、INT、TIM、PWM等例程。对于ADC转换还同时对比测试了固件库和寄存器两个版本,测试了开通DAM进行二阶滤波ADC转换以及多通道ADC转换。同时还用轮询法和中断法两种方式测试板载的四个按键,尽管K1按键没有测试成功,但其它按键的测试效果良好。还测试了定时器及PWM输出等例程。

除了测试板上集成的外设,我还测试了I2C驱动DS1307日历模块,成功地对日历芯片进行读写操作。测试了仿SPI驱动LCD_5110显示屏,测试了通过一线串口通讯驱动JQ8400语音模块等。

通过一系列的测试,MM32 eMiniBoard均能很好地与外设进行数据通讯,体现了良好的适应性能。

这次是我首次接触灵动公司的MCU产品,通过测试活动对MM32有了一定的了解,在测试过程中没有发现与主流同类产品有什么明显的差距,证明在普通应用中,国产的MCU同样也很出色。在厂家提供的资料中,最值得称赞的是同时提供了固件库和定时器两种版本,给象我一样准备学习寄存器编程的初学者带来了很大的便利,我经过ADC例程简单的对比,在相同功能情况下,寄存器版本比固件库版本的的代码要少很多,运行效率也更高。

然而在测试过程中也发现厂家提供的例程资料的不足部分,例如代码中LED的编号与电路图和板上丝印正好相反的问题、按键例程的引脚定义与实际不符的问题、TIM1例程中定时时间过长影响测试效果的问题等,这些现象表明厂家在提供资料时还需要严格把关,所有的例程都应该在指定板子上运行测试通过后再提供给大家,这样会给大家更好的感受。

尽管这次测试还不算完整全面,但从测试的结果来说,MM32表现还是很不错的,个人认为完全可以作为产品开发的选择之一。国产MCU的发展任重道远,也需要得到大家的支持,同时也希望灵动公司能进一步完善资料,为大家提供物美价廉的MCU产品。

具体测评来说:
翘首盼望了多天,一直没有快递的信息,今天上午忍不住,发邮件询问了快递号,下午就收到了。下面就是评测板的全貌——黝黑端庄:

这是评测板的背面——干净整洁:

板上有一个下载/调试接口和一个USB接口,另外还有一个三线串口(含GND)和CAN通讯接口,我迫不急待地连接好下载调试接口,随着一声短促的“嘀”声,评测板上四个不同颜色的LED便按照不同的频率闪烁起来了——绚丽多彩:

收到评测板并上电测试后,第二件必不可少的事情就是建立开发平台和自己的测试程序。相关的资料早已下载好了,只等评测板到了就可动手,万事俱备,只等东风。
一、开发平台的建立
我用的是Keil 5.28,先运行MindMotin.MM32L0xx_DFP.1.0.9.pack升级包,将MM32L0xx系统的相关参数添加到Keil中,此时Keil中就可以识别到mm32L0xx系列的MCU了。


再运行mm32_devkit.setup.exe程序,将mm32-LINK添加进去,此时keil中就可以选择到mm32-LINK,就可以下载烧录代码了。


  


我用的是WIN10系统,所以只需要做这两步就OK,据介绍:如果还不能正常烧录代码,则再运行mm32_usb_setup.exe程序。
需要注意的是,上述程序需要以管理员身份运行,否则有可以安装不成功。
二、测试程序的建立
厂家的资源中包含了固件库版和寄存器版两套各种外设的例程,完全可以直接拿来测试。我就是将其中的一个例程拷贝到自己的工程目录中,修改成自己的测试工程项目。
项目移动后,Keil中的包含路径及一些文件的路径需要修改,为了让项目资源自成体系,便于复制到其他电脑上使用,我将Device文件夹也拷贝到项目文件中。包含路径的修改相对容易,直接在KEIL中操作就行,如下图:

库文件路径的修改则比较麻烦,一个方法就是删除后重新添加,这样做就是容易漏添加文件,我是采取逐个修改文件的路径方法,在项目文件列表框中右键点击有惊叹号的文件名:

在弹出菜单中选择第一行:

在修改窗口中修改路径:

这是修改后的路径:

修改之后项目文件列表框文件名前的惊叹号便消失了。所有惊叹号消失之后,路径修改就完成了。
然后是编写测试的代码,与大部分测试者一样,首先是点亮LED,我选择的是流水灯,主程序的代码如下:

#include "delay.h"#include "sys.h"#include "uart.h"#include "adc.h"#include "led.h"  uint8_t ledn; /**********************************************************************************************************函数信息 :main(void)**功能描述 :**输入参数 :**输出参数 :** 备注 :********************************************************************************************************/int main(void){ delay_init(); LED_Init(); while(1) { switch(ledn){ case 0: LED1_ON(); LED2_OFF(); LED3_OFF(); LED4_OFF(); break; case 1: LED1_OFF(); LED2_ON(); LED3_OFF(); LED4_OFF(); break; case 2: LED1_OFF(); LED2_OFF(); LED3_ON(); LED4_OFF(); break; case 3: LED1_OFF(); LED2_OFF(); LED3_OFF(); LED4_ON(); } ledn++; if(ledn > 3) ledn = 0; delay_ms(100);  }} 编译代码通过,0错误,0警告: 

下载烧录完成:

最后是测试效果,LED灯不停地依次闪亮。

更多过程可见: https://bbs.21ic.com/icview-2968410-1-1.html?_dsign=50d64354
灵动微MM32 eMiniBoard的性能介绍 用户:火星国务卿
上海灵动微电子是国内专注于MCU产品及应用方案的供应商,致力于提供高性能、高质量的32位MCU产品元件。灵动迄今为止已完成数百余项产品设计,满足客户及市场多领域、多层次的丰富应用场景需求。灵动微一级代理介绍MM32 eMiniBoard相关资料。
MM32 eMiniBoard(MCU型号:MM32L073PF),MM32 eMiniBoard开发板照片及简介。
MM32 eMiniBoard 简介:MM32L073PF (Cortex-M0 MCU:128k FLASH、8k SRAM);板载SPI Flash芯片;板载IIC EEPROM芯片;板载CAN转换芯片;板载无源蜂鸣器;具备3个VR;具备4个LED;具备4个KEY;外设IO全部引出,方便快速搭载模块测试。
双USB接口,USB-1支持USB仿真、下载和调试,USB-2支持USB device和供电;板载MM32-LINK OB,可对主控MCU进行在线仿真、调试和下载;支持 Keil uvision/ IAR EWARM开发环境。

MM32L073F产品使用高性能的 ARM® Cortex®-M0 为内核的 32 位MCU,工作频率最高可达48MHz,并内置高速存储器,丰富的增强型 I/O 端口和外设连接到外部总线。产品系列工作电压为 2.0V ∼ 5.5V,工作温度范围包含-40◦C ∼ +85◦C 常规型和-40◦C∼ +105◦C 扩展型。多种省电工作模式保证低功耗应用的要求。适合于应用在电机驱动和应用控制、工业等。

灵动微新品MM32F0010替代8位MCU最佳方案

用户:王小琪

MM32F0010概述
灵动微电子新产品MM32F0010使用内核M0的高性能32位微控制器,工作频率最高可达48MHz,内置高速存储器,丰富的增强型I/O端口和外设连接到外部总线。MM32F0010系列工作电压为2.0V∼5.5V,工作温度范围(环境温度)-40◦C∼85◦C常规型和-40◦C∼105◦C扩展型(V)。多种省电工作模式保证低功耗应用的要求。并提供QFN20和TSSOP20共2种封装形式。灵动微总代理英尚微电子可提供开发板、例程及必要的FAE支持等产品服务。
根据不同的封装形式,器件中的外设配置不尽相同。这些丰富的外设配置,使得本产品微控制器适合于电机驱动和应用控制、医疗和手持设备、PC游戏外设和GPS平台、工业应用、警报系统、视频对讲、和暖气通风空调系统等多种应用场合。

QFN20引脚分布 TSSOP20引脚分布
ARMⲺCortex-M0核心并内嵌闪存和SRAM
ARM®的Cortex®-M0处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。

ARM®的Cortex®-M0是32位的RISC处理器,提供额外的代码效率,在通常8和16位系统的存储空间上发挥了ARM内核的高性能。MM32F0010拥有内置的ARM核心,因此它与所有的ARM工具和软件兼容。
内置闪存存储器
最大16K字节的内置闪存存储器,用于存放程序和数据。

内置SRAM
最大2K字节的内置SRAM

低功耗模式
产品支持低功耗模式,可以在要求低功耗、短启动时间和多种唤醒事件之间达到最佳的平衡。

睡眠模式
在睡眠模式,只有CPU停止,所有外设处于工作状态并可在发生中断/事件时唤醒CPU。

停机模式
在保持SRAM和寄存器内容不丢失的情况下,停机模式可以达到最低的电能消耗。在停机模式下,HSI的振荡器和HSE晶体振荡器被关闭。可以通过任一配置成EXTI的信号把微控制器从停机模式中唤醒,EXTI信号可以是16个外部I/O口之一、PVD的输出的唤醒信号。

待机模式
待机模式可实现系统的最低功耗。该模式是在CPU深睡眠模式时关闭电压调节器。内部所有的1.5V部分的供电区域被断开。HSI和HSE振荡器也都关闭,可以通过WKUP引脚的上升沿、NRST引脚的外部复位、IWDG复位唤醒或者看门狗定时器唤醒并复位。SRAM和寄存器的内容将被丢失。

总结

通用MCU看似简单,其实是一个很复杂的产品体系。MCU的特点不仅是简单的替代,更关键的是产品品质、供货保证、支持服务,需要广大的合作伙伴们一起配合支持。
从灵动微产品来看,包括了5个系列覆盖各种需求场景,而整个生态图来看,灵动微的各类支持也非常丰富。不过通病还是文档方面,不过相信在国产化进程中,灵动微会越做越好。
附:灵动微生态图







END

资料:21ic论坛,整理:付斌

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

换一批

延伸阅读

[康佳特] 针对边缘计算更宽广的工作温度范围——从高端COM-HPC到低功耗SMARC

针对边缘计算更宽广的工作温度范围——从高端COM-HPC到低功耗SMARC

Shanghai, China, 25 February 2021 * * * 在2021年德国纽伦堡世界嵌入式展(Embedded World)线上展会中,世界领先的嵌入式和边缘计算技术供应商德国康佳特聚焦客户端的加固挑战,推出了面...

关键字: 边缘计算 COM-HPC 嵌入式

[嵌入式云IOT技术圈] 带你看嵌入式云IOT技术圈的2021年规划

春节假期很快,一眨眼就要继续开启新的一年的奋斗历程,希望各位兄弟姐妹在牛年继续发奋图强,厚积薄发,争取在年底有更多的收获,实现牛年的目标和理想;而嵌入式云IOT技术圈将持续陪伴着大家,为大家带来更多的技术干货以及个人...

关键字: IoT 嵌入式

[嵌入式大杂烩] 一个值得学习的LCD驱动框架

今天看到大佬肖遥兄分享的一篇文章:【架构篇】嵌入式编程中如何给代码的结构分层提到了高内聚,低耦合,软件分层等等的概念。之前又有小伙伴在后台留言说让我分享一篇这样的文章,所以今天它来了!...

关键字: LCD 驱动框架 嵌入式

[strongerHuang] 嵌入式RTOS系统中使用内存保护单元(MPU)的好处

作者 | strongerHuang 微信公众号 | strongerHuang 先说明一下MPU,MPU有很多含义,我们常见的有: MPU:...

关键字: MPU RTOS 嵌入式

[嵌入式大杂烩] STM32 HAL 库 uS 延时的 3 种实现方式

CU BEMX 可视化初始化配置,结合 HAL 库,给我们开发带来了很多便利,但 HAL 库封装的延时函数目前仅支持 ms 级别的延时,日常很多情况下会用到 us 延时,特别是一些传感器的数据读取过程,对时序要求比较严格,us...

关键字: STM32 初始化配置 HAL

技术子站

关闭