打印
[MM32生态]

国产MCU之光 第32期:MM32F3270通讯板的接口功能设计连载,已完结!

[复制链接]
6006|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

*阅读说明:以下仅做简要总结展示。详细项目描述、源码、资料等请戳原链接查看。
作者:@xld0932
  • 作者有话说:
基于MM32F3270通讯板的所有接口功能分享,从画板、制板到后面的焊接调试都投入不少精力,在分享这些的同时自己也有很大收获。以连载的形式进行分享,是想把每个部分都尽量描述清楚,有条理些,方便大家理解、学习或者是掌握应用。虽然对于MM32芯片来说使用的外设并不是太多,仅仅用到UART、CAN和SPI接口,但其扩展出来的应用技术却是很广泛的,不能因为使用外设单一或者简单而否定其在实际项目中的应用价值体现,像FatFs的文件系统、Xmodem/Ymodem/Kermit串行通讯协议、以及后面被广泛应用在工业、汽车领域的CAN接口、LIN接口通讯等等,都是我们在项目中常用的技术点。


本文主要结合CAN、SPI和UART这3个外设功能来实现CAN通讯、RS-232通讯、RS-485通讯、LINMaster和LIN Slave通讯、以及SPI读写TF卡操作的功能;通过SPI对TF卡底层的操作,结合开源的FatFs0.14b,来实现对TF卡的文件管理系统。
介绍
功能
硬件原理图设计
硬件PCB绘制
回板焊接调试
调试底层驱动
移植FatFs文件系统
FatFs文件系统示例及运行结果
全部资料
总结点评:
硬件上实现CAN、RS-232、RS-485、SPI TF卡、LIN主机、LIN从机以及MM32F3270最小系统的电路设计,完成了对底层硬件驱动程序的初始化验证,为后续功能分享实现了FatFs文件系统的移植和示例演示。原理图完整清晰,成品美观。


实现功能:
使用MobaXterm工具结合SHELL命令来实现选择Xmodem进行发送或是接收的测试;使用SecureCRT工具进行Xmodem数据的发送和接收;并通讯USB转串口打印出传输过程,查看传输结果。
简介
Xmodem如何启动传输
Xmodem传输过程描述
Xmodem处理注意事项
实现功能
实现代码
运行测试
源码附件
总结点评:
通过MM32F3270通讯板的RS232实现了Xmodem协议的数据发送和接收,软件代码实现了标准Xmodem和Xmodem-1k两个版本协议相兼容,实现了CRC校验和累加和校验相兼容;对Xmodem协议的启动过程、传输过程以及处理注意事项做了说明。并附带了详细的测试过程。


实现功能
通过Ymodem协议接收来自发送方的多个文件数据包,对其过程进行监控和打印消息输出;再通过软件代码构建几个需要传输的文件及不同的文件内容,能Ymodem协议发送给接收方进行保存,并查看文件中的数据正确与否。

总结点评:
Ymodem协议是Xmodem协议的升级版本,最大的特点是在Xmodem协议上增加多文件传输的功能,使得Ymodem协议传输具有更快速、稳定的特点。文中分享了在使用不同发送工具通过Ymodem协议传输文件数据时,对于结束帧数据包不同的分类处理,软件源代码工程支持Ymodem协议的完整功能,并进行了详细的测试及过程分享。


Kermit协议应用很广泛,尤其在Linux系统中用来进行文件传输;当前找到资料最多的就是教如何在Linux下的安装和使用,但描述在MCU上如何使用的分享却很少;本帖主要分享了基于MM32F3270芯片,使用SecureCRT软件通过Kermit协议进行文件数据传输的实现和测试过程,对基本通讯概念和注意事项做了描述,并绘制了传输流程图。


本文通过MM32F3270通讯板的RS485接口实现了基于Modbus协议的通讯,介绍了RS485接口、Modbus通讯协议数据帧格式以及在实际应用当中的2点注意事项;然后使用开源的FreeMODBUS软件代码库程序,实现Modbus通讯,讲解了FreeMODBUS的底层移植、初始化、运行调度以及应用实例;与PC端的串口助手软件完成了Modbus通讯的功能实测。



MM32F3270系列MCU带有一个CAN通讯接口,支持CAN协议的2.0A和2.0B协议标准,同时支持11位和29位识别码功能;支持BasicCAN和PeliCAN两种工作模式,具有64字节的先进先出接收缓冲区空间,其位速率最高达到1Mbps。
本文基于MM32F3270通讯板的CAN通讯接口来分享一下在实际项目中对于CAN接口通讯的初始化配置和应用以及在开发过程中遇到的一些注意事项等等。
1、CAN初始化配置配置、注意事项、及示例程序
2、CAN滤波器有何作用,该如何设置?
3、CAN采样点如果计算、设置和选择?
4、MM32F3270的CAN可以工作在5kbps的超低通讯速率下吗?
5、CAN总线通讯网络中为什么需要添加终端电阻呢?
6、单个节点测试数据收发正常,接入CAN网络后发数据就很少成功,这是怎么回事?
总结点评:
本文主要采用问答的方式,介绍了MM32F3270基于CAN通讯接口的初始化配置(复用端口引脚、中断配置、中断处理、参数设置、滤波器设置),采样点百分比的计算、超低波特率通讯配置异常及解决办法、对于终端电阻的作用和解惑、以及在实际组网中遇到的个别问题进行了分享,希望小伙伴在应用的时候有些参考。


MM32F3270系列MCU的UART(通用异步收发器)支持全双工数据传输,可以通过分数波特率发生器,选择宽范围的通讯波特率,也可以通过波特率自适应功能来自动判别通讯波特率,其通讯速率的容忍度可以达到±3%;另外还支持5/6/7/8/9位数据通讯、支持数据奇/偶校验方式以及接收空闲中断等功能;还可以通过复用端口引脚CTS/RTS来实现数据收发的流控功能。除此之外MM32F3270系列MCU的UART还具备异步单向通讯和半双工单线通讯的功能、支持多机通讯、智能卡操作、IrDA红外通讯和LIN接口通讯的功能,可谓是功能相当的强大哈。
总结点评:
理论知识讲解完善,对LIN的特性和协议均有完整介绍,在MM32平台实现较为完整,很适合刚接触的朋友学习。


  • 番外篇
关于MM32F3270:
MM32F3270系列是灵动在2021年3月中旬发布的一款全新的主流MCU型号。MM32F3270系列使用高性能的ARM Cortex-M3作为内核,最高工作频率可以达到120MHz,带有512KB的FLASH和128KB的SRAM,具有2.0V~5.5V的宽工作电压和-40℃~105℃的宽工作温度,并配有丰富的外设,适用于要求高集成度的高性能控制领域,如工业控制、安防监控、家电领域、通讯等应用。

功能:
MM32F3270系列MCU配有丰富的外设,支持多达8路的UART、1路CAN接口、3路SPI/I2S接口等等;其中UART还支持红外IrDA、智能卡、多机通讯、波特率自动检测、LIN通讯等功能。

使用特权

评论回复
沙发
Innercourage| | 2022-12-7 17:10 | 只看该作者
不错,物联网雏形,基础上能够衍生更多的应用领域

使用特权

评论回复
板凳
pixhw| | 2022-12-12 10:16 | 只看该作者
MM32F3270的功能非常强大了。

使用特权

评论回复
地板
xiaoyaodz| | 2022-12-12 13:21 | 只看该作者
FatFs文件系统功能强大。              

使用特权

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

本版积分规则

164

主题

702

帖子

31

粉丝