![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FPGA之旅设计99例
文章平均质量分 80
FPGA之旅
这个作者很懒,什么都没留下…
展开
-
FPGA之旅设计99例之第二十二例----Sobel算法边沿检测
本例将在上例的基础上,添加一个简单的图像处理算法—边缘检测(Sobel算法)。串口助手发送图片过来之后,结果边缘检测算法处理之后再输出到VGA进行显示。边沿检测算法主要是针对灰度图进行处理的,所以模块内部还需要添加个RGB565转灰度的功能。边缘检测算法有很多种,例如Sobel、Canny、Prewitt等等,各有其优缺点。本次选择Sobel进行学习,主要是因为其相对而言比较简单,FPGA易于实现。原创 2022-11-06 08:54:40 · 2423 阅读 · 6 评论 -
FPGA之旅设计99例之第二十一例----VGA串口SDRAM显示图片
本例将接着上一例实现的sdram控制器进行封装。上例中只是实现了一个基本的控制器,在实际使用中,通常读写时钟是两个不同频率的,所以并不能满足要求。在本例中,将对读写接口进行封装,将读写接口封装成FIFO接口这样封装主要是为了让,读写的时候,满足设计要求(存储OV5640传输过来的图像,并且显示在VGA显示器上)。最后将设计好的接口,配置之前写好的串口以及VGA驱动,实现一个小例子。通过串口发送图片,sdram存储,vga显示。本例完成后,就可以使用此sdram模块做很多事情啦!欢迎关注微信公众号。原创 2022-10-22 16:24:25 · 1926 阅读 · 0 评论 -
FPGA之旅设计99例之第二十例---SDRAM存储器实现
本例将介绍SDRAM的使用。SDRAM是一个存储器件,存储容量大,存储速度比较快,速度可达100M,特别适合用来当中视频或者音频中的存储器件。在采集到OV5640传输过来的图像数据的时候,FPGA的片上资源是没有那么大的存储空间进行存储的,必须通过外部的存储器件进行存储。恰好开发板上有一片SDRAM,所以用此来进行存储,一般而言入门级的FPGA开发板上都是配置的SDRAM,中高级一点的是DDR2(alter开发板),DDR3(xilinx开发板)。原创 2022-10-16 17:15:10 · 2286 阅读 · 4 评论 -
FPGA之旅设计99例之第十九例----OV5640上电及初始化
在上例中,介绍了配置OV5640所需的SCCB时序,以及具体的实现。本例将介绍与初始化相关的重要寄存器,以及上电时序。OV5640的寄存器非常多,从它的寄存器的地址为16bit就可以看出,在商家提供的一些例程中,可以看到配置寄存器的语句多达200行,无法一时间学习掌握所有的寄存器。所以只需要掌握一些重要即可,例如控制图像输出格式、控制图像输出大小、控制图像输出帧率的寄存器。下面就开始介绍吧完整程序关注微信公众号FPGA之旅回复FPGA之旅设计99例之第十九例获取下载链接。原创 2022-10-14 18:52:30 · 2146 阅读 · 0 评论 -
FPGA之旅设计99例之第十八例----OV5640摄像头SCCB时序
从本例开始,接下来的几例,都将围绕OV5640摄像头来学习,教大家学会,如何通过OV5640摄像头,采集图像,并且显示在VGA显示屏上。本例将简要地介绍一下OV5640摄像头,如何详细讲解一下SCCB接口,该接口主要用于配置OV5640,闲话不多说。下一篇将介绍 OV5640寄存器。原创 2022-10-09 15:36:14 · 2705 阅读 · 0 评论 -
FPGA之旅设计99例之第十七例-----VGA显示
本例是FPGA之旅设计的第十七例,本例将介绍如何使用FPGA来驱动VGA显示器,并且显示彩条,为后面的图像显示做好准备。实物图如下,之前的显示器,一般都是VGA接口。现在可能都是HDMI接口的了,但也会转到VGA接口上弄,比较比较方便,因此掌握VGA时序是非常重要的VGA接口原理图如下,信号接口可以分为三大类行同步信号,FPGA输出,默认为高电平,每一行显示之前,都要将其拉低,一定的周期,用于同步。帧同步信号,FPGA输出,默认为高电平,每一帧图像显示之前,都要将其拉低,一定的周期,用于同步。原创 2022-10-04 20:47:21 · 1493 阅读 · 0 评论 -
FPGA之旅设计99例之第十六例----舵机驱动
本例将是FPGA之旅设计的第十六例,将介绍如何驱动舵机,实现任意角度的旋转,也是一个小模块,只需要三个IO即可完成驱动,一般购买模块的时候,就已经用杜邦线引出来了,根据杜邦线的颜色区分对应IO口的功能,一般由如下三种颜色组成红色: VCC,接3.3V - 5V棕色: GND橙色: 信号IO,用于驱动舵机的旋转。原创 2022-10-02 07:48:50 · 1844 阅读 · 1 评论 -
FPGA之旅设计99例之第十五例-----超声波测距
本例为FPGA之旅设计99例中的第十五例,本例将介绍如何使用超声波模块,进行测距。这个模块在智能小车中使用的比较多,使用起来比较方便,仅需四个引脚即可驱动。模块细节如下图,来源于淘宝。原创 2022-09-24 18:58:25 · 1520 阅读 · 1 评论 -
FPGA之旅设计99例之第十四例-----接收红外遥控数据
本例是FPGA之旅设计的第十四例,本例将红外遥控的使用,并将红外接收器接收到红外遥控的数据显示在数码管上。红外遥控接收器模块,非常简单,也是由GND,VCC和数据三个引脚组成,通过杜邦线可以直接连接在FPGA的IO口上,产品细节如下。原创 2022-09-12 20:51:10 · 821 阅读 · 1 评论 -
FPGA之旅设计99例之第十三例-----FPGA在OLED上显示DHT11数据
这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。在开始本例之前,先补充一下,在上例中,代码中有个位置有错误,就是DHT11是先发送湿度然后发送温度,代码中给弄反了,已修改。显示效果如下本例中,OLED显示一共分为如下5个状态。在初始化完成后,屏幕显示的是杂乱无章的数据,所以在初始化完成后,要进行一次刷新,将OLED中的数据全部写0。然后进行显示固定不变的支符,例如像温度湿度这样的字符。原创 2022-09-07 20:18:39 · 1760 阅读 · 13 评论 -
FPGA之旅设计99例之第十二例-----采集DHT11温湿度
本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的例程。本例将通过signal top实时采集波形,确定采集到的数据是正确了(数据中带了校验)。应用电路如下,和DS18B20一样,只需要一根数据线与FPGA进行通信。每次通信都是FPGA发起的,随后DHT11会输出40bit的数据给FPGA。原创 2022-09-06 14:22:46 · 994 阅读 · 0 评论 -
FPGA之旅设计99例之第十一例-----OLED显示字符
这是FPGA之旅的第十一例了。在前面的例子中,已经对OLED有了一个基础的了解,本例将介绍如何在OLED上实现支符的显示,为后面的例程做准备。显示字符需要先使用字摸软件取模,将得到的字摸数据存储到寄存器当中,这个过程可以利用Python生成。然后设置好显示的XY坐标,最后发送字符数据即可。对于字符占两个page的话,也就是字符高度大于8的情况,中间还需要重新设置page。字摸软件选用PCtoLCD2002,这个比较常用,也是比较方便,界面如下图所示。原创 2022-09-05 14:25:01 · 1587 阅读 · 3 评论 -
FPGA之旅设计99例之第十例-----串口上位机模拟OLED屏
这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结和上一例,以及第四例多bytes串口通信做一个有趣的例程。简单来说,就是利用Qt编写上位机,通过串口与FPGA进行通信,然后FPGA将接收到的数据,通过IIC接口发送给OLED,就这么一个流程。原创 2022-09-03 15:01:48 · 913 阅读 · 3 评论 -
FPGA之旅设计99例之第九例-----驱动0.96寸OLED屏
这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计,同时使用第五例写好的IIC模块,驱动OLED屏。这里就只介绍最常用的0.96寸屏,其它的一样。OLED共支持8080并口、SPI和IIC三种接口,同样也只介绍IIC接口的用法。0.96寸OLED屏幕的分辨率为128×64,内部有一块GRAM用来存储显示的数据。原创 2022-09-03 11:50:41 · 2713 阅读 · 8 评论 -
FPGA之旅设计99例之第八例-----DS18B20温度采集
第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。通过原理图可以看出,DS18B20温度传感器只有一条总线,可想而知,其结构的简单化,导致了其操作的复杂化。更多关于该传感器的一些特性参数,以及性能指标,可以详细阅读官网提供的数据手册。接下来主要讲解怎样使用它。............原创 2022-09-01 08:57:14 · 968 阅读 · 0 评论 -
FPGA之旅设计99例之第七例-----综合数字时钟
在学习了前面几例之后,就可以做一个小设计啦,本次分享的是数字时钟,也是在课设中经常出现的题目,虽然难度系数系数不大,但可以很好的锻炼一下综合能力,特别是对于刚刚接触FPGA的小伙伴来说。演示视频.工程也上传到微信公众号FPGA之旅啦!需要可以回复FPGA之旅设计99例之第七例获取下载链接时-分-秒显示,为24小时制通过按键可以动态调整时间通过按键可以动态选择要调整的时间,对应的数码管闪烁按键消抖将前面的几个案例都结和起来了(没有包括uart和iic)。1.RTL图。............原创 2022-08-31 19:06:39 · 287 阅读 · 0 评论 -
FPGA之旅设计99例之第六例-----动态数码管
这是FPGA之旅的第六个实例设计啦,驱动动态数码管,也是非常重要且基础的硬件电路。在数码管上,可以显示的字符有0-9和A-F,通过数码管,就可以将内部的相关信息直接显示出来,在学习初期使用的比较多,在课设中,一般利用数码管做数字时钟的比较多。其他例如可以显示DS18B20的温度数值和MPU6050传感器的ID值等等。.........原创 2022-08-31 19:05:22 · 1642 阅读 · 1 评论 -
FPGA之旅设计99例之第五例-----IIC通信
这是FPGA之旅设计的第五例啦!今天给大家带来的是IIC通信,IIC协议应用非常广泛,例如与MPU6050进行通信,配置OV5640摄像头、驱动OLED屏幕等等,都需要使用到IIC协议,所以掌握它是非常必要的,废话不多说,接着往下看。文末获取完整代码。IIC协议分为主机和从机,所有的请求都是由主机发出,从机进行响应,从机是没有办法对主机进行读或写的。IIC协议共有两根线,数据线SDA和时钟线SCL,两根线就可以完成所以的通信请求,简直是太给力了。...原创 2022-08-19 22:16:48 · 1163 阅读 · 3 评论 -
FPGA之旅设计99例之第四例-----多byte串口通信
这是FPGA之旅的第四个设计实例了,在上一例中,也就是第三例,串口通信,实现了单byte的传输。也就是每次只能传输一个btye的数据。在实际使用过程中,需要发送多byte的数据为一包数据,里面包含各种信息,例如最常见的包头和包尾。本例将在第三例的基础上,实现多byte的接收实例,以满足具体的需求。......原创 2022-08-15 21:25:39 · 1272 阅读 · 0 评论 -
FPGA之旅设计99例之第三例-----UART串口通信
这是FPGA之旅的第三个设计实例了,通过串口协议,就可以和电脑上的串口调试助手进行通信啦。串口一般用来输出程序中的一些信息,用来调试,也可以用来进行信息交互。在stm32中是可以通过串口下载程序的,是不是很nice。本例将实现一个基本的串口模块。感兴趣的话,欢迎关注微信公众号FPGA之旅。......原创 2022-08-14 16:09:00 · 1015 阅读 · 3 评论 -
FPGA之旅设计99例之第二例-----按键
这是FPGA之旅的第二个设计实例了,按键在项目中的作用是非常大的,使用的很频繁,本例将带大家设计一个实用的按键模块。原创 2022-08-12 16:01:08 · 1230 阅读 · 0 评论 -
FPGA之旅设计99例之第一例-----LED灯
作为我们这个系列的第一个实例,当然是要越简单越好啦,软件里面有打印hello world,硬件里面有点灯,就从点灯开始,开启这个系列吧。欢迎关注微信公众号FPGA之旅。原创 2022-08-11 20:59:14 · 1276 阅读 · 0 评论