原创 SmartFusion2简单的UART使用例程

2024-3-25 14:22 738 3 3 分类: FPGA/CPLD

1、名称:SmartFusion2简单的UART使用例程

2、内容:通过MCU输出在串口输出一个字符串

3、例程目的:演示MSS UART的使用;熟悉SmartFusion2的开发流程。

4、平台介绍:

开发环境:Libero11.x、Keil MDK4.7/5.1

硬件环境:Low Cost SmartFusion2 Kit、FlashPro5、J-Link

5、例程关键词:M3 Timer, Keil、J-Link,SoftConsole,Libero11.5SP2

6、实验步骤

6.1 硬件设计步骤

6.1.1 新建工程

(1) 打开Libero开发环境(Start > Programs >Microsemi Libero SoC v11.x > Libero SoC v11.x)或者双击桌面图标;

(2) 新建工程:点击菜单栏:Project > New Project,按照图6.1所示,输入工程名(这里命名为UartDemo)、存储位置、器件(M2S010T-FGG484)、勾选“Use Design Tool”、选中MSS。

IMG_256

图6.1 工程设置

IMG_256

图6.2 选择器件

IMG_256

图6.3 选择器件

IMG_256

图6.4 选择器件

IMG_256

图6.5 选择器件

其他“Add HDL Source”和“Add Constraints”这里默认,选择Next,最后点击Finish工程建立。

6.1.2 配置工程

(1) 在打开的环境界面中,双击画布中如图6.6中的“UartDemo_MSS_0”,弹出配置界面,双击进入配置界面;

IMG_256

图6.6编辑工程(1)

(2)在配置界面中去掉所有模块的勾选项,只保留UART模块,如图6.7所示。其中一个外设对应一个模块,点击模块右下角选框可以使能/失能某一模块,使能模块呈现浅蓝色,失能模块呈现灰色;

IMG_256

图6.7 配置工程(2)

(3) 双击“MSS_CCC模块”,在弹出的配置窗口中,设定“CLK_BASE”为“100MHz”,勾选“Monitor FPGA Fabric PLL Lock”,M3_CLK设定为100MHz,其他不变,点击“OK”关闭配置窗口,如图6.8所示;

IMG_256

图6.8 配置MSS_CCC

(4) 双击“RESET_Controller”,在弹出的配置窗口中,勾选“Enable FPGA Fabric to MSS Reset(MSS_RESET_N_F2M)”,如图6.9所示,点击“OK”关闭窗口;

IMG_256

(5) 配置完成后,点击保存文件;

(6) 回到主界面,会发现“UartDemo_MSS_0”模块上有一个感叹号,表示MSS模块已被更新,右击模块,在弹出的菜单上选择“Update Instance(s) with Latest Component…”,如图6.10所示,配置完成后,效果如图6.11所示;

IMG_256

图6.10 更新MSS(1)

IMG_256

图6.11 更新MSS(2)

(7) 双击“FCCC_0”进入配置界面,输入时钟设置为内部50MHz晶振,输出为100MHz,(也可选择其他晶振,这里仅作例程演示),如图6.12所示;

图6.12

IMG_256

图6.12 配置FABRIC CCC

(8) 双击“OSC_0”模块,进入时钟源配置界面,选择时钟源为“On-chip 50MHz RC…”,勾选“Drives Fabric CCC(s)”,点击确定,如图6.13所示;

IMG_256

图6.13 配置时钟源

(9) 配置好模块之后,使用工具栏的连线工具,进行连线(或使用前面介绍的其他几种布线方式均可),连线如图6.14所示,保存,然后点击

IMG_256

图6.14 画布布线

6.1.3 编译工程

(1) 在左侧“Design Flow”窗口中,依次双击“Synthesize”、“Compile”两项,编译工程,如图6.15所示;

IMG_256

图6.15 编译

(2) 双击“Edit Attributes-I/O Constraints”,打开I/O设置界面,分配串口的输入输出脚分别到T18、T19;

IMG_256

图6.16 引脚设置

(3) 再依次双击主窗口左侧“Place and Route”、“Verify Timing”、“Generate Bitstream”(或直接点击Generate Bitstream;或直接点击),在弹出的选择提示选择OK,即可完成下载前所有工作。

6.1.4 下载工程

(1) 最后连接开发板和FlashPro4(注意P3拨码开发位置拨至左侧),双击“Run Program Action”,下载工程,如图6.17所示,等待下载完成。

IMG_256

图6.17 下载工程

(2) 如果后面软件开发使用Keil或IAR,请下载完成后拨出FlashPro4调试器后,再连接Jlink或Ulink等其他第三方软件开发调试器,并将P3拨码开关拨至右侧。若如两种下载器同时占用JTAG接口,可能导致调试器烧毁;如果软件开发使用SoftConsole则不必做任何更改。

6.2 软件设计步骤(使用Keil)

6.2.1 生成固件驱动和工程

在Libero软件左侧流程栏里,Handoff Design for Firmware Development窗口下双击打开固件库选择界面,如下图所示,本实验使用M3内核库文件、MMUART驱动库即可,用户可选择不勾选其他模块。如有修改点击保存。 图6.18

IMG_256

图6.18 固件库选择

双击“Export Firmware”选择SoftConsole,并勾选“Create project…”,点击OK,生成Keil所需工程,如下图所示。

IMG_256

图6.19 生成软件工程文件

6.2.2 打开Keil工程

生成的工程目录为“用户目录\UartDemo\Keil”,自动生成的工程使用Multi-Project管理方式,如错误!未找到引用源。所示,双击.uvmpw工程文件打开Keil工程。(Keil 4.7或以上版本才支持Microsemi SmartFusion2器件,请注意安装Keil版本信息)

IMG_256

图6.20 打开Keil工程

6.2.3 编译硬件驱动库工程,生成系统硬件lib库映射

打开Keil,软件自动生成了两个工程:第一个工程为硬件对应库工程,包括M3内核、外设驱动库文件、硬件地址分配等;第二个为用户工程,用户直接在此工程下编写代码完成设计。 由于使用MDK4.7,版本较低不支持Microsemi全系列器件,需要按下图重新选择器件,具体操作如下图所示。 设置完成后必须全编译此工程,完成硬件lib映射,其他不再赘述。

IMG_256

图 6-21:修改工程信息,编译

6.2.4 编译应用库工程,生成下载文件

编译完成硬件库工程后,重新设置用户库工程为Active Project,如下图所示。

IMG_256

图 6-22:设置Active Project

设置系统Target Options,同图 6-21类似,修改器件、设置Debug目标等,具体如下。其中值得注意的是:在重选择器件后Target目录下需要重新勾选ROM,否则编译不通过。

IMG_256

图 6-23:Target Options…设置

6.2.5 编写main.c代码,编译下载

打开main.c文件,键入附录A.1的代码,点击保存,全编译工程,若操作正确则信息框提示如下。正确连接Keil调试器,点击下载即可。

IMG_256

6.2.6 实验结果与分析

串口连接开发板右侧排针的第3、5、7号引脚。使用下图中参数连接串口,复位开发板后,在串口程序中可以看到发送过来的串口信息,如下图:

IMG_256

更多程序、例程源码,可购买smartfusion2开发板,附带全套例程供学习,见如下链接或者淘宝搜索"如果长存",里面有多款Microsemi开发板、核心板和Flashpro/Jlink下载器

https://item.taobao.com/item.htm?abbucket=16&id=687953877501&ns=1&spm=a21n57.1.0.0.7bc7523cIvHA6S

欢迎加入QQ群(656353231)一起交流技术和开发合作。

作者: johnrita_776664823, 来源:面包板社区

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

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

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /2 下一条