| **银杏科技有限公司旗下技术文档发布平台** |||| |技术支持电话|**0379-69926675-801**||| |技术支持邮件|Gingko@vip.163.com||| ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | V1.0 | 2020-07-02 | gingko | 初次建立 | ===== 实验十:FMSC总线通信实验——复用地址模式 ===== ==== 一、 实验目的与意义 ==== - 了解FMSC总线通信。 - 掌握FMSC总线使用方法。 - 掌握QuartusII集成开发环境的使用方法。 ==== 二、 实验设备及平台 ==== - iCore4 双核心板[[https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22598974120.15.5923532fsFrHiE&id=551864196684|点击购买]]。 - Blaster(或相同功能)仿真器[[https://item.taobao.com/item.htm?id=554869837940|点击购买]]。 - Micro USB线缆。 - QuartusII开发平台。 - Keil MDK开发平台。 - 装有WIN XP(及更高版本)系统的计算机。 ==== 三、 实验原理 ==== * STM32F767上自带FSMC控制器,本实验通过FSMC总线的地址复用模式实现STM32与FPGA之间的通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC总线从STM32向RAM块中写入数据(数据为0到255),然后读取RAM出来的数据并进行验证。实验原理如下。 {{ :icore4:icore4_fpga_10_1.png?direct&600 |图10-1}} /*FSMC测试程序,主函数部分(下载至RAM中)*/ while(1){ for(i = 0;i < 256; i++){ fpga_write(i,i); //向FPGA写数据 for(i = 0;i < 100000; i++); for(i = 0;i < 256;i++){ fpga_read_data = fpga_read(i); //从FPGA读数据 if(fpga_read_data != i){ LED_GREEN_OFF; LED_RED_ON; //出现异常ARM的红灯点亮 } ==== 四、 实验步骤 ==== 1、把仿真器与iCore4的SWD调试口相连(直接相连或通过转接器相连),将USB-Blater与iCore4的JTAG调试口相连,并分别与电脑相连。将跳线帽插在USB UART。如图10-2所示。 {{ :icore4:icore4_fpga_6_2.jpg?direct |图10-2}} 2、把iCore4(USB_UART)通过Micro USB线与计算机直接相连,为iCore4供电。\\ 3、打开本实验所带QuartusII工程文件,如下图所示。 {{ :icore4:icore4_fpga_10_3.png?direct |图10-3}} {{ :icore4:icore4_fpga_10_4.png?direct |图10-4}} 4、将本实验例程的FPGA配置文件下载至iCore4上。\\ 5、打开本实验所带keil工程文件,如下图所示。 {{ :icore4:icore4_fpga_10_5.png?direct |图10-5}} {{ :icore4:icore4_fpga_10_6.png?direct |图10-6}} 6、点击图10-7所示按钮将,程序烧写进iCore4上的STM32中。 {{ :icore4:icore4_fpga_10_7.png?direct |图10-7}} ==== 五、实验现象 ==== * FPGA程序下载至硬件后绿色FPGA-LED灯点亮,ARM程序烧写完即测试,测试成功则绿色ARM-LED点亮,否则红色ARM-LED点亮。 ==== 六、拓展实验 ==== * 试着修改ARM程序中验证环节的代码,使验证出现异常即点亮红色ARM-LED灯。