原创 【博客大赛】Nexys3学习手记8:FT232之高速UART(1)

2013-8-16 11:25 3057 16 17 分类: FPGA/CPLD 文集: Nexys3学习手记

Nexys3学习手记8:FT232之高速UART

         继续上一节的工程,这里要接着在XPS上扩展一个UART外设,配合板载的USB2UART芯片FT232R做个高速串口传输测试。

         首先打开上一个ISE工程,然后双击顶层模块下的mycpu模块即可开启硬件开发平台XPS,如图1所示。

001.jpg

 

图1 点击进入XPS

         传说中XPS上提供了两个AXI总线对应的UART外设IP核,如图2所示,即UART 16550-style和UART-Lite。本节要添加的名为UART-Lite的外设,故名思意便是精简的小身板UART外设,几番接触下来,果然如此,对于复杂的UART使用这个Lite版还确实难堪大任,不过对于我们的实验学习还是多多益善,简单才容易玩转嘛,哈哈。

002.jpg

 

图2 UART外设

双击图2的AXI UART(Lite)选项,弹出配置页面如图3所示,明白人一眼就知道,这里可设置其波特率、传输数据位和校验位等。除此以外,基本没有可以设置的选择项了,Lite就Lite在此,硬件中必须一次性设置好固定的UART传输模式,软件无法灵活的编程更改。不过据说这个UART-Lite是开源的,感兴趣朋友不妨去研究一下,把这个Lite改造得很强大也是个很不错的活儿。

003.jpg

 

图3 UART-Lite外设配置页面

         点击图3右上角的pdf小图标便可查看此外设的说明文档axi_uartlite_ds741.pdf。如图4所示,UART-Lite的功能框图中示意改外设包含了4个最基本的软件可访问的寄存器,即数据接收寄存器(Receive Data FIFO)、数据发送寄存器(Transmit Data FIFO)、状态寄存器(Status Register)和控制寄存器(Control Register)。

004.jpg

 

图4 UART-Lite功能框图

         在完成UART-Lite的配置后,点击OK,便会弹出如图5所示的串口。采用默认设置,意为UART-Lite外设的AXI总线接口能够自动和系统的MicroBlaze处理器上的片内AXI总线接口相匹配。

005.jpg

 

图5 例化和连接IP核

添加好新的外设组件,需要重新点击XPS的菜单HardwareàGenerate Netlist生成新的网表。新的Netlist成功生成后,回到ISE查看mycpu.xmp下对应的View HDL Instantiation Template,此时相比原来的工程多了两个信号接口axi_uartlite_0_RX_pin和axi_uartlite_0_TX_pin,即UART-Lite的收发信号。

006.jpg

 

图6 系统例化模板

         重新编辑并例化顶层文件,修改后的顶层代码如下:

module testled(

            clk,rst_n,

            led,

            uart_rx,uart_tx

        );

 

input clk;      //100MHz

input rst_n;    //低电平复位信号

 

output[7:0] led;    //连接到LED指示灯

 

input uart_rx;      //UART数据接收

output uart_tx; //UART数据发送

 

 

wire clk_100m;      //clocking输出100MHz

wire clk_50m;       //clocking输出50MHz

wire clk_25m;       //clocking输出25MHz

wire clk_12m5;      //clocking输出12.5MHz

wire clk_locked;    //clocking输出完成标志位

 

//---------------------------------------------------

//IP核Clocking Wizard例化

//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG

 

  myclocking uut_myclocking

   (// Clock in ports

    .CLK_IN1(clk),      // IN

    // Clock out ports

    .CLK_OUT1(clk_100m),     // OUT

    .CLK_OUT2(clk_50m),     // OUT

    .CLK_OUT3(clk_25m),     // OUT

    .CLK_OUT4(clk_12m5),     // OUT

    // Status and control signals

    .RESET(!rst_n),// IN

    .LOCKED(clk_locked));      // OUT

// INST_TAG_END ------ End INSTANTIATION Template ---------

 

//---------------------------------------------------

// 例化mysoc系统

(* BOX_TYPE = "user_black_box" *)

mysoc uut_mysoc (

    .RESET(rst_n),

    .LEDS_TRI_O(led),

    .clock_generator_0_CLKIN_pin(clk_100m),

    .axi_uartlite_0_RX_pin(uart_rx),

    .axi_uartlite_0_TX_pin(uart_tx)

    );

 

endmodule

         对顶层新添加的两个信号接口进行管脚分配,将以下两条语句添加到testled.ucf中即可:

NET "uart_rx" LOC = N17;

NET "uart_tx" LOC = N18;

         最后重新编译整个ISE工程并生成.bit下载文件。

文章评论1条评论)

登录后参与讨论

电子匠人 2013-9-8 13:04

写的有点不详细啊,或者说太粗略了啊
相关推荐阅读
特权ilove314 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
特权ilove314 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
特权ilove314 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
特权ilove314 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
我要评论
1
16
关闭 站长推荐上一条 /2 下一条