原创 【灵动 Mini-F5333开发板】+简单控制项目移植

2024-1-22 00:49 669 5 3 分类: MCU/ 嵌入式 文集: 单片机

拿到板卡有一段时间了,由于年底工作比较繁杂,终于有空隙来看看咱们的这次的开发板。但是先移植什么项目呢?

思来想去,还是先移植一个稍许简单的项目吧(也是比较赶时间(^_^))。

一、项目介绍

项目名称:音频控制器

项目功能:1.通道切换

2.音量调节

3.对应显示

二、功能移植
1. 串口通信

1.1 遇到点问题

项目应用必不可少的自然是串口,市面大多的串口通信基本都是基于modbus的,这里本来打算移植freemodbus的,移植过程中出了一些状况。可能是时间仓促,没有完全看手册,导致了如下局面:

通过下载源码和参考例程,将所有代码基本都移植完成,然而在通讯时,发送一组数据,MCU应该进入接受中断,等待数据接收并校验和装载返回的数据后,判断是否接收完成(TC寄存器),或者中断是否为空数据(TXE寄存器)。可是在MCU收到一个字节后,立刻去判断TC或者TXE。然后导致卡死在freemodbus的发送状态机的断言处(assert( eRcvState == STATE_RX_IDLE );)。后来经过多次调试,发现TC或者TXE寄存器无论在之前如何清零或者设置不使能,MCU会在一个程序执行完立刻被置位。原因可能如下手册所说,硬件自动处理,那就根本没办法了,后来发现案例接收过程中是加了while的,所以freemodbus的程序无法执行,由于时间紧急,所以暂且放弃了,改为借鉴案例的方法。

1.2 借鉴案例

针对案例,是接收什么数据,然后原样发出去。暂且可以用用。所以是直接复制粘贴了

fig:

2. 通道切换

电路设计为简单的继电器控制,由于保密原因,不能这里展示。控制也就是简单的GPIO电平控制

3. 音频控制

这里电路设计使用了一组模拟开关,实现了音频功放中使用滑变电阻调节音量的功能。模拟开关为使用三组GPIO输出组合,使模拟开关输出八种情况,类似38译码器。电路图还是需要保密

4. OLED显示

OLED是我们自行设计的,也是长期使用一款产品了。算是比较成熟的。按照对IIC的理解,移植起来没有什么问题。不过对于OLED其实也没必要使用内置IIC控制器。因为时序比较简单。这里简单贴几行代码。

我们显示的内容由于功能的单一,显示的也比较简单

三、评测总结
  1. 1. 问题
  • 串口问题,TXE的状态无法作为串口中断判定条件,无论人为如何清零和重置,不知道什么时候又被硬件自行设置了。
  • 开发问题,官方资料不是很详尽。案例缺少有用注释,手册缺少注意事项。没有使用此类MCU基础的人,无法做到立刻使用。
  • 开发问题,可能由于核心的升级,大部分下载器没法进行使用。编译器也需要针对平台进行升级,比如KEIL。如果按照官方说法,5.13以上就可以,然而到5.37后才能正常安装pack包。
  1. 2. 结论

对于如上简单的项目而言,主频的高低,不会太影响项目执行。不过180M确实比较好的,等到确实有用时,没有就会很可惜了。还有在配置串口的时候发现,GPIO等功能映射是非常灵活的,这在后期应用时也是很友好的。就目前体验来看,MM32F5333这颗芯片,还是很符合我们大部分项目需求的。

四、相关资料

modbus比较好的讲解资料: https://www.ni.com/zh-cn/innovations/white-papers/14/the-modbus-protocol-in-depth.html

modbus官方资料:http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf

freemodbus源码详细介绍:https://blog.csdn.net/u014748120/article/details/80313215

作者: 二月半, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1862109.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /1 下一条