灵动MM32 eMiniBoard (MM32F3270)
首先非常有幸获得了评测本产品的机会,收到东西还是很开心的。
这次的包装里赠送了一个非常实用又漂亮的环保袋,好评。已经被家里宝宝拿去买零食用了。
这次板子的内容还是很环保的。
总体上板子做工还是不错的,不过丝印似乎有一点点不是很直观,旁边的排针确实搞不清楚具体是什么作用。期待可以改进。
MM32作为从STM32有延伸意义的芯片,总体上都是arm架构的mcu,笔者用过stm32,也用过gd32,这次使用mm32觉得总体上是差不多。但是看资料以后暂时没有对本款芯片找到一个对应的产品。
下面说一下本次打算用这个板子做一个什么东西。
由于我们公司的一款产品是多个位置使用can通信来进行串接的,对于各个位置的设置配置,都是用can通信,但是目前都是是用一款can转ethernet的产品,再通过电脑连接网线来进行配置的。一旦产品送到客户那里,再使用电脑进行配置就有些不变。所以一直有制作一款集配置,调试,数据通信监控等多功能于一体的便携设备。这次就打算用这块开发板为原型进行开发设计。
具体的目标功能如下:
- 具备公司私有can协议的数据收发能力。
- 可以将接收到的can数据保存在flash里面(或者是tf卡)
- 能够用usb连接到电脑上打开保存的can数据的文件,并复制到电脑上分析
- 使用一块oled到屏幕作为一些交互操作的显示作用。
- 通过按键选择交互操作,发送预置的can指令。
由于功能还是比较多的,所以不可能在本次测试过程中全部完成。现在结合产品来讲一下具体的进度。
我一开始基本上只使用can,串口,led, 按键,usb等功能,所以暂时不用下面的排针。所以为了保护开发板,避免意外造成短路等问题。自己3D打印了一个外壳。
这块板子使用的是MM32F3270芯片中的F3277G7(LQFP64)芯片,有120MHz的主频,还是很高的。
根据原理图和参考例程,很快就搞定了基本的can收发功能。连接到我们的can转ethernet设备,用电脑上位发送接收都没有什么问题。具体我这边采用的Ext扩展标准的,并且是数据帧。数据帧内的私有协议就不赘述了。
还有一点补充一下,mm32这次带的例程分为寄存器版本和hal库2种,笔者之前都是keil的开发环境,并使用标准库的。所以适应花了一些时间。好在也就是一个熟悉的过程。
贴一些代码
Can基本的收发,可以把收到的消息发送回去,后续直接对接到私有协议处理上就OK了。
在完成了这一步之后,我准备完成can数据的记录工作。因为我打算是把数据存放在外部flash上,我们板载的比较小,这个之后可以自己买芯片替换。主要问题是我打算在flash上建立文件系统,为后续usb连接模拟u盘做准备。stm32是由自己的库来实现这个功能的,但是我发现mm32这边相关的资料比较少。主要是例程没有,这个可就需要花一些时间来摸索了。
既然暂时没有文件系统,那么就考虑先随便写在外部flash里面,然后再用串口命令来读取数据。
结果就是这目标改变,变成了一个悲剧开始。
这块板子自带mm32link烧录工具,同时完成了一个虚拟的串口直接连接到了 Uart1上面,我移植了一段stm32和gd32上都很成熟的串口命令解析的代码上去。
想着这个一根usb线就搞定烧录和串口调试,还挺方便的。结果:
_HB
COMM
_HB
COMM
_HB
COMM
我收到的是这样的数据
串口输出直接吧我的内容分段了,当中还加了 0D 的回车
这是什么鬼。。。然后再跟踪我发送的命令,也是无法正确解析的。
我考虑可能是串口1接在MMLINK上,有bug,所以随即使用串口2,
增加了串口2的初始化代码。
串口2我用了一个自制的ch340的usb转TTL线连上测试,结果更奇怪了。
首先我发送的命令,在板子上会多接收到一个 0A 在第一个字节,也就是在命令前。
板子上返回的数据我接收到也是不对的,每次一个字节。
目前项目没有完成。 因为月底前公司项目很紧张,暂时可能无法在评测截止前得到一个可用的功能了。
估计会在下个月抽空再继续搞。
全部回复 0
暂无评论,快来抢沙发吧