OpenEP4CE10-C用户手册

来自Waveshare Wiki
跳转至: 导航搜索

概述

    本用户手册描述了微雪电子FPGA Altera系列开发板[1] OpenEP4CE10-C[2]的设计原理和示例使用教程,旨在帮助用户快速上手入门。

硬件设计

    本章节主要讲解CoreEP4CE10最小核心板硬件的设计思路,带你见证EP4CE10F17C8N从一个芯片蜕变到CoreEP4CE10电路板的过程。

    从核心板的简介图可以看到除了主控芯片外,还有AMS1117稳压器件、EPCS16 串行FLASH器件、晶振、JTAG接口、LED和按键等器件。那么这些器件是如何与EP4CE10F17C8N连接在一起的,为什么要这样连接?都发挥着什么作用?

整体电路设计框架

    CoreEP4CE10核心板电路设计的整体结构框图如下图所示:
FPGA Cyclone Device Design.jpg

电源电路

    电源电路是CoreEP4CE10板子能够正常工作最基本的电路。查芯片手册可知,EP4CE10F17C8N需要1.0V/1.2V电压来供给内部逻辑电压(VCCINT)和PLL数字电压(VCCD_PLL),需要2.5V来供给PLL模拟电压(VCCA),另外IO电压(VCCIO)可接入1.2 V、1.5 V、1.8 V、2.5 V、3.0 V和3.3 V等不同的电压来给每个片区提供不同的电压标准。因此,在设计上,把输入的5V电压分别转换为3.3V、2.5、1.2V等来维持板子正常工作。同时为了方便检测电源的工作状态,板子在3.3V电源输出处接上LED发光二极管(电源指示灯)。电源电路原理图如下:

电源电路

引脚名称 描述
VCC5 外部输入5V供电电压
VCC33 经AMS1117-3.3稳压器件转压的3.3V电压,一般用于供给时钟、配置电路等电压和特殊功能引脚高电平等。
VCC25 经AMS1117-2.5稳压器件转压的2.5V电压,一般用于供给VCCA电压等。
VCC12 经AMS1117-1.2稳压器件转压的1.2V电压,一般用于供给的VCCINT、VCC_PLL电压等。

时钟电路

    在FPGA设计中时钟的最好解决方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计中的每一个时序器件,只要有可能就因该尽量在设计项目中采用全局时钟,FPGA都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。在器件中,这种全局时钟能提供最短的是在延时。在设计中我们用到一个全局时钟口CLK,由于它是单个时钟口,所有我们考虑用有源晶振时钟作为外部时钟来源。板字采用的是50MHz的晶振,为系统提供精准的时钟源,其原理图如下:

时钟电路

引脚名称 描述
CLK 时钟输入

复位电路

    复位电脑包括RST复位电路和nCONFIG重置电路。RST复位采用RESET按键开关构成的阻容复位电路,按下后,低电平有效产生复位信号。nCONFIG重置电路则由nCONFIG按键来触发,按下后可以使FPGA进行重新配置而不需要重启板子电源。其原理图如下:

复位电路

引脚名称 描述
RESET 低电平复位
nCONFIG 低电平复位,恢复逻辑高电平即重新配置

配置/下载接口

    配置又称加载或下载,是对FPGA内容进行编程的一个过程。每次上电后需要进行配置是基于SRAM工艺FPGA的一个特点。在FPGA内部,有许多可编程的多路器、逻辑、互连线节点和RAM初始化内容等,都需要配置数据来控制。FPGA中配置RAM就起到了这样一个作用,它存放了配置数据的内容。

    根据FPAG在配置电路中的角色,其配置数据可以使用3种方式载入(Download)到目标器件,这三种分别是:FPGA主动(Active)方式、FPGA被动(Passive)方法和JTAG方式。JTAG接口是一个业界标准接口,Altera FPGA基本上都可以支持JTAG命令来配置FPGA,而且JTAG配置方式比其他任何一种配置方式优先级都高,因此,我们在板子提供了JTAG配置方式,其配置接口电路图如下所示:

    用户可以使用专用的Altera下载器USB Blaster[3]进行下载调试。如需编程到EPCS芯片需要对下载文件格式进行转换[4]

JTAG接口

引脚名称 描述
TDI 用于测试数据的输入
TDO 用于测试数据的输出
TMS 模式控制管脚,决定JTAG电路内部的TAP状态机的跳转
TCK 测试时钟,其他信号线都必须与之同步

配置电路

    为了使FPGA掉电后仍然能够保持程序数据,FPGA需要外接配置芯片,这里选用了Altera公司的串行FLASH存储器EPCS16。EPCS16属于增强型配置器件,容量高达16Mbit,支持对打容量FPGA的单片配置,它们可以由JTAG接口进行在系统编程(In System Programming)。其对应配置电路原理图如下:

配置电路

LED电路

    板载4个用户LED,每个LED都是直接由FPGA芯片上一个引脚来驱动的,当给对应的引脚一个逻辑低电平时,点亮LED,原理图如下所示:

FPGA-LED-Circuit.png

扩展板接口

    这一系列Open板子采用核心板和扩展板分离的方式,这种灵活的设计模式一方面方便用户根据自己的需求自行设计外接电路,方便快捷;另一方面核心板和底板接口设计充分考虑了与其他FPGA板子的兼容和通用性,方便用户升级换代。

开发板基本操作

上电和下载

    给CoreEP4CE10板子供电,需要给板子上对应的5V和GND接入5V的供电电源。供电正常的情况下,PWR_LED亮起。板载了JTAG下载标准接口,可使用专用的USB Blaster下载器接入JTAG接口进行下载操作,详见下图。
给核心板供电并接入下载器CoreEP4CE10-5V-Power.jpg
    对于OpenEP4CE10-C标准板的供电,相对简单,因为底板上有个专用的5V DC接口,用户直接把核心板接入底板,并用配送的电源线直接接入5V DC接口,然后把开关调到ON即可。
    使用Quartus II下载示例程序中的Verilog和VHDL,请参看视频教程:
    Video-logo.png Verilog程序下载视频教程
    Video-logo.png VHDL程序下载视频教程


入门实验

    在下列入门实验中的都要给板子供电。在提供的示例程序中有Verilog、VHDL、NIOS C三种语言,在实验时要下载对应的测试程序。
    下例实验中用的板子为OpenEP4CE10-C,其他型号的Altera板子也是类似的操作,若有部分实验不一样会有特别说明。

点亮LED


语言

Verilog

VHDL

Nios II C

例程名

LED

LED_hello_world

步骤

  1. 将SDRAM Board插入SDRAM接口(运行Nios II才用插)
  2. 下载示例程序

现象

  • 板上的4个LED灯自左到右开始流动
  • LED闪动
  • NOIS II软件的Console栏目显示“hello_world”

实验视频

Video-logo.png

Video-logo.png


控制摇杆JOYSTICK实验


语言

Verilog

VHDL

Nios II C

例程名

JOYSTICK

步骤

  1. 跳上底板上JOYSTICK_JMP处的跳线帽
  2. 将SDRAM Board插入SDRAM接口(运行Nios II才用插)
  3. 下载示例程序

现象

  • 拨动JOYSTICK摇杆的不用方向,可以看到L1~L4四个LED会有对应的亮灭变化。

实验视频

Video-logo.png

Video-logo.png


8 Push Buttons按键实验


语言

Verilog

VHDL

Nios II C

例程名

8 Push Buttons

 ——

步骤

  1. 将8 Push Buttons连接到8I/Os_1接口
  2. 下载示例程序
 

现象

  • 按下8 Push Buttons模块上的按键,核心板上的LED会有相应的显示。
 

实验视频

Video-logo.png

Video-logo.png

--


8 LEG LED Board数码管实验


语言

Verilog

VHDL

Nios II C

例程名

8 SEG LED Board

——

步骤

  1. 8 LEG LED Board接入16I/Os_2接口
  2. 下载示例程序
 

现象

  • 8 LEG LED Board模块上的4个数码管会自动显示0~E等字符
 

实验视频

Video-logo.png

Video-logo.png

--


4x4 Keypad矩阵键盘控制数码管实验


语言

Verilog VHDL Nios II C

例程名

 4x4 Keypad

步骤

  1. 将4x4 Keypad连接到8I/Os_1接口上
  2. 下载示例程序
 
  1. 将4x4 Keypad连接到8I/Os_1接口上
  2. 将8 SEG LED Board连接到16I/Os_2接口上
  3. 下载示例程序
 
  1. 将4x4 Keypad连接到8I/Os_1接口上
  2. 将SDRAM Board插入SDRAM接口上
  3. 下载示例程序

现象

  • 4x4 Keypad控制的是核心板的LED灯
  •  4x4 Keypad控制的是数码管的显示
  • 4x4 Keypad控制的是核心板的LED灯

实验视频

Video-logo.png

Video-logo.png

DS18B20温度传感器实验


语言

Verilog VHDL Nios II C

例程名

 DS18B20

步骤

  1. 将DS18B20+连接到1-WIRE接口上
  2. 跳上1-WIREJMP跳线帽
  3. 将8 SEG LED Board插入16I/Os_2
  4. 下载示例程序
 
  1. 将DS18B20+连接到1-WIRE接口上
  2. 跳上1-WIREJMP跳线帽
  3. 将LCD1602插入LCD1602接口
  4. 下载示例程序
  1. 将DS18B20+连接到1-WIRE接口上
  2. 跳上1-WIREJMP跳线帽
  3. 将SDRAM Board插入SDRAM接口
  4. 重启板子电源

现象

  • LCD1602显示温度
  • 数码管显示温度
  • Nios II软件的Console栏显示温度

Altera-DS18B20-Verilog.jpg Altera-DS18B20-VHDL.jpg

蜂鸣器实验


语言

Verilog

VHDL

Nios II C

例程名

Buzzer/PWM

——

步骤

  1. 将Buzzer处跳线帽接上
  2. 下载示例程序
 

现象

  • 蜂鸣器响
 

PS/2键盘实验


语言

Verilog VHDL Nios II C

例程名

PS2

步骤

  1. 将VGA PS2 Board插入16I/Os_2,接上键盘
  2. 将LCD1602插入LCD1602接口
  3. 下载示例程序
  1. 将VGA PS2 Board插入16I/Os_2,接上键盘
  2. 将SDRAM Board插入SDRAM接口
  3. 下载示例程序
  4. 重启板子电源

现象

  • 键盘值在lLCD602上显示
  • 按键盘对应ASIC码在Nios II软件的Console栏显示

实验视频

Video-logo.png


VGA显示实验


语言

Verilog VHDL Nios II C

例程名

 VGA_color VGA  —— 

步骤

  1. 将VGA PS2 Board插入16I/Os_2
  2. 接上VGA电脑显示器
  3. 下载示例程序
 

现象

  • VGA显示器显示 
 

实验视频

Video-logo.png

Video-logo.png

--

字符LCD1602实验


语言

Verilog

VHDL

Nios II C

例程名

LCD1602

——

步骤

  1. 将LCD1602插入LCD1602接口
  2. 下载示例程序
 

现象

  • 1602显示画面(如果LCD1602显示偏亮或偏暗,则需要对应调节下开发板底部的背光电阻LCD_V0。
 

点阵LCD12864实验


语言

Verilog VHDL Nios II C

例程名

LCD12864   —— —— 

步骤

  1.  将LCD12864插到开发板的LCD接口上
  2. 下载示例程序
   

现象

  •  LCD12864显示画面
   

Altera-LCD12864-Verilog.jpg

3.2寸LCD屏显示触摸实验


语言

Verilog VHDL Nios II C

例程名

——  —— LCD32 

步骤

 
  1.  将3.2inch 320x240 Touch LCD通过3.2 inch LCD Adapter(B)转接块插入32I/Os_2接口
  2. 将SDRAM Board (B)插入SDRAM接口
  3. 下载示例程序
  4. 下载完成后重启电源

现象

 
  •  3.2inch 320x240 Touch LCD 显示并且可以触摸

USB通信实验


语言

Verilog VHDL Nios II C

例程名

—— USB —— 

步骤

  1.  将CY7C68013A USB Board插入32I/Os_1接口,并把它的另外一端接到PC机上
  2. 下载示例程序
 

现象


  •  通过上位机USB_LED.exe可以控制开发板上的LED
 

备注


  • 在使用CY7C68013A USB Board模块前,需要先安装驱动软件:EZ-USB.exe
 

实验视频

--

Video-logo.png

--


SD-Card实验


语言

Verilog VHDL Nios II C

例程名

—— —— SD-Card

步骤

  1.  将Micro SD Storage Board插入8I/Os_1
  2. ·将SDRAM Board插入SDRAM接口
  3. 下载示例程序
  4. 重启板子电源

现象


  •  先在SD卡自己放入文件MESSAGE.TXT,运行程序后,会在SD卡中创建新的文件hello.txt
  • 在软件的Console栏读出MESSAGE.TXT内的内容


Ethernet以太网口通信实验


语言

Verilog VHDL Nios II C

例程名

——  —— ENC28J60

步骤

 
  1.  将ENC28J60 Ethernet Board接入16I/Os_2中
  2. 把网线一端接入到电脑,另一端接到PC机上
  3. 下载示例程序

现象

 
  •  在IE浏览器上显示信息,可以按照IE浏览器提示操作
  • 在Nios II软件的Console栏显示数字


UART串口通信实验


语言

Verilog VHDL Nios II C

例程名

UART

步骤

 
  1.  将RS232 Board插入8I/Os_1,并把它的另外一端接到PC机上
  2. 下载示例程序
  1.  将RS232 Board插入8I/Os_1,并把它的另外一端接到PC机上
  2. 将8 SEG LED Board插入16I/Os_2
  3. 下载示例程序
 
  1.  将RS232 Board插入8I/Os_1,并把它的另外一端接到PC机上
  2. 将SDRAM Board插入SDRAM接口
  3. 下载示例程序

现象

  •  打开串口调试助手,波特率设置为9600
  •  发送一个任意键盘字母或数字在串口调试助手显示
  •  打开串口调试助手,波特率设置为9600
  •  发送一个任意数字会在数码管上显示
  •  在Nios II软件的Console栏,先发送任意字,再发送“t”串口会检测到“t”
  •  发送“v”关闭串口

实验视频

Video-logo.png

Video-logo.png


I2C EEPROM实验


语言

Verilog VHDL Nios II C

例程名

 AT24CXX

步骤

  1. 将AT24CXX EEPROM Board插入8I/Os_1
  2. 将8 SEG LED Board插入16I/Os_2
  3. 下载示例程序
 
  1. 将AT24CXX EEPROM Board插入8I/Os_1
  2. 将8 SEG LED Board插入16I/Os_2
  3. 将SDRAM Board插入SDRAM接口
  4. 下载示例程序

现象

  • 有两个数码管显示,其中的一个显示SDRAM_L的3,5,7,9管脚对AT24CXX中写入的数据,另外一个显示对从AT24CXX读到的数据
  • 先用跳线帽短接SDRAM_R的5,6脚,再拔掉5,6脚跳线帽,短接SDRAM_R的3,4脚,则对应的写入的数据会先写入到AT24CXX然后被读出来显示在数码管上
  •  LED显示一个一个加

备注

  • 程序中SDRAM_L的3,5,7,9号管脚初始状态设置为上拉输入高电平,SDRAM_L的4,6,8,10管脚为输出低电平,可以通过跳线帽短接3与4,5与6,7与8,9与10设置写入的数据

 

实验视频

Video-logo.png


AT45DB实验


语言

Verilog VHDL Nios II C

例程名

——  —— AT45DBXX

步骤

 
  1. 将AT45DBXX DataFlash Board插入8I/Os_1
  2. 将SDRAM Board插入SDRAM接口

现象

 
  •  LED按二进制数值迭加显示:0000、0001、0010、0011...
  • 说明:程序会先把数据0~255写入AT45DB,然后再从AT45DB上读取数据,转成二进制显示在LED灯上。

PCF8563 时钟实验


语言

Verilog VHDL Nios II C

例程名

——  —— PCF8563

步骤

 
  1. 将PCF8563 RTC Board插入8I/Os_1
  2. 将SDRAM Board插入SDRAM接口

现象

 
  •  Nios II软件的Console栏显示时间

USB转FIFO实验


语言

Verilog VHDL Nios II C

例程名

——  —— FT245

步骤

 
  1. 将FT245 USB FIFO Board插入16I/Os_2,并把它的另外一端接到PC机上
  2. 将SDRAM Board插入SDRAM接口
  3. 下载示例程序

现象

 
  •  在串口助手发送任意一个数,串口助手显示出来

参考资料

  1. Altera系列开发板
  2. Open系列开发板简介
  3. USB Blaster产品简介
  4. 通过JTAG口对FPGA器件进行在线配置(也称可编程串行配置),详见:USB Blaster