cb早在2012年就推出了VIP 视频开发板 V1.4  这套开发板是ep2的,摄像头是ov7670,虽然不如当前的vip20强大,但也算是其雏形. 在vip20后期,cb对sdram以及其他模块进行了封装,使其更可靠,更稳定. 显然,sdram要更稳定,更可靠,验证,需要进行大量的实验,使用多种ic,然而经验丰富的cb,也有遗漏的测试(ps:注意上一篇博客细节) 于是找到vip1.4的05_sdram_vga_test例程,果不其然,这个例程兼容性很好,vip2.0不能使用的程序使用这个是可以…
SDRAM是做嵌入式系统中,常用是的缓存数据的器件.基本概念如下(注意区分几个主要常见存储器之间的差异): SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器.同步 是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准:动态是指存储阵 列需要不断的刷新来保证存储的数据不丢失,因为SDRAM中存储数据是通过电容来工作的,大家知道电容在自然放置状态是会有放电的,如果电放完了,也就意味着SDRAM中的数据丢失了,所…
实验一:流水灯模块 对于发展商而言,动土仪式无疑是最重要的任务.为此,流水灯实验作为低级建模II的动土仪式再适合不过了.废话少说,我们还是开始实验吧. 图1.1 实验一建模图. 如图1.1 所示,实验一有名为 led_funcmod的功能模块.如果无视环境信号(时钟信号还有复位信号),该功能模块只有一组输出端,亦即4位LED信号.接下来让我们来看具体内容: led_funcmod.v 1. module led_funcmod 2. ( 3. input CLOCK, RESET, 4. out…
本文转载自:http://m.blog.csdn.net/bzw73/article/details/46564275 有了前面的LCD驱动的框架,再移植VGA驱动就相当的容易了.默认在光盘中已经支持了多款VGA驱动,我们在此基础上增加分辨率为1440*900的驱动. 在kernel/drivers/video/samsung/x4412_lcds.c中添加结构体vga_1440_900: /* VGA-1440X900 */ static struct s3cfb_lcd vga_1440_9…
OV7670不愧是最便宜的摄像头了最大显示像素:640*480(在VGA显示器上显示效果还不赖,用usb模块采集显示依然显著) 第一步:VGA显示 视频图像(实时)FPGA+SDRAM+OV7670= VGA显示视频图像,帧率可达30fpsFPGA作为逻辑控制,配置摄像头寄存器,sdram作为fifo,实现图像的基本处理(RGB转换,或RAW处理)摄像头格式:RAW.RGB565.YUV可选.通过使用FPGA驱动摄像头,发现摄像头驱动,显示,还算简单. 扩展:拍照不保存解决办法:IO控制FPGA…
对SDRAM基本概念的介绍以及芯片手册说明,请参考上一篇文章SDRAM操作说明. 1. 说明 如图所示为状态机的简化图示,过程大概可以描述为:SDRAM(IS42S16320D)上电初始化完成后,进入"空闲"状态,此时一直监控外部控制模块给予的控制信号.初始化完成后,外部定时器开始定时,定时周期为SDRAM刷新周期(7.7us),一旦计数到刷新周期后,向状态机发送auto_ref_req(自动刷新请求),此时状态机进入"刷新"状态,这样就确保在无任何操作时,SDRA…
实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进行显示.本实验采用以往未曾采用过的方式,将按键的键值读取后通过硬件在环传送到simulink上进行显示,由此来学习如何将FPGA采集到的数据通过硬件在环传送到simulink. 本实验的主要原理是,FPGA对按键信号进行消抖.采样,然后将对应按键的键值通过硬件在环传送到simulink中,并通过si…
实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对信号进行分配引脚. 创建模型 在Matlab的指令窗口输入以下指令,hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:\altera\11.0\quartus\bin\quartus.exe(修改为软件安装的路径)'). Si…
实验一 测试 实验内容 在simulink创建测试模块,通过测试模块产生信号,再传送到FPGA,FPGA读出后再将信号无处理传送回simulink进行显示.由此来测试整个硬件在环的功能是否正常,并且熟悉整个基础开发流程. 创建模型 创建开发板的信息 在Matlab的指令窗口输入以下指令,hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:\altera\11.0\quartus\bin\quartus.exe(修改为软件安装…
改章节个人在深圳游玩的时候突然想到的...这几周就有想写几篇关于android驱动的博客,所以回家到之后就奋笔疾书的写出来发布了 这些天一直在想Android驱动框架层的实现,本文借助老罗教师的博客和现有通过过分析台湾的Jollen的mokoid 工程代码,并尝试在Android开发板上驱动一个简单的蜂鸣器,来解析Android下驱动的调用. HAL架构由Patrick Brady (Google) 在2008 Google  I/O报告中提出的,如下图. 其实可以斟酌先编写驱动代码,然后使用N…
Sdram型号为hy57v256 #ifndef __SRAM_H_ #define __SRAM_H_ #include "common.h" #include "delay.h" #include "stdlib.h" #include "debugserial.h" #define SDRAM_DEBUG #define SDRAM_BASE_ADDR     0xA0000000 #define SDRAM_SIZE …
芯片手册要求sdram需要在64ms内刷新8K次,否则里面的数据会丢失,因此在64ms分成8192次,每次刷新充一次电,然后给两次自动刷新命令即可. /*----------------------------------------------------------------------- Date : 2017-08-29 Description : Design for auto refresh. --------------------------------------------…
公司最近开发的一款产品用到了ambarella H2平台的一款Soc,众所周知ambarella的H2系列的Soc编码能力很强,最高可达4kp60,捕捉上没有用ambarella开发板推荐的几个捕捉卡,是自己用fpga做的一款捕捉卡, 所以捕捉卡驱动需要自己来写. 捕捉卡驱动其实没有什么东西,就是简单地i2c通信, H2 Soc通过i2c和捕捉卡进行通信, 可以通过check寄存器得到输入源的制式以及audio通道数相关信息,从而进行audio通道数设定并且通过/proc文件系统告诉应用层,从而…
一.概述( ENV_IS_EMBEDDED的目的) 经典资料 认识     ENV_IS_EMBEDDED只有在CFG_ENV_IS_IN_FLASH或者CFG_ENV_IS_IN_NAND定义了才有效.也就是说,这种功能只有在使用了norflash或者nandflash时才有效.本文是以使用norflash为例来说明的. 上边贴的几张图片讲的内容主要是这个意思:由于uboot.bin是100多kb,而环境变量要占一个扇区.norflash前100Kb中才有空间比较小的扇区,例如第二个扇区才8K…
这一节主要演示如何在Zstack 下根据板子的不同修改按键驱动,实际演示的时候代码跳动比较多,建议大家除了看视频资料以外,还需要在网上找一下相关资料进一步学习. 视频总览:http://bphero.com.cn/forum.php?m ... d=15&extra=page%3D1学习最好按照视频总览中的顺序有序学习 与该节视频相关的问题讨论可以回帖,一贴一视频,一专题!目前讨论回帖只针对已经购买的开发板的用户. 视频链接: 见论坛代码链接:见论坛 ZStack-CC2530-2.3.1_OL…
准备材料: Arduino Uno 一块 Arduino 扩展板        购买链接 DT-06模块一个       购买链接 安卓手机一个 小度音箱一个 小车一个 杜邦线若干 1.DT-06固件的烧录 1.1打开ESP模块下载工具ESPFlashDownloadTool,选择需要下载的固件,填写下载地址,推荐使用  ESP8266 Download TOOL,配置信息如下: 1.2 选择实际的串口,选择下载速度 1.3点击ERASE,先插除,再点击START,开始下载 工具下载及详细请看:…
准备材料: Arduino Uno 一块 Arduino 扩展板        购买链接 DT-06模块一个       购买链接 安卓手机一个 小度音箱一个 小灯珠一个 杜邦线若干 1.DT-06固件的烧录 1.1打开ESP模块下载工具ESPFlashDownloadTool,选择需要下载的固件,填写下载地址,推荐使用  ESP8266 Download TOOL,配置信息如下: 1.2 选择实际的串口,选择下载速度 1.3点击ERASE,先插除,再点击START,开始下载 工具下载及详细请看…
1 SDRAM控制原理 1.1 SDRAM信号线 1.2 SDRAM地址线 SDRAM包含有“A”以及“BA”两类地址线: A:行(Row)与列(Column)共用的地址线 BA:独立的用于指定SDRAM芯片内部存储阵列号(Bank) 通讯时,当RAS=0,则“行地址选通器”被选通,地址线A[11:0]表示的地址会被输入到“行地址译码器”中,行地址被选中:同时地址线BA[1:0]表示的Bank也被锁存,选中要操作的Bank号:接着CAS=0,则“列地址选通器”被选通,地址线A[11:0]表示的地…
intel的官网的驱动安装文档: https://www.intel.com/content/www/us/en/programmable/support/support-resources/download/drivers/usb-blaster/dri-usb-blaster-vista.html?wapkw=usb%20blaster intel 官方已经给出了安装办法,如果你们想看原文,请移步上面的连接,下面我就简单的给大家说一下办法: 我主要讲的是win10中安装的办法,因为现在大家基…
1.selenium安装 安装:pip install selenium==3.7.0 卸载: pip uninstall selenium 查看版本号:pip show selenium   2.火狐及驱动安装 驱动的版本是和安装的浏览器版本有关系的,如果不匹配,就会出现程序报错或者可以将浏览器打开,但是并不能打开你在程序中指定的url地址 (1)兼容搭配(亲测好用) selenium版本v3.7.0+火狐驱动geckodriverV0.15.0+火狐49.0.1 全家桶安装包链接(火狐浏览器…
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36639&extra=page%3D1 爱奇艺地址: http://www.iqiyi.com/w_19rughesgp.html?source=…
实验十八:SDRAM模块① — 单字读写 笔者与SDRAM有段不短的孽缘,它作为冤魂日夜不断纠缠笔者.笔者尝试过许多方法将其退散,不过屡试屡败的笔者,最终心情像橘子一样橙.<整合篇>之际,笔者曾经大战几回儿,不过内容都是点到即止.最近它破蛊而出,日夜不停:“好~痛苦!好~痛苦!”地呻吟着,吓得笔者不敢半夜如厕.疯狂之下,誓要歪它不可 ... 可恶的东西,笔者要它血债血还! 图18.1 数据读取(理想时序左,物理时序右). 首先,让我们来了解一下,什么才是数据读取的最佳状态?如图18.1所示,红…
首先说明下为什么写这篇文章,网上有许多博客也是介绍I2C驱动在linux上移植的实现,但是笔者认为他们相当一部分没有分清所写的驱动时的驱动模型,是基于device tree, 还是基于传统的Platform模型,有些文章只是把代码移植到平台上调试测试下,并没有理清内部逻辑调用关系,所以觉得有必要把两种驱动模型阐述剖析清楚,本文阅读者必须以在单片机上调试过IIC总线为前提,能够分析从芯片datasheet和其工作原理和总线的基本操作,虽然I2C硬件体系结构比较简单,但是I2C体系结构在Linux中…
经过一段时间的调试,终于调好了TQ335x的声卡驱动.TQ335x采用的Codec是WM8960,本文来总结下WM8960驱动在AM335x平台上的移植方法.Linux声卡驱动架构有OSS和ALSA两种架构,目前最常用的架构是ALSA,本文也使用ALSA架构对WM8960驱动进行移植. ASoC是对ALSA驱动架构的进一步封装.ASoC将ALSA驱动中的各模块抽象为三部分:Platform.Codec和Machine.Platform主要是平台硬件驱动,包括SoC的IIS模块.DMA等,在本文中…
前言: 无数昼夜的来回轮替以后,这本<驱动篇I>终于编辑完毕了,笔者真的感动到连鼻涕也流下来.所谓驱动就是认识硬件,还有前期建模.虽然<驱动篇I>的硬件都是我们熟悉的老友记,例如UART,VGA等,但是<驱动篇I>贵就贵在建模技巧的升华,亦即低级建模II. 话说低级建模II,读过<建模篇>的朋友多少也会面熟几分,因为它是低级建模的进化形态.许久以前,笔者就有点燃低级建模II的念头,但是懒惰的性格让笔者别扭许久.某天,老大忽然说道:"让咱们大干一场吧…
在上章-使内核支持烧写yaffs2,裁剪内核并制作补丁了 本章,便开始移植以前2.6内核的驱动到3.4新内核 1.介绍 首先内核更新,有可能会重新定义新的宏,去除以前的宏,以前更改函数名等 所以移植驱动的过程如下: 1)编译 2)解决错误 ->2.1)头文件不对:去掉或改名 ->2.2)宏不对:改名使用新宏 ->2.3)有些函数没有了:改名使用新函数 2.移植内核自带的DM9000网卡驱动 machid=16a(mach-smdk2440.c)的内核下输入ifconfig,发现该板卡的内…
本例子,讲述在android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开发流程的应用调用流程,可以说是很好的入门引导 要达到的效果:通过android的应用,调用驱动程序,在开发板上控制4个LED的亮灭. 一.硬件原理 如上图,通过4个IO口控制这LED,低电平LED亮, 这4个IO口分别是GPM1, GPM2, GPM3, GPM4, 二.驱动程序 1.在kernel文件夹下的driver目录,新键驱动文件夹 # cd kernel…
平台 开发板:tq2440 内核:Linux-4.9 u-boot:u-boot-2015.04   概述 之前移植了LCD驱动,下面继续移植触摸屏驱动,然后将tslib也移植上去. 正文 一.移植触摸屏驱动 为了简单起见我们对TQ2440自带的触摸屏驱动进行改写,改成设备树的形式. 1.设备树 触摸屏使用了两个中断,如下: 这两个中断是子中断,隶属于主中断INT_ADC: 关于寄存器,参考芯片手册的第16章,知道了上面的信息,我们就可以得到如下的设备树节点(可以参考博文基于设备树的TQ2440…
SDRAM知识普及 在学习SDRAM之前,必须先了解"SDRAM"这个概念性的东西,并有感性的认识转变到一种理性的认识,所谓理性的认识就是实质性的东西…….不多说,相信你已经迫不急待了.那我们就开始了. 初识SDRAM SDRAM的全称是:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准:动态是指存储阵列需要不断的刷新来保证数据不丢失:随机是指数据不是线…
基于FPGA的线阵CCD实时图像采集系统 2015年微型机与应用第13期 作者:章金敏,张 菁,陈梦苇2016/2/8 20:52:00 关键词: 实时采集 电荷耦合器件 现场可编程逻辑器件 信号处理   摘  要: 设计了一种基于现场可编程逻辑器件的线阵CCD实时图像采集系统.系统采用线阵CCD TCD2252D作为图像传感器,使用CCD专用信号处理芯片AD9826对CCD信号去噪并实现高速A/D转换,同时用USB接口芯片完成CCD数据的传输,最后在上位机显示采集的图像数据.整个系统由基于Ve…