特权同学

【技术分享】以太网,FPGA就一定能搞定系列之芯片测试

0
阅读(3588)

以太网,FPGA就一定能搞定系列之芯片测试

本系列博文节选自特权同学的FPGA开发电子书《SF-CY3 FPGA套件开发指南》。

最新设计文档下载地址:http://pan.baidu.com/s/1em79m

 

1 概述   

CH395原厂提供了一个简单的基于PC的串口调试工具DEBUG395。因此我们可以使用SF-CY3核心板、SF-NET子板、SF-USB子板的连接,将SF-NET子板的UART接口连接到PC端。UART连接通路如图所示。看了这么一长串模块,其实我们的目的很简单,让PC机和SF-NET子板的UART连接到一起,只不过他们的电平不一致,所以需要SF-CY3核心板和SF-USB子板帮忙转接一下。

SF-CY3核心板中的FPGA需要些一段小代码,将CH395FT232UARTRXTX互联起来。新建文件夹ex35,创建Quartus II工程,编写源代码如下。

module ex35(

                ch395_tx,ch395_rx,ch395_rst_n,

                ft232_rx,ft232_tx

            );

//P1:1-2 for UART mode

//P2:1-2  P3:1-2  P4:1-2 for 9600bps           

           

input ch395_tx;     //CH395 UART-TX PIN_65

output ch395_rx;    //CH395 UART-RX PIN_66

output ch395_rst_n; //CH395 RESET, ACTIVE LOW   PIN_68

input ft232_tx;     //FT232 UART-TX PIN_126

output ft232_rx;    //FT232 UART-RX PIN_127

 

assign ch395_rx = ft232_tx;

assign ft232_rx = ch395_tx;

 

assign ch395_rst_n = 1'b1;

 

endmodule

         进行引脚分配。然后编译工程,待板级环境搭建好后,将sof下载到SF-CY3核心板中。

 

3 板级环境搭建

         SF-NET子板有4个跳线帽,P1的跳线帽选择用于设定FPGACH395的通信模式,对应的功能描述如下。本实例设定的UART通信模式,即P11-2PIN端接。

P1

通信模式

1-2

UART

2-3

SPI

         P2\P3\P4的跳线帽选择用于设定UART通信模式下的上电波特率,对应的功能描述如下。本实例设定的启动波特率为9600bps,即P2\P3\P4均为1-2PIN端接。

P2

P3

P4

波特率

1-2

1-2

1-2

9600 bps

1-2

1-2

2-3

57600 bps

1-2

2-3

1-2

115200 bps

1-2

2-3

2-3

460800 bps

2-3

1-2

1-2

250000 bps

2-3

1-2

2-3

1000000 bps

2-3

2-3

1-2

3000000 bps

2-3

2-3

2-3

921600 bps

         SF-CY3核心板的插座P3SF-NET子板的插座P5相连,将SF-CY3核心板的插座P2SF-USB子板的插座P1相连,给SF-CY3核心板上电并连接好USB-Blaster下载线,同时别忘了将USB延长线连接到SF-USBUART-USB端口(P4)上。

         将编译好并生成sof文件的测试代码下载到SF-CY3核心板中。

 

4 PC端串口工具调试

如图所示,打开电脑的设备管理器,查看“端口(COMLPT)”中的USB Serial Port所对应的端口号,笔者电脑的端口号对应COM59,这实际上是一个虚拟的COM口。

         双击打开“DEBUG395”串口调试小工具。

         如下左图所示,设定好串口号为COM59(根据实际分配串口号设定),波特率为9600bps,然后点击“打开串口”,便出现右图的显示状态,说明串口已经连接好(当然了串口连接好,并不能保证串口连接正确并且能够正常通信,这还需要实验者认真确认每个设备是否都连接的正确)。

         如图所示,这里可以将CH375的基本命令逐个的测试一遍。在调试窗口中,如果单机“命令操作”下面的任意按钮,则右侧的“说明”窗口中将会显示这个命令对应的命令码、参数和功能,但不执行具体的串口收发操作。而双击“命令操作”某个按钮时,则将发送对应的命令,如果发送操作中带有用户可设定的参数,则会弹出一个对话框供参数的设置。实际收发的数据字节数会在窗口左下角显示出来,发送命令的具体状态在在“命令码发送/接收的数据”窗口中显示。

         如图所示,我们双击“复位”按钮,则发送3个十六进制数据位“57 AB 05”,没有返回数据。

                   执行复位只有发送,没有返回,我们其实并不知道CH395FPGA之间的通信是否正常了,接着我们可以试试“测试命令”按钮,弹出的“输入参数”对话框中,我们可以任意修改测试值,然后点击OK,这里所设置的测试值在发送给CH395后,会返回一个取反后的数据。

         如图所示,当我们执行了当前的测试命令后,发送4个字节的十六进制数据“57 AB 06 55”,返回了1个字节数据“AA”正是我们所输入的数据“55”按位取反的结果。

         如图所示,我们双击“获取版本号”后,显示发送了3个字节数据“57 AB 01”,返回1个字节数据“42”。

         在芯片手册中,42H所对应的版本号应该是02H

         如图所示,我们双击“获取MAC地址”,则发送3个字节的命令数据“57 AB 40”,返回6个字节的MAC地址“84 C2 E4 F0 08 EF”。