基于SmartFusion2系列FPGA SOC的开发2——UART串口使用

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。


图6.1 工程设置

图6.2 选择器件

图6.3 选择器件

图6.4 选择器件

图6.5 选择器件

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

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

图6.6编辑工程(1)

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

图6.7 配置工程(2)

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

图6.8 配置MSS_CCC

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

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

图6.10 更新MSS(1)

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

图6.12 配置FABRIC CCC

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

图6.13 配置时钟源

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

图6.14 画布布线

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

图6.15 编译

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

图6.16 引脚设置

(3) 再依次双击主窗口左侧“Place and Route”、“Verify Timing”、“Generate Bitstream”(或直接点击Generate Bitstream;或直接点击),在弹出的选择提示选择OK,即可完成下载前所有工作。
6.1.4 下载工程
(1) 最后连接开发板和FlashPro4(注意P3拨码开发位置拨至左侧),双击“Run Program Action”,下载工程,如图6.17所示,等待下载完成。

图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

图6.18 固件库选择

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

图6.19 生成软件工程文件

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

图6.20 打开Keil工程

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

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

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

图 6-22:设置Active Project

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

图 6-23:Target Options…设置

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

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

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

SmartFusion2开发板含ARM核金手指DDR3以太网USB入门首选赠送例程

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

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SmartFusion是一款集成了FPGA和ARM处理器的可编程逻辑器件。在使用SmartFusion进行FPGA到ARM的衔接过程中,首先我们可以通过MSS(Microcontroller Subsystem)模块的GPIO(General Purpose Input/Output)功能来实现点灯。 MSS是SmartFusion芯片中的一个微控制器子系统,它包含了ARM Cortex-M3处理器以及与之相关的外设。GPIO是MSS提供的一种功能,它允许我们通过配置相关引脚的输入输出状态来进行数字信号的输入输出。 在使用MSS_GPIO点灯的过程中,首先我们需要使用SmartFusion的设计工具进行硬件电路的设计。接着,我们需要在软件开发环境中编写ARM处理器的代码来控制MSS_GPIO。 在代码中,我们需要进行以下步骤来实现点灯功能: 1. 配置MSS_GPIO控制的引脚作为输出引脚。我们可以通过设置相应的寄存器来实现这一步骤。例如,我们可以将寄存器的特定位设置为1来将某个引脚设置为输出模式。 2. 设置输出引脚的电平状态。通过编写相应的代码,我们可以将输出引脚的电平配置为高电平或低电平。这将决定LED是否点亮。 3. 可以加入延时函数来控制点亮和熄灭的时间间隔,以及闪烁的频率。 以上就是使用SmartFusion的MSS_GPIO模块实现点灯的简要过程。通过编写ARM处理器的代码,配置相关的寄存器,我们可以通过控制MSS_GPIO模块的引脚状态来实现LED的点亮和熄灭。这个简单的示例展示了SmartFusion芯片中FPGA和ARM之间的协同工作能力,为我们实现更复杂的功能提供了基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值