MM32F5260

MM32F5260 简介

MM32F5260 是一款搭载了基于 Arm v8-M 架构 32 位 Star-MC1 内核(兼容 Cortex-M33)的 MCU 产品,其工作频率可达 120MHz,配置浮点运算单元(Floating Point Unit, FPU)、数字信号处理单元(Digital Signal Processing,DSP)、信号间互联矩阵 MindSwitch、可配置逻辑单元 CLU、三角函数加速单元 CORDIC 等算法加速单元,并集成了丰富的外设模块和充足的 I/O 端口。

1.png

图1 MM32F5260示意图

LVGL 介绍

LVGL(Light and Versatile Graphics Library)是一个专为嵌入式系统设计的开源图形用户界面(GUI)库。它使用C语言编写,具有轻量级、可移植、灵活和易于使用的特点。LVGL提供了丰富的图形界面元素和灵活的布局方式,使开发者能够轻松为嵌入式设备创建交互式用户界面。

LVGL软硬件需求

基本上,每个能够驱动显示器的现代控制器都适合运行LVGL。最低要求是:

  • 16, 32 or 64 bit 微控制器或处理器

  • 推荐 16 MHz 时钟速度

  • Flash/ROM: > 基本要求:64 kB (> 推荐:180 kB )

  • RAM:

    静态RAM使用率:~2 kB,具体取决于使用的功能和对象类型

    Stack: > 2kB (> 8 kB is recommended)

    Dynamic data (heap): > 4 KB (> 32 kB is recommended if using several objects)

  • C99 或更新的编译器

源码获取

获取MM32的LibSamples和LVGL的源代码:

从灵动官网获取LibSamples_MM32F5260样例工程, https://www.mindmotion.com.cn/products/mm32mcu/mm32f/mm32f_performance/m...选择打开页面中的工具和软件标签栏,点击下载MM32F5260 库函数与例程。

2.png

图2 LVGL协议栈源码

获取LVGL源代码,这里我们使用到的是v8.1.0版本的协议栈:

https://github.com/lvgl/lvgl/archive/refs/tags/v8.1.0.zip

lvgl-v8.1.0 协议栈如下图2所示:

3.png

图3 LVGL协议栈源码

移植简介

拷贝 LVGL 源码到工程目录

基于LibSamples_MM32F5260样例工程,在其根目录文件夹下创建 ~\3rdPartySoftwarePorting\LVGL 路径及文件夹,将 lvgl-v8.1.0 软件包解压后直接复制到该路径下,并在该路径下创建 Demos文件夹。接下来,我们将在 Demos 文件夹下创建示例工程。

在 Demos 文件夹下中新建LVGL_Basic样例工程目录。将 lv_conf_template.h 复制到 LVGL_Basic 工程目录下,并将其重命名为 lv_conf.h。

将软件包中 examples/porting 下的 lv_port_disp_template.c&.h 文件,复制到 LVGL_Basic 工程目录下,并进行重命名去掉 __template。

FSMC 及LCD初始化配置

在 platform.c &.h 文件中进行进行FSMC相关初始化配置,包括时钟、引脚、初始化。

新建 lcd.c/.h 文件,实现 LCD 驱动初始化和基本的运行参数序列配置以及基本的的绘图操作,如清除窗口操作、填充窗口操作和画像素点操作函数。

新建 lcd_port.c 文件,实现基于 FSMC 的 LCD 驱动配置接口,并实现对 LCD 的写命令和写数据的操作接口。

LVGL_Basic样例工程完整目录如下图4所示:

4.png

图4 LVGL_Basic样例工程

添加到 Keil 工程中

添加lvgl到工程的文件索引路径中,如下图5所示:

5.png

图5 配置lvgl索引路径

如图6所示,将 lvgl_v8 文件夹下的 src 目录下的所有 .c 格式文件添加到工程中。

6.png

图6 添加lvgl源文件

代码适配

添加移植接口相关文件到工程中:

  • 修改 lv_conf.h 文件,使能配置文件内容,开启帧率显示和内存占用情况显示。

  • 修改 lv_port_disp.c 文件,使能LVGL配置。

  • 修改 lv_port_disp_init() 函数,选择定义图像缓存的方式,并设置屏幕像素尺寸。

  • 修改 disp_init() 函数,适配屏幕初始化,调用屏幕初始化函数。

  • 修改 disp_flush() 函数,适配屏幕填充函数接口。

编写 lvgl_basic.c 文件,包含头文件,调用 lvgl 初始化函数,实现Systick中断服务函数为lvgl提供时间基准,并在 main.c 文件中调用 LVGL_Basic_Sample() 函数。

#include "platform.h"#include "main.h"
#include "lvgl.h"#include "lv_port_disp.h"
static const char * btnm_map[] = {"0", "1", "2", "3", "4", "\n","5", "6", "7", "8", "9", "\n","Action1", "Action2",""};void lv_example(void);
void LVGL_Basic_Sample(void){    lv_init();    lv_port_disp_init();    lv_example();
   while (1)    {        lv_task_handler();    }}
void lv_example(void){    /* create a label. */    lv_obj_t * label = lv_label_create(lv_scr_act());    lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR);    lv_obj_set_width(label, 150);    lv_obj_set_pos(label, 10, 10);    lv_label_set_text(label, "MindMotion MindMotion");
   /* create a btn matrix. */    lv_obj_t * btnm1 = lv_btnmatrix_create(lv_scr_act());    lv_btnmatrix_set_map(btnm1, btnm_map);    lv_btnmatrix_set_btn_width(btnm1, 10, 2);        /*Make "Action1" twice as wide as "Action2"*/    lv_obj_align(btnm1, LV_ALIGN_CENTER, 0, 0);}                                  

LVGL_Basic 样例展示

这个样例展示了最基本的GUI元素,如按钮、标签和文本框。它演示了如何在屏幕上创建和操作这些基本元素。

7.png

图7 LVGL_Basic示意图

参考样例展示

LVGL_Benchmark

这个样例用于测试和评估MM32F5260的性能。它通过快速创建和删除大量的对象来展示开发板的渲染能力。

8.png

图8 LVGL_Benchmark示意图

LVGL_Stress

这个样例通过同时使用多种不同的GUI元素和复杂的布局来对系统进行压力测试,确保在高负载情况下系统的稳定性。

9.gif

图9 LVGL_Stress 示意图

LVGL_Widgets

这个样例展示了LVGL支持的所有小部件(Widgets),包括但不限于图表、滑块、复选框和下拉列表。它帮助开发者了解如何使用这些小部件来构建复杂的用户界面。

10.png

图10 LVGL_Widgets示意图

总结

本文简单介绍了MM32F5260及LVGL的使用,开发者可以通过使用LibSamples在MM32F5260上快速开始LVGL的学习和开发工作。

来源:灵动MM32MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 45

在8月底的深圳嵌入式电子展上,灵动微电子正式发布了“灵动ž星”系列MM32高性能MCU产品,包含4个子系列:MM32F3,灵动·天枢 MM32F5,灵动·玉衡 MM32G5,灵动·天玑 MM32H5。

近日,我们正式发布灵动·天枢子系列的重磅成员:MM32F5260。

MM32F5260 产品特色

一、国产Star-MC1内核,内核动力强劲

MM32F5260搭载安谋科技(Arm China)Star-MC1内核,基于Armv8-M架构,指令集兼容Cortex-M33,和传统的Arm Cortex-M3/M4内核相比,其1.5 DMIPS / MHz,以及4.02 CoreMark / MHz,性能提升了20%;内置单精度浮点运算单元(FPU),支持DSP扩展,同时支持先进的L1 I-Cache & D-Cache,以及I-TCM & D-TCM,提供强劲的内核动力。

1728467357803425.png

二、全国产供应链打造

MM32F5260采用全国产化供应链和可靠的嵌入式eFlash工艺制程打造,满足家电和工业等高可靠性应用的要求。

三、丰富的存储、通信和模拟资源

MM32F5260提供256KB flash,128KB RAM,支持FSMC、XIP Quad-SPI接口;包括2x FlexCAN在内的14个通信接口;以及2x 3Msps 12b ADC,2x 12b DAC,3x模拟比较器。

MM32F5260 主要特点

1728467370415054.png

内核与系统

  • 工作频率可达 120MHz

  • 搭载 STAR-MC1 (兼容 Cortex-M33)处理器,采用 Arm®v8-M Mainline 架构,内置单精度浮点运算单元(FPU),支持 DSP 扩展

  • 4KB L1 指令缓存(I-Cache)和 4KB L1 数据缓存(D-Cache)

  • 三角函数加速单元(CORDIC),支持 Sin,Cos 和 Atan 操作

  • 外设互联矩阵 MindSwitch,支持定时器、GPIOs、EXTI、ADC、DAC 和比较器等模块信号间的直接连接或触发连接

  • 2 个 8 通道 DMA 控制器,支持外设类型包括定时器、ADC、DAC、UART、LPUART、I2C、SPI、QSPI 和 FlexCAN

存储器

  • 多达 256KB 的 Flash 存储器

  • 多达 128KB 的 SRAM

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

  • QSPI 接口,支持扩展外部 NOR Flash 存储,支持在线执行模式(eXecute-In-Place,XIP)

  • FSMC 接口,支持外扩 SRAM/PSRAM/NOR Flash 类型,兼容 8080/6800 通信总线模式

时钟、复位和电源管理

  • 2.0V ∼ 5.5V 供电

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

  • 外部 4 ∼ 24MHz 高速晶体振荡器

  • 内置经出厂调校的 8MHz 高速 RC 振荡器

  • 内置的 PLL1 可产生系统时钟,支持多种分频模式,为总线矩阵和外设提供时钟

  • 内置的 PLL2 可产生最高 100MHz 的系统时钟,支持多种分频模式,为 USB 和ADC 提供时钟

  • 内置 40KHz 低速振荡器

  • 外部 32.768KHz 低速振荡器,支持旁路功能

低功耗

  • 多种低功耗模式,包括:低功耗运行(Lower Power Run)、睡眠(Sleep)、低功耗睡眠(Low Power Sleep)、停机(Stop)、深度停机(Deep Stop)和待机模式(Standby)

  • VBAT 为 RTC 和后备寄存器(20 x 16 位)供电

  • 内置LPUART、LPTimer,支持从低功耗模式下触发唤醒

多达 14 个通信接口

  • 5 个 UART 接口

  • 1 个 LPUART 接口

  • 2 个 I2C 接口

  • 3 个 SPI 接口(支持 I2S 模式)

  • 1 个 USB 2.0,支持 Device & Host 模式

  • 2 个 FlexCAN 接口,兼容 CAN 2.0B 协议

13 个定时器

  • 2 个 16 位 4 通道高级定时器(TIM1 / TIM8),有 4 组包含互补输出功能的 PWM输出通道,并支持硬件死区插入和故障检测后的紧急停止功能

  • 2 个 16 位 4 通道通用定时器(TIM3 / TIM4)和 2 个 32 位 4 通道通用定时器(TIM2 / TIM5),每个通道配有 1 个 PWM 输出,并支持输入捕捉和输出比较,可用于红外、霍尔传感器或者编码器信号的解码

  • 2 个 16 位基础定时器(TIM6 / TIM7)可用作通用定时和产生中断

  • 1 个 16 位低功耗定时器(LPTIM)能在除了 Standby 以外的所有低功耗模式下唤醒处理器

  • 2 个看门狗定时器,包括独立型的 IWDG 和窗口型的 WWDG

  • 1 个 24 位 Systick 定时器

  • 1 个 RTC 实时时钟

2 个 12 位 ADC,共支持 19 个外部输入通道和 2 个内部输入通道,其中每个 ADC 支持最快 3MSPS 转换率,硬件支持过采样到 16 位分辨率

  • 转换范围:0 ∼ VDDA

  • 支持采样时间和分辨率配置

  • 支持硬件过采样,过采样次数从 2 到 256 次可选

  • 片上温度传感器

  • 片上电压传感器

  • VBAT 电压传感器

2 个 12 位 DAC

3 个 高速模拟比较器

多达 86 个快速 I/O 端口

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

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

  • 多达 61 个 5V 容忍 I/O 端口

CRC 计算单元

96 位芯片唯一 ID(UID)

调试模式

  • 串行调试接口(SWD)

  • JTAG 接口

采用 LQFP100、LQFP64 和 LQFP48 封装

全系列支持 -40℃ ∼ +105℃ 扩展工业型工作温度范围

MM32F5260 产品组合

MM32F5260现可提供LQFP48、LQFP64、LQFP100三种封装,提供 -40~105C扩展工业级工作环境温度选项。本次共推出 3 款型号可供选择,详情可参考下表。

3.png

MM32F5260 应用场景

智能工业

  • 工业控制

  • 电梯控制

  • 消防控制

  • 交通运输

智能家电、家居

  • 打印机

  • 扫描仪

  • 家电控制

  • 电机控制

  • 洗地机

  • 智能扫地机器人

MM32F5260 开发工具

MM32F5260 配套的 MiniBoard-OB 开发板即将同步上线:

Mini-F5265-OB

1728467412283380.png

  • 板载主控:MM32F5265E7PV

  • 板载资源:

    - 2 个用户LED

    - 2 个用户按键

    - 1 个复位按键

    - 1 个可调电位器

    - 8M SPI FLASH 和 2K EEPROM

  • 板载接口:

    - 1 x USB Type-C (USB-DBG)

  • 供电方式:

    - USB TYPE-C

EVB-F5265

MM32F5260也会支持EVB(如下图),正在开发中,将于今年11月开发完毕。

5.png

  • 板载主控:MM32F5265E8PV

  • 板载接口:

    - USB:

       - USB Device/Host(目标芯片USB)

       - USB转UART(串口打印/调试)

    - JTAG-20P调试口

    - 3.5mm耳机音频接口

    - 1x2P 扬声器输出口(8Ω 1W)

    - CAN接口

    - 2x17Pin LCD接口(8080接口,默认装配320x480分辨率屏)

    - DC电源口(5V输入)

    - MicroSD卡座

  • 板载资源:

    - 用户LED x4

    - 用户按键 x4

    - 复位按键 x1

    - 2Kbit EEPROM

    - 32Mbit Flash

    - 8Mbit SRAM

    - 电位器 x2

    - CAN收发器

    - 音频编解码器(板载一个麦克风输入)

  • 供电:

    - Type-C接口

    - DC-电源口

    - JTAG-20P调试口

MM32-LINK MINI

6.png

  • 支持 MM32 MCU SWD 方式编程调试,兼容 CMSIS-DAP 调试通道

  • 支持 CDC 虚拟串口,支持常用波特率

LibSamples

按模块划分的独立库和示例,LibSamples 列在每个产品页面中。

MM32F5260 现已提供完整的样片、开发板和软件开发包支持。

MM32F5260 系列已全面量产并可接受大批量订单。有关样片申请与芯片购买事宜,请洽灵动微电子的销售、官方代理商和方案设计公司。

更多有关MM32F5260的信息可访问灵动官网:https://www.mindmotion.com.cn/products/mm32mcu/performance_line/mm32f_performance/mm32f5260/ 

来源:灵动MM32MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 24
订阅 RSS - MM32F5260