正点原子 发表于 2021-9-26 18:28:47

《新起点V2之FPGA开发指南》第三章 硬件资源详解

本帖最后由 正点原子 于 2021-10-30 10:17 编辑

1)实验平台:正点原子新起点V2FPGA开发板
2)章节摘自【正点原子】《新起点之FPGA开发指南 V2.1》
3)购买链接:https://detail.tmall.com/item.htm?id=609758951113
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-328002-1-1.html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子FPGA技术交流QQ群:712557122








第三章 硬件资源详解
本章,我们将向大家详细介绍正点原子新起点FPGA开发板各部分的硬件原理图,让大家对该开发板的各部分硬件原理有个深入理解,并向大家介绍开发板的使用注意事项,为后面的学习做好准备。
本章包括以下几个部分:
11.1开发板原理图详解
1.2开发板使用注意事项
1.3FPGA的学习方法
1.1开发板原理图详解
新起点FPGA开发板的主控芯片选择的是Cyclone IV E系列的EP4CE10F17C8N,该芯片是极具功耗和性价比优势,它拥有10320个逻辑单元、414Kbits的嵌入式存储资源、23个18×18的嵌入式乘法器、2个通用锁相环、10个全局时钟网络、8个用户IO BANK和最大179个用户I/O,了解器件的整体硬件资源,有助于我们在设计时根据器件提供的资源,对设计进行合理的优化,以达到最佳的性价比。
1.1.1FPGA BANK原理图
新起点的板载主控FPGA芯片共有256个IO(用户可用I/O 179个),这么多的IO如果糅杂在一起是非常混乱的,因此FPGA芯片制造厂商将这些IO分成了一个一个块,而每个块就是我们所说的IO BANK。EP4CE10F17C8N拥有8个IO BANK,各个IO BANK的供电电压可以不相同,其IO BANK原理图如下图所示:

图 3.1.1 BANK1-BANK4 IO引脚连接图

图 3.1.2 BANK5-BANK8 IO引脚连接图
1.1.2时钟输入
新起点FPGA开发板提供给FPGA的时钟晶振电路如下图所示:

图 3.1.3 50M晶振
由上图可知,晶振提供给FPGA的时钟为50MHz,当需要其它频率的时钟时可通过FPGA内部的锁相环 PLL产生,如SDRAM的驱动时钟100MHz。
1.1.3JTAG接口

图 3.1.4 JTAG接口
这里,我们采用的是标准的JTAG接法(10脚),使用FPGA TCK、FPGA TDO、FPGA TDI、FPGA TMS四个引脚来对FPGA进行下载测试。
1.1.4时钟/复位/按键
新起点FPGA开发板的时钟/复位/按键电路与FPGA的引脚连接如下图所示:

图 3.1.5 时钟/复位/按键接口
其中5个输入按键(1个复位按键,4个功能按键)的电路原理图如下图所示:

图 3.1.6 按键电路
RESET为复位按键,按下时低电平复位。KEY0~KEY3为普通按键输入,外接上拉电阻,未按下时按键端口输出高电平,按下时输出低电平。按键作为最简单的输入设备,适合在需要给系统输入控制信号的场合使用。
1.1.5LED
新起点FPGA开发板板载了4个LED,电路原理图如下图所示:

图 3.1.7 四颗LED
四个LED均由FPGA驱动,当FPGA输出高电平时电亮对应的LED灯,点亮LED灯。
1.1.6有源蜂鸣器
新起点FPGA开发板板载了一个有源蜂鸣器,电路原理图如下图所示:

图 3.1.8 有源蜂鸣器
有源蜂鸣器是指自带了震荡电路的蜂鸣器,这种蜂鸣器一上电就会自己震荡发声。而如果是无源蜂鸣器,则需要外加一定频率(2~5Khz)的驱动信号,才会发声。这里我们选择使用有源蜂鸣器,方便大家使用。
1.1.7电容触摸按键
新起点FPGA开发板板载了一个电容触摸按键,电路原理图如下图所示:

图 3.1.9 电容触摸按键
图中1K电阻是电容充电电阻,TPAD直接连接在FPGA的F8引脚上。
1.1.8数码管
新起点FPGA开发板板载了6个共阳数码管,电路原理图如下图所示:

图 3.1.10 数码管
需要注意的是,这里是用PNP作为开关控制位选信号,由PNP三极管原理可知,当基极为低电平时,三极管导通,输出高电平;如对Q1而言,当SEL0_T为低电平时,选通数码管DIG1。
1.1.9HDMI 接口
新起点FPGA开发板板载了一个标准的HDMI接口,电路原理图如下图所示:

图 3.1.11 HDMI 接口
新起点FPGA开发板板载一个HDMI接口,HDMI接口英文全称是High-Definition Multimedia Interface,即高清多媒体接口。它能够同时传输视频和音频,简化了设备的接口和连线;同时提供了更高的数据传输带宽,可以传输无压缩的数字音频及高分辨率视频信号。从上图中可以看到新起点板载的HDMI接口是只支持输出不支持输入的,因为HOT PLUG被固定接地了。另外为了保证信号的质量,在设计中还加入了两块抗干扰的芯片(D5、D6),可以有效的保证HDMI四路差分信号(一路时钟,三路数据)的输出质量。
1.1.10RGB LCD 模块接口
新起点FPGA开发板板载的RGB LCD模块接口电路如下图所示:

图 3.1.12 RGB LCD 模块接口
上图就是RGB LCD接口,采用RGB565数据格式,并支持触摸屏(电容屏)。该接口仅支持RGB接口的液晶(不支持MCU接口的液晶),目前正点原子的RGB接口LCD模块有:4.3寸(ID:4342 , 480*272和 ID:4384 , 800*480)、7寸(ID:7084, 800*480和ID:7016,1024*600)和10寸(ID:1018 , 1280*800)等尺寸可选。
图中的T_MISO/T_MOSI/T_PEN/T_CS/T_SCK用于实现对液晶触摸屏的控制(支持电阻屏和电容屏),LCD_BL用于控制LCD的背光。
1.1.11红外接收头
新起点FPGA开发板板载了一个红外接收头,电路原理图如下图所示:

图 3.1.13红外接收头
HS0038是一个通用的红外接收头,几乎可以接收市面上所有红外遥控器的信号,有了它,就可以用红外遥控器来控制开发板了。REMOTE_IN为红外接收头输出的信号,即FPGA的红外输入信号。
1.1.12单总线接口
新起点FPGA开发板板载了一个单总线接口,电路原理图如下图所示:

图 3.1.14温湿度传感器接口
该接口支持DS18B20(温度传感器)/DHT11(温湿度传感器)等单总线传感器。图中的1WIRE_DQ信号是传感器的数据线。
1.1.13EEPROM
新起点FPGA开发板板载的EEPROM电路如下图所示:

图 3.1.15 EEPROM
EEPROM芯片使用的是AT24C64,该芯片的容量为64Kb,对于我们普通应用来说是足够了的。
这里我们把A0~A2均接地,对AT24C64来说也就是把地址位设置成了0了,写代码的时候要注意这点。IIC_SCL接在FPGA的D8引脚,IIC_SDA接在FPGA的C8引脚,另外AT24C64采用IIC协议进行数据的读写,而IIC的串行时钟线SCL和数据线SDA均是开漏的,所以需要接上拉电阻。
1.1.14实时时钟
新起点FPGA开发板板载了一个实时时钟RTC,电路原理图如下图所示:

图 3.1.16实时时钟 RTC
实时时钟芯片为PCF8563,采用直接供电(VCC3.3)和备用电源供电两种供电方式,采用IIC协议进行通信,与EEPROM共用IIC引脚。备用电源供电时使用纽扣电池CR1220供电,安放在开发板底部的BAT1插座。BAT54C是一款正向电压为320mV的半导体二极管。
1.1.15环境光传感器
新起点FPGA开发板板载了一个环境光传感器,电路原理图如下图所示:

图 3.1.17环境光传感器
图中的U7就是环境光传感器:AP3216C,可以用来感应周围光线强度、接近距离和红外线强度等,该芯片采用IIC接口,与EEPROM共用IIC引脚。
1.1.16SDRAM
新起点FPGA开发板板载了SDRAM,此部分电路图如下图所示:

图 3.1.18 SDRAM
图中,U23就是SDRAM芯片,型号为W9825G6KH,容量为32M字节。该芯片可以满足FPGA的各种大内存需求场合,实现数据的缓存。
1.1.17USB串口
新起点FPGA开发板板载了一个USB串口,其原理图如下图所示:

图 3.1.19 USB转串口芯片
USB转串口,我们选择的是CH340C,是国内芯片公司南京沁恒的产品,稳定性经测试还不错,所以还是多支持下国产。
USB_TYPC座子提供CH340G和电脑通信的接口,同时可以给开发板供电,VUSB就是来自电脑USB的电源,USB_UART是本开发板的可选供电口。
1.1.18OLED/摄像头模块接口
新起点FPGA开发板板载了一个OLED/摄像头模块接口,电路原理图如下图所示:

图 3.1.20 OLED/摄像头模块接口
图中P1接口可以用来连接正点原子 OLED模块或者正点原子摄像头模块。如果是OLED模块,则CMOS_PWDN和CMOS_XCLK不需要接(在板上靠左插即可),如果是摄像头模块,除了CMOS_XCLK不需要用到其他引脚都用到了。
1.1.19SD卡接口
新起点FPGA开发板板载了一个SD卡接口,电路原理图如下图所示:

图 3.1.21 SD 卡接口
图中SD_CARD为SD卡接口。SD卡采用SPI模式驱动,非常适合需要存储大量数据的情况。
1.1.20FLASH
新起点FPGA板载的SPI FLASH电路原理图如下图所示:

图 3.1.22 SPI FLASH芯片
FLASH芯片型号为W25Q16,存储容量为16Mbit(2M字节),采用SPI协议和FPGA进行通信,可做为FPGA的配置芯片(完全兼容EPCS16芯片),以保证FPGA在重新上电后仍能继续工作。
1.1.21ATK模块接口
新起点FPGA开发板板载了一个ATK模块接口,电路原理图如下图所示:

图 3.1.23 ATK 模块接口
如图所示,U3是一个1*6的排座,可以用来连接正点原子推出的一些模块,比如:蓝牙串口模块、GPS模块、MPU6050模块等。有了这个接口,我们连接模块就非常简单,插上即可工作。
1.1.22WIRELESS模块接口
新起点FPGA开发板板载了一个WIRELESS模块接口,电路如下图所示:

图 3.1.24无线模块接口
该接口用来连接NRF24L01、SPI WIFI模块等无线模块,从而实现开发板与其他设备的无线数据传输(注:NRF24L01不能和蓝牙/WIFI连接)NRF_CE/NRF_CS/NRF_IRQ连接在FPGA的J1/G2/G1上,而另外3个SPI信号则接FPGA的F1/F3/G1。
1.1.23引出IO口
新起点FPGA开发板总共有两组主IO引出口:P6和P7。其中,P6和P7分别采用2*20排针引出,总共引出72个IO口,如下图所示:

图 3.1.25引出IO口
引出的IO口可扩展用做其他用途,例如外接AD/DA模块,双目摄像头模块等。
1.1.24FPGA 电源设计
Cyclone IV FPGA需要四组供电,分别为内核供电(VCCINT)、PLL模拟电路供电(VCCA)、PLL数字电路供电(VCCD_PLL)和IO单元供电(VCCIO)。其中,内核供电电压根据器件是否为低电压版本区分,低电压版本,内核供电为1.0V,非低电压版本供电为1.2V。PLL模拟部分供电为固定的2.5V。IO供电电压值支持1.2V、1.5V、1.8V、2.5V、3.0V、3.3V多种电平标准,即有6种可选值。Cyclone IV FPGA器件供电示意图如下:

图 3.1.26 Cyclone IV E 供电示意图
由上图可知,设计FPGA供电电源可以简单的直接分两路供电:1.2V、2.5V和3.3V。一般而言,IO单元供电电压可以根据需要灵活设计,需要注意的是BANK3不支持1.2V供电。正点原子新起点开发板FPGA供电电源电路如下图所示:

图 3.1.27 FPGA供电电源电路
由图可知,新起点开发板上的IO BANK统一用3.3V供电,以提供足够大的供电电压。另外电源引脚附近一般需要加高频滤波电容以提供平滑稳定的电压。
1.1.25电源适配器输入接口
新起点FPGA开发板由电源适配器供电的电源接口原理图如下图所示:

图 3.1.28电源适配器供电电源接口
DC_IN用于外部直流电源输入,输入电压(12V)经过U16 DC-DC芯片转换为5V电源输出,其中D3是防反接二极管,避免外部直流电源极性接反的时候,烧坏开发板。
1.1.26电源按键开关
正点原子新起点FPGA开发板的供电电源可以从电源适配器供电,也可以通过USB供电,无论通过哪种方式供电,都经过电源开关K1控制是否对开发板供电,其原理图如下图所示:

图 3.1.29电源按键开关
VBTN为电源适配器输入的12V电压经电源转换芯片转换后得到的5V电压,VUSB为通过USB 接口输入的电压。TAP1引脚为开关按键控制的向开发板输出的电源电压(VCC5)。需要特别注意的是:对于供电电流需求大的器件如LCD,当使用USB供电时,由于最大电流不超过500mA,可能会导致使用时会出现LCD闪烁的现象,如果出现此种现象,改用电源适配器供电即可。
1.1.27电压转换电路
正点原子新起点FPGA开发板提供了3.3V、2.5V、1.2V的电源电压,皆由5V电源电压转换而来,其电压转换电路原理图如下图所示:

图 3.1.30电压转换电路
当电路接通后,通过电压转换芯片得到3.3V电压,点亮电源指示灯PWR,可以通过电源指示灯 PWR判断开发板供电是否正常。
1.1.28电源输入输出接口
新起点FPGA开发板板载了两组简单电源输入输出接口,其原理图如下图所示:

图 3.1.31电源输入输出接口
图中,VOUT1和VOUT2分别是3.3V和5V的电源输入输出接口,有了这2组接口,我们可以通过开发板给外部提供3.3V和5V电源了,虽然功率不大(最大1000ma),但是一般情况都够用了,大家在调试自己的小电路板的时候,有这两组电源还是比较方便的。同时这两组端口,也可以用来由外部给开发板供电。
图中D4是TVS管,可以有效避免VOUT外接电源/负载不稳的时候(尤其是开发板外接电机/继电器/电磁阀等感性负载的时候),对开发板造成的损坏。同时还能一定程度防止外接电源接反对开发板造成的损坏。
1.2开发板使用注意事项
为了让大家更好的使用正点原子新起点FPGA开发板,我们在这里总结该开发板使用的时候尤其要注意的一些问题,希望大家在使用的时候多多注意,以减少不必要的问题。
1)USB供电电流最大500mA,且由于导线电阻存在,供到开发板的电压,一般都不会有5V,如果使用了很多大负载外设,比如4.3寸屏、7寸屏、摄像头模块等,那么可能引起USB供电不足,所以开发板如果连接大负载模块的朋友,或者同时用到多个模块的时候,建议大家使用电源适配器供电。
2)当你想使用某个IO口用作其他用处的时候,请先看看开发板的原理图,该IO口是否有连接在开发板的某个外设上,如果有,该外设的这个信号是否会对你的使用造成干扰,先确定无干扰,再使用这个IO。
3)当液晶显示白屏的时候,请先检查液晶模块是否插好(拔下来重新插试试),如果还不行,可以通过SignalTap看看LCD ID是否正常,再做进一步的分析。
至此,本手册的实验平台正点原子新起点FPGA的硬件部分就介绍完了,了解了整个硬件对我们后面的学习会有很大帮助,有助于后面的管脚约束(分配),在编写程序的时候,可以事半功倍,希望大家细读!另外正点原子开发板的其他资料及教程更新,都可以在技术论坛www.openedv.com 下载到,大家可以经常去这个论坛获取更新的信息。
1.3FPGA的学习方法
FPGA作为目前最热门的非CPU类处理器,正在被越来越多的公司选择使用。学习FPGA的朋友也越来越多,初学者可能会认为FPGA很难学,以前只学过51,或者甚至连51都没学过的,一看到FPGA就懵了。其实,万事开头难,只要掌握了方法,学好FPGA,还是非常简单的,这里我们总结学习FPGA的几个要点:
1)一款实用的开发板。
这个是实验的基础,有时候软件仿真通过了,在板上并不一定能跑起来,而且有个开发板在手,什么东西都可以直观的看到,效果不是仿真能比的。但开发板不宜多,多了的话连自己都不知道该学哪个了,觉得这个也还可以,那个也不错,那就这个学半天,那个学半天,结果学个四不像。倒不如从一而终,学完一个再学另外一个。
2)掌握方法,勤学慎思。
FPGA不是妖魔鬼怪,不要畏难,FPGA的学习和普通单片机一样,基本方法就是:
1)了解FPGA的基本结构。
学习FPGA之前需要先对FPGA的基本结构和其功能有个大概的了解,如锁相环PLL、FIFO等。需要知道PLL是用来产生不同频率的时钟,如使用SDRAM时需要产生100MHz的驱动时钟,使用ES8388(音频编解码芯片)时需要生成12MHz的时钟;FIFO用于数据的缓存和异步时钟域数据的传递等。
2)了解Verilog HDL基本语法
没有软件的硬件就如同行尸走肉一般。软件是硬件的灵魂,硬件是软件的舞台。好的软件设计才能发挥硬件的性能,而软件的精髓在于代码。学习FPGA也是这样,Verilog HDL做为一种硬件描述语言,是对数字电路的一种描述,而数字电路是并行工作的,因而在编写Verilog HDL时要有并行的思想,不同于软件设计语言,软件设计语言是由CPU统一进行处理,一条指令一条指令的串行运行,所以软件设计语言是基于串行的设计思想,因而在写Verilog HDL代码的时候要注意这种差别。另外对于Verilog HDL的基本语法是务必要掌握的,如一般常用的module/endmodule、input/output/inout、wire/reg、begin/end、posedge/negedge、always/assign、if/else、case/default/endcase/parameter/localparam等关键字要清楚它们的作用和区别。掌握了Verilog HDL的基本语法和Verilog HDL的并行设计思想后,会觉得Verilog HDL和C语言一样简单。
3)多思考,多动手。
所谓熟能生巧,先要熟,才能巧。如何熟悉?这就要靠大家自己动手,多多练习了,光看或说是没什么太多用的。只有在使用FPGA的过程中,才会一点点的熟悉,也只有动手实练,才能对FPGA有切实的感受。
熟悉了之后,就应该进一步思考,也就是所谓的巧了。我们提供了几十个例程,供大家学习,跟着例程走,无非就是熟悉FPGA的过程,只有进一步思考,才能更好的掌握FPGA,也即所谓的举一反三。例程是死的,人是活的,所以,可以在例程的基础上,自由发挥,实现更多的其他功能,并总结规律,为以后的学习和使用打下坚实的基础,如此,方能信手拈来。
所以,学习一定要自己动手,光看视频,光看文档,是不行的。举个简单的例子,你看视频,教你如何煮饭,几分钟估计你就觉得学会了。实际上你可以自己测试下,是否真能煮好?机会总是留给有准备的人,只有平时多做准备,才可能抓住机会。
只要以上三点做好了,学习FPGA基本上就不会有什么太大问题了。如果遇到问题,可以在我们的技术论坛:开源电子网:www.openedv.com 提问,论坛FPGA板块有各种主题,很多疑问已经有网友提过了,所以可以在论坛先搜索一下,很多时候,就可以直接找到答案了。论坛是一个分享交流的好地方,是一个可以让大家互相学习,互相提高的平台,所以有时间,可以多上去看看。
页: [1]
查看完整版本: 《新起点V2之FPGA开发指南》第三章 硬件资源详解