打印
[MM32硬件]

国产MCU专栏 第89期:探秘“星辰”!十大工程师测评灵动MM32F5330

[复制链接]
3892|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
*阅读说明:以下仅做简要总结展示,排名不分先后。详细评测描述、源码、资料等请戳原链接查看。


  • 测评1:

本章节针对GPIO的输入输出进行系统的学习和测试,其实主要就是GPIO的输出控制,对应的就是LED的控制,对应输入的采集就是板载的按键,本开发板板载了4个不同颜色的LED以及4个用户按键,复位按键采用的是不同形式的按键,可以有效避免误触的发生。

我们在上一部分的基础上增加定时闪烁功能,例如按键按下时对应的LED开始闪烁,再按下时关闭闪烁功能。主要设计的两部分,一个是定时器的初始化以及中断处理,另一个就是按键控制的逻辑判断。

为了让后面的测试更加舒畅,先实现一下串口打印功能,串口打印的重点就是串口功能的实现,厂商也是比较注重这一点了,对于每一个工程都是有一个通过Jlink接口的串口打印功能,不过我连接在Wch-link上并没有实现,那么我们就用本身个串口type口实现。

定时器的PWM(脉冲宽度调制,PulseWidth Modulation)输出功能是微控制器中一个非常重要的特性,广泛应用于电机控制、LED亮度调节、音频信号处理等领域,本章节的功能展示主要就是通过LED实现呼吸灯进行的。

本次测试驱动使用的显示模块使用的是1.54寸TFT液晶显示屏,主要参数包括240*240分辨率,确保图像细腻且细节丰富。其核心主控芯片为ST7789,这款芯片以其强大的驱动能力和低功耗特性,广泛应用于各类小屏中。

USB是本开发板一个重要的功能,不过通过查询已有的例程中并没有有关USB的例程,我们只能通过其他途径获取,灵动微官网可以生成专用的SDK,其中就包括基于tinyusb的hid_keyboard例程我们参考这个例程进行设计,通过这个例程把我们的开发板枚举成功。



  • 测评2:
通过板载串口CH340和单片机串口(PA9,PA10)通讯。

通过ADC1获取板上3个电位器的实时电压参数并打印串口显示。

在MM32F5330MCU上移植FreeRTOS,并运行2个task,打印信息。

我们用MM32F5333开发板的USB功能+ADC实现障碍物检测和发送跳跃指令让单片机自己玩。



  • 测评3:
拿到板子之后首先是搭建MM32的开发环境。

看了一下板子上是带有一颗SPI的FLASH芯片W25Q80B,所以就测试一下F5333的SPI功能。

这里准备测试一下通用异步收发器UART,实际板子上的USART1已经做成了串口调试打印功能,可以往PC端打印程序调试信息。



  • 测评4:
USB协议复杂度较高,自己实现不太现实,利用TinyUSB可以大大降低开发难度。但是自己移植TinyUSB也是需要花费一些力气的,幸好灵动微电子官方已经做好了移植,那就不需要重新造轮子了。

描述一下步骤吧,这个网上比较多:
1、安装VScode
2、安装编译器MinGW
3、安装cmake
4、VSCODE中安装cmake、c/c++、cmaketools三个插件
5、安装交叉编译工具:arm-gnu-toolchain-13.2.rel1-mingw-w64-i686-arm-none-eabi.exe
6、安装ninja

实现向spi flash写入中文字库bin的的功能。

继续实现ST7735 SPI屏驱动和显示中文,并通过KEY控制中文文本翻页浏览。

SPI_InitStruct.SPI_BaudRatePrescaler设置越小,SPI频率越高,16好像是极限了,不能再小了。
SPI1用于驱动板上的flash了,所以驱动LCD要用SPI2。



  • 测评5:
使用例程完成了简单的点灯测试。

新建个工程来进行测试,完成基础题目中的其中两项:
通过GPIO端口控制LED;
使用外部中断实现按键控制LED状态。

实现与PC端的基本串口通信;使用定时器实现计数,并在串口输出计数值。

FreeRTOS是一个实时操作系统,适用于微控制器和微处理器,使小型低功耗设备的编程变得更容易。

MM32F5330内置 2 个 I2C 接口, 能够工作于多主模式或从模式, 支持标准(100 Kbps)、快速模式(400 Kbps)和快速扩展模式(1 Mbps), 支持 7 位或 10 位寻址。 支持SMBus。所有的 I2C 接口都可以使用 DMA 操作。开发板上集成了一颗EEPROM,例程里有它的驱动代码,这里就不再重新驱动了,改用I2C来驱动OLED。

SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线(CS、SCK、MOSI、MISO),根据实际使用情况可以只用其中的2根或3根。

从官网下载的LibSamples_MM32F5330中没有USB的驱动代码,MM32官方在论坛里发过MM32F5270的USB驱动视频教程,看视频才知道还有MindSDK。



  • 测评6:
利用板载的CH340串口芯片完成单片机的串口通讯功能,实现基本的发送接收功能,并且将PC端发送来的数据,返回至串口中断。

灵动Mini-F5333没有板载MM32的调试器,我们需要自行的找到合适的调试器,这里我所使用的是DAP的调试器。

利用板载的CH340串口芯片完成单片机的串口通讯功能,并且数据发送的数据在PC端的串口工具中显示。

利用PWM信号控制电机速度。

利用ADC模块测量输入电压的,并通过串口输出测试结果。

利用定时器实现1s计数,并在串口输出计数值。

利用USB模拟HID功能,通过键盘或者按键移动鼠标。



  • 测评7:

环境搭好了,来编写一下呼吸灯的代码。



  • 测评8:
开箱后先下载个厂家提供的DEMO程序,这里选择的是一个LED闪烁的程序。



  • 测评9:



  • 测评10:



》》访问灵动MM32 MCU论坛可查看更多开源作品。

使用特权

评论回复
沙发
shenxiaolin| | 2024-7-29 21:10 | 只看该作者
感谢分享

使用特权

评论回复
板凳
a68251590| | 2024-9-2 22:07 | 只看该作者
很棒的分享,十分受用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

153

主题

691

帖子

26

粉丝