如果同学们的学习问题我们帖子里面没有的,请第一时间联系我微信同步:易老师13112063618
明德扬还做了抖音系列短视频,感兴趣可以关注明德扬抖音号:FPGA技巧分享(87481069842)内容不断更新!点赞+关注,学习不迷路!
【问题1】点拨开发板,下载工程检测工程后,没有反应。
答:注意:下载后,需要按下矩阵键盘的按键0(即左上角第一个按键),才能显示!!!
【问题2】点拨开发板可以显示摄像头拍摄过来的图片吗?
答:由于点拨开发板的资源不足,所以无法显示摄像头的图片,如要显示,建议购买MP801开发板。
【问题3】PCLK的时钟频率问题
答:FPGA提供XCLK给摄像头,摄像头利用XCLK产生PCLK。所以PCLK来源于XCLK,所以XCLK是多少,PCLK就是多少。也就是说PCLK和XCLK频率大小一样,只是说可能不同相
【问题4】是否不使用PLL,而是用PCLK来作为采集模块的时钟?
答:PCLK经过插件连到FPGA,这其中可能会不稳定。为解决此问题,将PCLK连到PLL,产生一个同频同相的时钟,使用这个时钟作为采集模块的工作时钟。这样,即使PCLK缺少或者不稳定,但产生的时钟也会保持稳定。
【问题5】摄像头寄存器配置模块中,配置的是04对应RGB,但是数据手册中RGB应该是01,这是为什么?
答: 这里的Bayer RAW本质上是RAW RGB格式,也是RGB格式。 RAW RGB:在摄像头里没有经过任何处理的数据。 RGB:在摄像头里经过了ISP等算法处理的数据。 如果想要最原始的数据,就使用RAW格式;如果要摄像头先美化一下,就使用RGB格式。想要哪种格式,取决于您的需求。
【问题6】边缘检测寄存器是怎么样配置的呢?
答:边缘检测中,ov7670_cfg模块和sccb模块,就是用来配置的,可以参考
【问题7】边缘检查课程案例OV接口是用MIMP还是DVP的?
答:OV7670是标准的SCCB接口,兼容IIC接口
【问题8】请问在边缘检测模块中的vga_config模块,如果想显示完整的一帧图像(假设为彩条显示)而ram资源不够,我用的多维数组来做存储器存储16bit 640*480个像素点,(目的:在local_wr_req时将写数据按地址存进去,在local_rd_req时将数据按地址读出来),请问以下代码方案是否可行,若不行,请问该如何实现此目的?(代码如下图示)
答:
1. 使用二维数组代替RAM方法:二维数据使用的是寄存器资料,通常RAM资源是远远大于寄存器资源的,所以RAM不足时,寄存器一般也不足。
2. 如果只是仿真用途,这个是可以的,可以不考虑资源。既然是仿真,那自然也可以增大RAM了。
3. 注意上面代码中有错误,读写地址是独立,不是共同一个的。读哪些地址数据,无关写地址。上面代码中不正确,具体请仿真。
【问题9】这个关系怎么得到的呢?根据这个图的话 上面的关系不应该反过来吗?在下一拍的时候应该吧taps0_ff0赋值给taps0x呀?
答:没有 ff0就是表示 延时一拍的意思,taps0_ff是taps0前一时刻的值,需要得到这种结果,就是通过时序逻辑打一拍,资料提供的有直播课讲解,建议结合仿真波形去看,测试文件有提供
【问题10】请问这一段写在代码的哪里?我找不到,看不出
答:在SCCB代码里
【问题11】 边缘检测课程这个判断读或写使能的计数器的rw_cnt为什么刚好对应add_wdata[16]和add_wdata[17]?
解答:在工作状态(flag==1)时,此时对ov7670的指令进行读写,那到底是对指令进行读还是写,使用读写操作计数器rw_cnt进行计数,按顺序的进行判断。根据模块ov7670_para.v 里指令的格式:{读操作(1bit),写操作(1bit),操作指令(16bits)}。当rw_cnt=0时,设计上此时先判断指令写操作是否有效,因此对应判断ov7670_para.v 里指令的add_wdata[16],确认对应比特位的写操作是否为高电平,如果是,那么需要对该指令进行写操作,产生一个写使能有效信号(wr_en==1)。其他以此类推。
【问题12】边缘检测里面的sccb模块中,根据sccb手册要求,读时序的传输周期要写成两段写,为什么代码里面省了第二段(设备地址+读数据)?
这上面读时序传输周期只写了一段。
答:理解有误,代码里sccb的读操作是有两段时序的。请联系信号 rd_com、count_duan、out_data、flag_sel,直接仿真查看波形一起理解,这样会更直观。
【问题13】问:边缘检测工程中,配置ov7670的寄存器顺序是固定,修改顺序要重新修改代码后上电,有没有办法可以不上电直接修改?
答:目前代码就需要重新上电。 不重新上电的方式,就参考温度检测工程,需要上位机配合
【问题14】问:边沿检测课程里,VGA_driver里面的行同步场同步信号为什么需要打拍延时产生?
答:在本模块中,使用了行计数器和场计数器来产生了读地址rd_addr。
1. 该地址送给上游模块vga_config,然后将数据返回给本模块会有几个时钟的延时。
2. 为了让返回的数据,与最终的信号vga_vys和vga_hys对齐,所以要延时一下,打了两拍再产生行场同步信号。
3. 具体可以通过整体工程仿真来检查确认。检查返回的第一个数据是否有延时;第一个数据与行场同步信号是否有就是对 。
【问题15】边IP核配置代码中,下面部分的 3'b110,8'h02,32'h00800020 110,02分别属于什么功能呢?答:
1. 前面3比特的3'b110用于定义读写属性:分别是表示读、写和等待位。当对应位为1,表示使能。
a. 例如,3'b110,表示读使能、写使能、等待不使能。那么在代码中,将会对寄存器先执行写操作,然后再执行读操作。读操作的目的,是为了检查写的对不对。
b.例如,3'b001,表示读不使能,写不使能,等级使能。在代码中,不对寄存器操作,只用于延时。
2. 中间的8位是读写地址。即寄存器的地址,对应着IP核数据手册中的寄存器地址。
3. 后面的32位是写数据或者延时值。当写寄存器时,是写到寄存器的数据。当读寄存器,不关心,可填充为0。当是延时操作时,表示要延时的值,单位为时钟周期。
【问题16】问:请问边缘检测中,对于SDRAM模块的读写,涉及到仲裁内容吗?
答:涉及到,就是读写怎么判断的问题
温馨提示:明德扬2023推出了全新课程——逻辑设计基本功修炼课,降低学习FPGA门槛的同时,增加了学习的趣味性,并组织了考试赢积分活动
http://www.mdy-edu.com/ffkc/415.html
(点击→了解课程详情☝)感兴趣请联系易老师:13112063618(微信同步)
明德扬除了培训学习还有项目承接业务,擅长的项目主要包括的方向有以下几个方面:
1. MIPI视频拼接
2. SLVS-EC转MIPI接口(IMX472 IMX492)
3. PCIE采集系统
4. 图像项目
5. 高速多通道ADDA系统
6. 基于FPGA板卡研发
7. 多通道高灵敏电荷放大器
8. 射频前端
需要了解相关信息可以联系:易老师13112063618(微信同号)