开发必备硬件工具:
- Artix 7 开发板 x 1
- CKLINK
- USB 串口模块
- PMOD 模块 (根据设计需求自拟)
开发必备软件工具:
原始工程样例代码 (文件夹名称):
- Wujian100 (Vivado 工程,本文档中统一简称 FPGA 工程
- sdk (wujian100 对应 CDK 示例工程,本文档中统一简称 sdk 工程
辅助资料:
打开 ..\wujian100\wujian_n4
下的 vivado 工程
对 .xdc
文件进行修改,以满足相应的开发需求,打开串口配置管脚和相应的 GPIO 管脚:
set_property PACKAGE_PIN G16 [get_ports PAD_USI0_SCLK ] #RXD
set_property PACKAGE_PIN F16 [get_ports PAD_USI0_SD0 ] #TXD
修改约束后重新对 FPGA 工程进行综合与 .bit
文件生成,烧写至 N4DDR 开发板中。
使用用于调试器 CKLINK 与 FPGA 开发板进行连接,进入 CDK 软件在 Project Setting 的 Debug 选项的 Target 窗口可以查看到 wujian100 的内核,如图 1 所示。
连接关系如下表所示
FPGA | CKLINK |
JA1: C17 | TCLK |
JA2: D18 | TMS |
GND | GND |
由于没有针对 N4DDR 上的 Flash 驱动,因此不能直接通过下载实现程序的运行,使用用于调试的 CKLINKB 通过分步调试后全速运行,实现程序暂存于 wujian100 的 RAM 中实现运行。各外设的使用 CDK 样例见原始工程样例代码的 sdk 压缩包。
CDK 工程方面以 UART 驱动为例,UART 的工程路径为: ..\sdk\projects\examples\driver\usart\CDK
如果使用的是本次的示例 wujian100 FPGA 工程,则默认的 wujian100 工作频率为 18 MHz,首先需要在 soc.h
文件中修改相应的时钟频率参数,代码如下:
#ifndef IHS_VALUE
#define IHS_VALUE (18000000)
#endif
#ifndef EHS_VALUE
#define EHS_VALUE (18000000)
#endif
使用函数接口 csi_usart_config()
便可实现相应的配置,接口函数的参数如下:
int32_t csi_usart_config(usart_handle_t handle,
uint32_t baud,
usart_mode_e mode,
usart_parity_e parity,
usart_stop_bits_e stopbits,
usart_data_bits_e bits)
推荐配置如下:
csi_usart_config(usart, 115200, USART_MODE_ASYNCHRONOUS, USART_PARITY_NONE, USART_STOP_BITS_1, USART_DATA_BITS_8);
在此波特率下,编译工程,通过 USB 串口模块或者 PMOD UART 模块与电脑进行连接,使用 CKLINKB 在调试模式下全速运行。打开电脑的串口助手软件,可以看到以下现象,如图 2 所示: