tag 标签: 灵动

相关博文
  • 热度 3
    2024-1-22 00:49
    626 次阅读|
    0 个评论
    拿到板卡有一段时间了,由于年底工作比较繁杂,终于有空隙来看看咱们的这次的开发板。但是先移植什么项目呢? 思来想去,还是先移植一个稍许简单的项目吧(也是比较赶时间( ^_^ ))。 一、项目介绍 项目名称:音频控制器 项目功能: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 借鉴案例 针对案例,是接收什么数据,然后原样发出去。暂且可以用用。所以是直接复制粘贴了 2. 通道切换 电路设计为简单的继电器控制,由于保密原因,不能这里展示。控制也就是简单的GPIO电平控制 3. 音频控制 这里电路设计使用了一组模拟开关,实现了音频功放中使用滑变电阻调节音量的功能。模拟开关为使用三组GPIO输出组合,使模拟开关输出八种情况,类似38译码器。电路图还是需要保密 4. OLED显示 OLED是我们自行设计的,也是长期使用一款产品了。算是比较成熟的。按照对IIC的理解,移植起来没有什么问题。不过对于OLED其实也没必要使用内置IIC控制器。因为时序比较简单。这里简单贴几行代码。 我们显示的内容由于功能的单一,显示的也比较简单 三、评测总结 1. 问题 串口问题,TXE的状态无法作为串口中断判定条件,无论人为如何清零和重置,不知道什么时候又被硬件自行设置了。 开发问题,官方资料不是很详尽。案例缺少有用注释,手册缺少注意事项。没有使用此类MCU基础的人,无法做到立刻使用。 开发问题,可能由于核心的升级,大部分下载器没法进行使用。编译器也需要针对平台进行升级,比如KEIL。如果按照官方说法,5.13以上就可以,然而到5.37后才能正常安装pack包。 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
  • 热度 2
    2023-10-12 09:13
    2128 次阅读|
    1 个评论
    首先感谢面包板社区和上海灵动微对本次测评的硬件开发板支持。 我们拿到手里的是 【灵动Mini-G0001开发板】 如下图 我们去官网下载开发板对应资料 MM32G0001官网 我们需要下载Mini—G0001开发板的库函数与例程(第一手学习资料)Keil支持包, PCB文件有需要的,可以自行下载。用户指南需要下载,原理图也需要,我们要看引脚,外设等。 下载完毕后,我们把资源解压到对应文件夹下面。 笔者使用Keil5MDK开发所以我们首先安装Keil5中开发Mini-G0001开发版对应的支持包。 或者在Keil中在线安装也是一样的,图片如下。 一定要选对安装包,如上图所示就是我们G0001对应的Keil支持包,双击安装到Keil对应目录。 Keil在线安装图片也贴出来 不过第一次在线安装时没有找到G0001的支持包,不知道怎么回事,快捷稳妥还是官网下载支持吧离线安装。 完成之后,我们就可以选择用Keil5开发 Mini-G0001开发版 了。 MiniBoard(MM32G0001A1T) ◼板载主控 MM32G0001A1T -32bitARMCortex-M0( 最大特点是低功耗的设计 ) -16KBFlash,2KBSRAM -TSSOP20 ( 超薄紧缩小型封装 ) ◼板载资源: 4个用户LED 4个用户按键 3个可调电位器 PWM蜂鸣器 8MSPIFLASH 2KEEPROM ◼板载接口 Micro-USB UART异步 串口 20PINSWD调试接口 MM32G0001A1T全引脚拓展连接器 ◼供电方式 Micro-USB 有这些板载资源可以供我们使用。接下来我们先来运行一下例程100ms翻转一次LED 首先找到例程:如下图。 我们 双击打开keil项目 编译 通过0错误0警告,我们先不看程序是如何写的,我们要先找烧录器烧录进去。但是发现官方MIni专用烧录器比较贵,也来不及买,因为 芯片是32bitARMCortex-M0内核 ,我手上的STLINK-V2,J-link,GD-Link应该都可以使用烧录。因此我先拿 STLINK-V2 来测试一下程序烧录和调试。 此时有个问题,使用SWD方式烧录,烧录引脚在哪里呢?我们通过查看原理图和开发板发现, 有 一个 20PINSWD调试接口, 但是查看开发板发现开发板上没有引脚丝印,不知道VCC和GND,SWDIO和SWDCLK的引脚在哪里(这一点后续可以加上丝印,或者官方烧录器是pintopin的,直接对插即可。) 这里我用万用表测量之后,根据原理图引脚定义,连接好了STLink-v2。如图。 我们 连接电脑,给开发板供电,发现开发板自带程序是4颗LED以不同频率进行闪烁,因为我已经烧录过程序,所以不在贴图。 我们看一下Debug设置有没有问题 K eil正常识别ST-LInk/V2然后看一下FLASH FLASH对的上,程序烧录完成之后可以选择ResetandRun第一次烧录时没有勾选,只能重新上电(看原理图发现复位脚和烧录引脚有冲突,这一点就比较难受)。 然后我们就选择烧录程序。 烧录完成,非常丝滑,此时又省了一笔烧录器的钱。我们看下效果。 成功烧录程序,4颗LED以100ms进行闪烁,此时我也试了一下仿真,也是一点问题没有。 写到这里,我们的开发环境配置好了,示例也运行了,烧录问题也解决了,后面就可以随心所欲的玩耍开发版了。后面有时间会出MIni开发板和STM32程序的相同和不同之处,以及一些小项目。
相关资源