查看: 461|回复: 1

[教程] 将FPGA开发板变成Arduino吧!

[复制链接]

主题

好友

744

积分

举人

  • TA的每日心情
    擦汗
    2018-10-18 15:28
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2019-3-8 14:28:26 |显示全部楼层
    FPGArduino是一个挺有意思的项目,将一块FPGA开发板变为一个Arduino板,并且可以使用Arduino IDE进行程序编译下载,FPGArduino已经在很多FPGA开发板上试验过,可以参考http://www.nxlab.fer.hr/fpgarduino/,但是其中列出的FPGA开发板我都没有,只有一块DE2-35,幸好FPGArduino在DE0-nano上移植了,可以参考这个进行修改,下面就是修改步骤。


    1、在http://www.nxlab.fer.hr/fpgarduino/下载源代码,本地文件夹名称为f32c-master。
    2、安装Quartus II13.0SP1
    3、在f32c-master\rtl\proj\altera目录下新建文件夹de2,内容就是de0nano目录下的文件,将bram文件夹下的de0_bram.qpf重命名为de2_bram.qpf。
    4、在f32c-master\rtl\altera目录下新建文件夹de2,其内容就是de2nano目录下的文件。
    5、修改f32c-master\rtl\proj\altera目录下的文件glue.qsf,修改如下两行:
    1. set_global_assignment -name VHDL_FILE ../../../../altera/de0nano/clocks/pll_50m.vhd
    2. set_global_assignment -name VHDL_FILE ../../../../altera/de0nano/top_bram.vhd
    复制代码
    改为
    1. set_global_assignment -name VHDL_FILE ../../../../altera/de2/clocks/pll_50m.vhd
    2. set_global_assignment -name VHDL_FILE ../../../../altera/de2/top_bram.vhd
    复制代码
    6、因为DE2的主板的时钟最高频率是50MHz,在做实验的时候决定就采用这个频率,为此需要修改top_bram.vhd,主要修改是:
    1. clk: in std_logic;           -- 由clk_50m改为clk
    2.         ......

    3. architecture Behavioral of glue is
    4.     --signal clk: std_logic;    -- 注释掉
    5.     ......
    6. begin

    7. --    clock: entity work.pll_50m  注释掉
    8. --    generic map (
    9. --        C_clk_freq => C_clk_freq
    10. --    )
    11. --    port map (
    12. --        clk_50m => clk_50m,
    13. --        clk => clk
    14. --    );
    复制代码
    7、QuartusII打开工程de2,在QuartusII的配置设备中,选择CycloneII35作为目标器件。

    8、配置管脚,如下,主要是时钟、串口收发、led灯、开关、按钮。

    1. set_location_assignment PIN_C25 -to rs232_rxd
    2. set_location_assignment PIN_B25 -to rs232_txd
    3. set_location_assignment PIN_AC21 -to led[7]
    4. set_location_assignment PIN_AD21 -to led[6]
    5. set_location_assignment PIN_AD23 -to led[5]
    6. set_location_assignment PIN_AD22 -to led[4]
    7. set_location_assignment PIN_AC22 -to led[3]
    8. set_location_assignment PIN_AB21 -to led[2]
    9. set_location_assignment PIN_AF23 -to led[1]
    10. set_location_assignment PIN_AE23 -to led[0]
    11. set_location_assignment PIN_N26 -to btn_left
    12. set_location_assignment PIN_N25 -to btn_right
    13. set_location_assignment PIN_G26 -to sw[0]
    14. set_location_assignment PIN_N23 -to sw[1]
    15. set_location_assignment PIN_P23 -to sw[2]
    16. set_location_assignment PIN_W26 -to sw[3]
    复制代码

    9、编译下载到de2,可以发现8个红色led灯分为两组,左边四个为一组,右边四个为一组,可以发现这个两组led灯呈现出呼吸灯的状态,表示FPGArduino已经成功运行。下一步可以下载程序进去了

    10、下载ArduinoIDE 1.6.5,打开“文件”-》“首选项”,在Additional Boards Manager URLs中输入如下地址:

    http://www.nxlab.fer.hr/fpgarduino/package_f32c_core_index.json

    1.png

    11、打开“工具”-》“开发板”-》“开发板管理”,下拉至最下面,会发现FPGArduino,点击右下角的install即可。网速比较慢,会耗时较长,每次下载进度长时间不动的时候,可以强行关闭Arduino IDE,然后重新安装,不过幸好可以断点续传,每次都是接着上次没有下载完的部分开始,不会从头开始。

    2.png

    12、安装完成后重新启动Arduino IDE,然后会在“工具”的菜单下出现如下内容:

    3.png

    13、当选择Terasic DE0-Nano作为目标板时,“工具”菜单变为如下:

    4.png

    14、此外,“文件”-》“示例”菜单也添加了新的项目,如下:

    5.png

    15、将DE2的DB-9串口连接到计算机上,然后使用Arduino IDE打开示例中的Basics中的Blink程序,在工具中板子选择为Generic FPGA Boards、CPU Architecture选择为MIPS、CPU Speed选择为50Mhz、RAM Size选择为32KB、Protocol选择为Hex 115.5kbps no verify RS232、PIN map选择为Generic MAP、端口就选择计算机上连接FPGA板串口的那个串口,然后就像操作普通Arduino板那样点击下载,即可。会发现DE2上的ledr5出现闪亮,下载成功。

    ---------------------

    作者:leishangwen

    来源:CSDN


    回复

    使用道具 举报

    主题

    好友

    1万

    积分

    翰林

  • TA的每日心情
    郁闷
    昨天 17:17
  • 签到天数: 973 天

    连续签到: 2 天

    [LV.10]以坛为家III

    发表于 2019-4-7 12:13:50 |显示全部楼层
    想法倒还是不错的 522.jpg
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /3 下一条

    手机版|电路城

    GMT+8, 2019-6-16 15:18 , Processed in 0.072179 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz!

    返回顶部