EGo1用户手册

1 FPGA

EGo1采用Xilinx Artix-7系列XC7A35T-1CSG324C FPGA,其资源如下:

_images/12.png

2 板卡供电

EGo1提供两种供电方式:Type-C和外接直流电源。EGo1提供了一个Type-C接口,功能为UART和JTAG,该接口可以用于为板卡供电。板卡上提供电压转换电路将Type-C输入的5V电压转换为板卡上各类芯片需要的工作电压。上电成功后红色LED灯(D18)点亮。

3 系统时钟

EGo1搭载一个100MHz的时钟芯片,输出的时钟信号直接与FPGA全局时钟输入引脚(P17)相连。若设计中还需要其他频率的时钟,可以采用FPGA内部的MMCM生成。

名称 原理图标号 FPGA IO PIN
时钟引脚 SYS_CLK P17

4 FPGA配置

EGo1在开始工作前必须先配置FPGA,板上提供以下方式配置FPGA:

  • USB转JTAG接口J6
  • 6-pin JTAG连接器接口J3
  • SPI Flash上电自启动

FPGA的配置文件为后缀名.bit的文件,用户可以通过上述的三种方法将该bit文件烧写到FPGA中,该文件可以通过Vivado工具生成,BIT文件的具体功能由用户的原始设计文件决定。

在使用SPI Flash配置FPGA时,需要提前将配置文件写入到Flash中。Xilinx开发工具Vivado提供了写入Flash的功能。板上SPI Flash型号为N25Q32,支持3.3V电压配置。FPGA配置成功后D24将点亮。

_images/13.png

5 通用I/O接口

通用I/O接口外设包括2个专用按键、5个通用按键、8个拨码开关、1个8位DIP开关、16个LED灯、8个七段数码管。

5.1 按键

两个专用按键分别用于逻辑复位RST(S6)和擦除FPGA配置PROG(S5),当设计中不需要外部触发复位时,RST按键可以用作其他逻辑触发功能。

_images/14.png
名称 原理图标号 FPGA IO PIN
复位引脚 FPGA_RESET P15

五个通用按键,默认为低电平,按键按下时输出高电平。

_images/15.png

管脚约束如下:

名称 原理图标号 FPGA IO PIN
S0 PB0 R11
S1 PB1 R17
S2 PB2 R15
S3 PB3 V1
S4 PB4 U4

5.2 开关

开关包括8个拨码开关和一个8位DIP开关。

_images/16.png

管脚约束如下:

名称 原理图标号 FPGA IO PIN
SW0 SW_0 R1
SW1 SW_1 N4
SW2 SW_2 M4
SW3 SW_3 R2
SW4 SW_4 P2
SW5 SW_5 P3
SW6 SW_6 P4
SW7 SW_7 P5
SW8 SW_DIP0 T5
SW_DIP1 T3
SW_DIP2 R3
SW_DIP3 V4
SW_DIP4 V5
SW_DIP5 V2
SW_DIP6 U2
SW_DIP7 U3

5.3 LED灯

LED在FPGA输出高电平时被点亮。

_images/17.png

管脚约束如下:

名称 原理图标号 FPGA IO PIN 颜色
D1_0 LED1_0 K3 Green
D1_1 LED1_1 M1 Green
D1_2 LED1_2 L1 Green
D1_3 LED1_3 K6 Green
D1_4 LED1_4 J5 Green
D1_5 LED1_5 H5 Green
D1_6 LED1_6 H6 Green
D1_7 LED1_7 K1 Green
D2_0 LED2_0 K2 Green
D2_1 LED2_1 J2 Green
D2_2 LED2_2 J3 Green
D2_3 LED2_3 H4 Green
D2_4 LED2_4 J4 Green
D2_5 LED2_5 G3 Green
D2_6 LED2_6 G4 Green
D2_7 LED2_7 F6 Green

5.4 七段数码管

数码管为共阴极数码管,即公共极输入低电平。共阴极由三极管驱动,FPGA需要提供正向信号。同时段选端连接高电平,数码管上的对应位置才可以被点亮。因此,FPGA输出有效的片选信号和段选信号都应该是高电平。

_images/18.png _images/19.png
名称 原理图标号 FPGA IO PIN
A0 LED0_CA B4
B0 LED0_CB A4
C0 LED0_CC A3
D0 LED0_CD B1
E0 LED0_CE A1
F0 LED0_CF B3
G0 LED0_CG B2
DP0 LED0_DP D5
A1 LED1_CA D4
B1 LED1_CB E3
C1 LED1_CC D3
D1 LED1_CD F4
E1 LED1_CE F3
F1 LED1_CF E2
G1 LED1_CG D2
DP1 LED1_DP H2
DN0_K1 LED_BIT1 G2
DN0_K2 LED_BIT2 C2
DN0_K3 LED_BIT3 C1
DN0_K4 LED_BIT4 H1
DN1_K1 LED_BIT5 G1
DN1_K2 LED_BIT6 F1
DN1_K3 LED_BIT7 E1
DN1_K4 LED_BIT8 G6

6 VGA接口

EGo1上的VGA接口(J1)通过14位信号线与FPGA连接,红、绿、蓝三个颜色信号各占4位,另外还包括行同步和场同步信号。

_images/20.png

管脚约束如下:

名称 原理图标号 FPGA IO PIN
RED VGA_RO F5
VGA_R1 C6
VGA_R2 C5
VGA_R3 B7
GREEN VGA_G0 B6
VGA_G1 A6
VGA_G2 A5
VGA_G3 D8
BLUE VGA_B0 C7
VGA_B1 E6
VGA_B2 E5
VGA_B3 E7
H-SYNC VGA_HSYNC D7
V-SYNC VGA_VSYNC C4

7 音频接口

EGo1上的单声道音频输出接口(J12)由下图所示的低通滤波器电路驱动。滤波器的输入信号(AUDIO_PWM)是由FPGA产生的脉冲宽度调制信号(PWM)或脉冲密度调制信号(PDM)。低通滤波器将输入的数字信号转化为模拟电压信号输出到音频插孔上。

_images/21.png

脉冲宽度调制

脉冲宽度调制信号是一连串频率固定的脉冲信号,每个脉冲的宽度都可能不同。这种数字信号在通过一个简单的低通滤波器后,被转化为模拟电压信号,电压的大小跟一定区间内的平均脉冲宽度成正比。这个区间由低通滤波器的3dB截止频率和脉冲频率共同决定。例如,脉冲为高电平的时间占有效脉冲周期的10%的话,滤波电路产生的模拟电压值就是Vdd电压的十分之一。

下图是一个简单的PWM信号波形:

_images/22.png

低通滤波器3dB频率要比PWM信号频率低一个数量级,这样PWM频率上的信号能量才能从输入信号中过滤出来。例如,要得到一个最高频率为5KHz的音频信号,那么PWM信号的频率至少为50KHz或者更高。通常,考虑到模拟信号的保真度,PWM信号的频率越高越好。下图是PWM信号整合之后输出模拟电压的过程示意图,可以看到滤波器输出信号幅度与Vdd的比值等于PWM信号的占空比。

_images/23.png

管脚约束如下:

名称 原理图标号 FPGA IO PIN
AUDIO PWM AUDIO_PWM T1
AUDIO SD SUDIO_SD# M6

8 USB-UART/JTAG接口

该模块将UART/JTAG转换成USB接口。用户可以非常方便的直接采用USB线缆连接板卡与PC机USB接口,通过Xilinx的配置软件如Vivado完成对板卡的配置。同时也可以通过串口功能与上位机进行通信。

管脚约束如下:

名称 原理图标号 FPGA IO PIN
UART RX UART_RX T4(FPGA串口发送端)
UART TX UART_TX N5(FPGA串口接收端)

UATR的全称是通用异步收发器,是实现设备之间低速数据通信的标准协议。“异步”指不需要额外的时钟线进行数据的同步传输,双方约定在同一个频率下收发数据,此接口只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收和发送可以同时进行,也就是全双工。

收发的过程,在发送器空闲时间,数据线处于逻辑1状态,当提示有数据要传输时,首先使数据线的逻辑状态为低,之后是8个数据位、一位校验位、一位停止位,校验一般是奇偶校验,停止位用于标示一帧的结束,接收过程亦类似,当检测到数据线变低时,开始对数据线以约定的频率抽样,完成接收过程。本例数据帧采用:无校验位,停止位为一位。

UART的数据帧格式,如下:

_images/25.png

9 USB转PS2接口

为方便用户直接使用键盘鼠标,EGo1直接支持USB键盘鼠标设备。用户可将标准的USB键盘鼠标设备直接接入板上J4 USB接口,通过PIC24FJ128,转换为标准的PS/2协议接口。该接口不支持USB集线器,只能连接一个鼠标或键盘。鼠标和键盘通过标准的PS/2接口信号与FPGA进行通信。

管脚约束如下:

PIC24J128标号 原理图标号 FPGA IO PIN
15 PS2_CLK K5
12 PS2_DATA L4

10 SRAM接口

板卡搭载的IS61WV12816BLL SRAM 芯片,总容量2Mbit。该SRAM为异步式SRAM,最高存取时间可达8ns。操控简单,易于读写。

_images/26.png

SRAM写操作时序如下(详细请参考SRAM用户手册):

_images/27.png

SRAM读操作时序如下(详细请参考SRAM用户手册):

_images/28.png

管脚约束如下:

SRAM引脚标号 原理图标号 FPGA IO PIN
I/O0 MEM_D0 U17
I/O1 MEM_D1 U18
I/O2 MEM_D2 U16
I/O3 MEM_D3 V17
I/O4 MEM_D4 T11
I/O5 MEM_D5 U11
I/O6 MEM_D6 U12
I/O7 MEM_D7 V12
I/O8 MEM_D8 V10
I/O9 MEM_D9 V11
I/O10 MEM_D10 U14
I/O11 MEM_D11 V14
I/O12 MEM_D12 T13
I/O13 MEM_D13 U13
I/O14 MEM_D14 T9
I/O15 MEM_D15 T10
A00 MEM_A00 T15
A01 MEM_A01 T14
A02 MEM_A02 N16
A03 MEM_A03 N15
A04 MEM_A04 M17
A05 MEM_A05 M16
A06 MEM_A06 P18
A07 MEM_A07 N17
A08 MEM_A08 P14
A09 MEM_A09 N14
A10 MEM_A10 T18
A11 MEM_A11 R18
A12 MEM_A12 M13
A13 MEM_A13 R13
A14 MEM_A14 R12
A15 MEM_A15 M18
A16 MEM_A16 L18
A17 MEM_A17 L16
A18 MEM_A18 L15
OE SRAM_OE# T16
CE SRAM_CE# V15
WE SRAM_WE# V16
UB SRAM_UB R16
LB SRAM_LB R10

11 模拟电压输入

Xilinx 7系列的FPGA芯片内部集成了两个12bit位宽、采样率为1MSPS的ADC,拥有多达17个外部模拟信号输入通道,为用户的设计提供了通用的、高精度的模拟输入接口。

下图是XADC模块的框图:

_images/29.png

XADC模块有一专用的支持差分输入的模拟通道输入引脚(VP/VN),另外还最多有16个辅助的模拟通道输入引脚(ADxP和ADxN,x为0到15)。

XADC模块也包括一定数量的片上传感器用来测量片上的供电电压和芯片温度,这些测量转换数据存储在一个叫状态寄存器(status registers)的专用寄存器内,可由FPGA内部叫动态配置端口(Dynamic Reconfiguration Port (DRP))的16位的同步读写端口访问。 ADC转换数据也可以由JTAG TAP访问,这种情况下并不需要去直接例化XADC模块,因为这是一个已经存在于FPGA JTAG结构的专用接口。此时因为没有在设计中直接例化XADC模块,XADC模块就工作在一种预先定义好的模式叫缺省模式,缺省模式下XADC模块专用于监视芯片上的供电电压和芯片温度。

XADC模块的操作模式是由用户通过DRP或JTAG接口写控制寄存器来选择的,控制寄存器的初始值有可能在设计中例化XADC模块时的块属性(block attributes)指定。模式选择是由控制寄存器41H的SEQ3到SEQ0比特决定,具体如下图示:

_images/30.png

XADC模块的使用方法,一是直接用FPGA JTAG专用接口访问,这时XADC模块工作在缺省模式;二是在设计中例化XADC模块,这是可以通过FPGA逻辑或ZYNQ器件的PS到ADC模块的专用接口访问。(详细请参考XADC用户手册ug480_7Series_XADC.pdf)

EGo1通过电位器(W1)向FPGA提供模拟电压输入,输入的模拟电压随着电位器的旋转在0 ~ 1V之间变化。输入的模拟信号与FPGA的C12引脚相连,最终通过通道1输入到内部ADC。

_images/31.png

12 DAC输出接口

EGo1上集成了8位的模数转换芯片(DAC0832),DAC输出的模拟信号连接到接口J2上。

_images/32.png

下面是DAC0832的操作时序图(详细请参考DAC0832用户手册)

_images/33.png

管脚约束如下:

DAC0832引脚标号 原理图标号 FPGA IO PIN
DI0 DAC_D0 T8
DI1 DAC_D1 R8
DI2 DAC_D2 T6
DI3 DAC_D3 R7
DI4 DAC_D4 U6
DI5 DAC_D5 U7
DI6 DAC_D6 V9
DI7 DAC_D7 U9
ILE(BYTE2) DAC_BYTE2 R5
CS DAC_CS# N6
WR1 DAC_WR1# V6
WR2 DAC_WR2# R6
XFER DAC_XFER# V7

13 蓝牙模块

EGo1上集成了蓝牙模块(BLE-CC41-A),FPGA通过串口和蓝牙模块进行通信。波特率支持1200,2400,4800,9600,14400,19200,38400,57600,115200和230400bps。串口缺省波特率为9600bps。该模块支持AT命令操作方法。

_images/34.png

管脚约束如下:

BLE-CC41-A标号 原理图标号 FPGA IO PIN
UART_RX BT_RX N2(FPGA串口发送端)
UART_TX BT_TX L3(FPGA串口接收端)

14 通用扩展I/O

EGo1上为用户提供了灵活的通用接口(J5)用来作I/O扩展,共提供32个双向IO,每个IO支持过流过压保护。

_images/35.jpg

管脚约束如下:

2x18标号 原理图标号 FPGA IO PIN
1 AD2P_15 B16
2 AD2N_15 B17
3 AD10P_15 A15
4 AD10N_15 A16
5 AD3P_15 A13
6 AD3N_15 A14
7 AD11P_15 B18
8 AD11N_15 A18
9 AD9P_15 F13
10 AD9N_15 F14
11 AD8P_15 B13
12 AD8N_15 B14
13 AD0P_15 D14
14 AD0N_15 C14
15 IO_L4P B11
16 IO_L4N A11
17 IO_L11P E15
18 IO_L11N E16
19 IO_L12P D15
20 IO_L12N C15
21 IO_L13P H16
22 IO_L13N G16
23 IO_L14P F15
24 IO_L14N F16
25 IO_L15P H14
26 IO_L15N G14
27 IO_L16P E17
28 IO_L16N D17
29 IO_L17P K13
30 IO_L17N J13
31 IO_L18P H17
32 IO_L18N G17