加载中…
个人资料
明德扬FPGA技术连载平台
明德扬FPGA技术连
载平台
  • 博客等级:
  • 博客积分:0
  • 博客访问:5,893
  • 关注人气:17
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

边缘检测项目:摄像头配置指令模块ov7670_para代码解析

(2019-12-31 14:56:44)
标签:

fpga

明德扬

至简设计法

分类: FPGA
作者:肖肖肖
本文为明德扬原创文章,转载请注明出处!

摄像头配置指令模块ov7670_para的功能:列出了配置ov7670的寄存器的配置方式,包括了配置寄存器的顺序、是否读寄存器、是否写寄存器以及寄存器的地址和写入寄存器的数据。

一、信号意义
信号 类型 意义
reg_cnt 内部信号 表示配置164个寄存器的顺序。
add_wdata 内部信号 拼接的18位指令信号。
最高位表示读使能:1读使能有效,0读使能无效;
次高位表示写使能:1写使能有效,0写使能无效;
中间8位表示需要操作的摄像头寄存器的地址;
低8位表示要在指定的寄存器中写入的数据。


二、举例说明

第1行,REG_NUM用来表示要配置的寄存器个数,164表示需要对164个寄存器进行操作。
reg_cnt中的01234等,则表示配置寄存器的顺序。第4行代码最先配置,然后是第5行至第8行。
add_wdata的结构如下表:

读写属性(2bit)
地址(8bit)
数据(8bit)
读写属性:
                 0表示不操作;
                 1表示写操作;
                 2表示读操作;
                 3表示先写后读操作。

例如第4行,add_wdata的值为{2’b11,16’h1204}。表示先产生写命令,写数据为8’h04,写地址为8’h12。然后再产生读命令,读地址为8’h12。
例如第5行,add_wdata的值为{2’b10,16’h40d0}。表示产生读命令,读地址为8’h40。
例如第6行,add_wdata的值为{2’b01,16’h3a04}。表示产生写命令,写数据为8’h04,写地址为8’h3a。
例如第7行,add_wdata的值为{2’b00,16’h3dc8}。表示不产生任何写命令和读命令,跳过。

三、参考代码
下面展出本模块的设计,欢迎进一步交流,如果需要整个工程源代码,欢迎与本人联系。
  1. Parameter       REG_NUM =       164;

  2. always@(*) begin

  3.             case(reg_cnt)

  4.                     add_wdata = {2'b11,16'h1204};        //复位,VGA,RGB565  (00:YUV,04:RGB)(8x全局复位)

  5.                   : add_wdata = {2'b11,16'h40d0};        //RGB565,  00-FF(d0)(YUV下要改01-FE(80))

  6.                   : add_wdata = {2'b11,16'h3a04};     //TSLB(TSLB[3], COM13[0])00:YUYV, 01:YVYU, 10:UYVY(CbYCrY), 11:VYUY

  7.                   : add_wdata = {2'b11,16'h3dc8};        //COM13(TSLB[3],  COM13[0])00:YUYV, 01:YVYU, 10:UYVY(CbYCrY), 11:VYUY

  8.                   : add_wdata = {2'b11,16'h1e31}; //默认01,Bit[5]水平镜像,Bit[4]竖直镜像

  9.                   : add_wdata = {2'b11,16'h6b00}; //旁路PLL倍频;0x0A:关闭内部LDO;0x00:打开LDO

  10.                   : add_wdata = {2'b11,16'h32b6};        //HREF  控制(80)

  11.                   : add_wdata = {2'b11,16'h1713};        //HSTART  输出格式-行频开始高8位(11)

  12.                   : add_wdata = {2'b11,16'h1801};        //HSTOP  输出格式-行频结束高8位(61)

  13.                   : add_wdata = {2'b11,16'h1902};        //VSTART  输出格式-场频开始高8位(03)

  14.                 10   : add_wdata = {2'b11,16'h1a7a};        //VSTOP  输出格式-场频结束高8位(7b)

  15.                 11   : add_wdata = {2'b11,16'h030a};        //VREF        帧竖直方向控制(00)

  16.                 12   : add_wdata = {2'b11,16'h0c00};        //DCW使能禁止(00)

  17.                 13   : add_wdata = {2'b11,16'h3e10};        //PCLK分频00  Normal,10(1分频),11(2分频),12(4分频),13(8分频)14(16分频)

  18.                 14   : add_wdata = {2'b11,16'h7000};        //00:Normal,  80:移位1, 00:彩条, 80:渐变彩条

  19.                 15   : add_wdata = {2'b11,16'h7100};        //00:Normal,  00:移位1, 80:彩条, 80:渐变彩条

  20.                 16   : add_wdata = {2'b11,16'h7211};        //默认水平,垂直8抽样(11)                 

  21.                 17   : add_wdata = {2'b11,16'h7300};        //DSP缩放时钟分频00  Normal,10(1分频),11(2分频),12(4分频),13(8分频)14(16分频)

  22.                 18   : add_wdata = {2'b11,16'ha202}; //默认像素始终延迟 (02)

  23.                 19   : add_wdata = {2'b11,16'h1180};        //内部工作时钟设置,直接使用外部时钟源(80)

  24.                 20   : add_wdata = {2'b11,16'h7a20};

  25.                 21   : add_wdata = {2'b11,16'h7b1c};

  26.                 22   : add_wdata = {2'b11,16'h7c28};

  27.                 23   : add_wdata = {2'b11,16'h7d3c};

  28.                 24   : add_wdata = {2'b11,16'h7e55};

  29.                 25   : add_wdata = {2'b11,16'h7f68};

  30.                 26   : add_wdata = {2'b11,16'h8076};

  31.                 27   : add_wdata = {2'b11,16'h8180};

  32.                 28   : add_wdata = {2'b11,16'h8288};

  33.                 29   : add_wdata = {2'b11,16'h838f};

  34.                 30   : add_wdata = {2'b11,16'h8496};

  35.                 31   : add_wdata = {2'b11,16'h85a3};

  36.                 32   : add_wdata = {2'b11,16'h86af};

  37.                 33   : add_wdata = {2'b11,16'h87c4};

  38.                 34   : add_wdata = {2'b11,16'h88d7};

  39.                 35   : add_wdata = {2'b11,16'h89e8};

  40.                 36   : add_wdata = {2'b11,16'h13e0};

  41.                 37   : add_wdata = {2'b11,16'h0010};//

  42.                 38   : add_wdata = {2'b11,16'h1000};

  43.                 39   : add_wdata = {2'b11,16'h0d00};

  44.                 40   : add_wdata = {2'b11,16'h1428};

  45.                 41   : add_wdata = {2'b11,16'ha505};

  46.                 42   add_wdata = {2'b11,16'hab07};

  47.                 43   : add_wdata = {2'b11,16'h2475};

  48.                 44   : add_wdata = {2'b11,16'h2563};

  49.                 45   : add_wdata = {2'b11,16'h26a5};

  50.                 46   : add_wdata = {2'b11,16'h9f78};

  51.                 47   : add_wdata = {2'b11,16'ha068};

  52.                 48   : add_wdata = {2'b11,16'ha103};

  53.                 49   : add_wdata = {2'b11,16'ha6df};

  54.                 50   : add_wdata = {2'b11,16'ha7df};

  55.                 51   : add_wdata = {2'b11,16'ha8f0};

  56.                 52   : add_wdata = {2'b11,16'ha990};

  57.                 53   : add_wdata = {2'b11,16'haa94};

  58.                 54   : add_wdata = {2'b11,16'h13ef};   

  59.                 55   : add_wdata = {2'b11,16'h0e61};

  60.                 56   : add_wdata = {2'b11,16'h0f4b};

  61.                 57   : add_wdata = {2'b11,16'h1602};

  62.                 58   : add_wdata = {2'b11,16'h2102};

  63.                 59   add_wdata = {2'b11,16'h2291};

  64.                 60   : add_wdata = {2'b11,16'h2907};

  65.                 61   : add_wdata = {2'b11,16'h330b};

  66.                 62   : add_wdata = {2'b11,16'h350b};

  67.                 63   : add_wdata = {2'b11,16'h371d};

  68.                 64   : add_wdata = {2'b11,16'h3871};

  69.                 65   : add_wdata = {2'b11,16'h392a};

  70.                 66   : add_wdata = {2'b11,16'h3c78};

  71.                 67   : add_wdata = {2'b11,16'h4d40};

  72.                 68   : add_wdata = {2'b11,16'h4e20};

  73.                 69   : add_wdata = {2'b11,16'h6900};

  74.                 70   : add_wdata = {2'b11,16'h7419};

  75.                 71   : add_wdata = {2'b11,16'h8d4f};

  76.                 72   : add_wdata = {2'b11,16'h8e00};

  77.                 73   : add_wdata = {2'b11,16'h8f00};

  78.                 74   : add_wdata = {2'b11,16'h9000};

  79.                 75   : add_wdata = {2'b11,16'h9100};

  80.                 76   : add_wdata = {2'b11,16'h9200};

  81.                 77   : add_wdata = {2'b11,16'h9600};

  82.                 78   : add_wdata = {2'b11,16'h9a80};

  83.                 79   : add_wdata = {2'b11,16'hb084};

  84.                 80   : add_wdata = {2'b11,16'hb10c};

  85.                 81   : add_wdata = {2'b11,16'hb20e};

  86.                 82   : add_wdata = {2'b11,16'hb382};

  87.                 83   : add_wdata = {2'b11,16'hb80a};

  88.                 84   : add_wdata = {2'b11,16'h4314};

  89.                 85   : add_wdata = {2'b11,16'h44f0};

  90.                 86   : add_wdata = {2'b11,16'h4534};

  91.                 87   : add_wdata = {2'b11,16'h4658};

  92.                 88   : add_wdata = {2'b11,16'h4728};

  93.                 89   : add_wdata = {2'b11,16'h483a};

  94.                 90   : add_wdata = {2'b11,16'h5988};

  95.                 91   : add_wdata = {2'b11,16'h5a88};

  96.                 92   : add_wdata = {2'b11,16'h5b44};

  97.                 93   : add_wdata = {2'b11,16'h5c67};

  98.                 94   : add_wdata = {2'b11,16'h5d49};

  99.                 95   : add_wdata = {2'b11,16'h5e0e};

  100.                 96   : add_wdata = {2'b11,16'h6404};

  101.                 97   : add_wdata = {2'b11,16'h6520};

  102.                 98   : add_wdata = {2'b11,16'h6605};

  103.                 99   : add_wdata = {2'b11,16'h9404};

  104.                 100 : add_wdata = {2'b11,16'h9508};

  105.                 101 : add_wdata = {2'b11,16'h6c0a};

  106.                 102 : add_wdata = {2'b11,16'h6d55};

  107.                 103 : add_wdata = {2'b11,16'h6e11};

  108.                 104 : add_wdata = {2'b11,16'h6f9f};

  109.                 105 : add_wdata = {2'b11,16'h6a40};

  110.                 106 : add_wdata = {2'b11,16'h0140};

  111.                 107 : add_wdata = {2'b11,16'h0240};

  112.                 108 : add_wdata = {2'b11,16'h13e7};

  113.                 109 : add_wdata = {2'b11,16'h1500};          

  114.                 110 : add_wdata = {2'b11,16'h4f80};

  115.                 111 : add_wdata = {2'b11,16'h5080};

  116.                 112 : add_wdata = {2'b11,16'h5100};

  117.                 113 : add_wdata = {2'b11,16'h5222};

  118.                 114 : add_wdata = {2'b11,16'h535e};

  119.                 115 : add_wdata = {2'b11,16'h5480};

  120.                 116 : add_wdata = {2'b11,16'h589e};          

  121.                 117 : add_wdata = {2'b11,16'h4108};

  122.                 118 : add_wdata = {2'b11,16'h3f00};

  123.                 119 : add_wdata = {2'b11,16'h7505};

  124.                 120 : add_wdata = {2'b11,16'h76e1};

  125.                 121 : add_wdata = {2'b11,16'h4c00};

  126.                 122 : add_wdata = {2'b11,16'h7701};  

  127.                 123 : add_wdata = {2'b11,16'h4b09};

  128.                 124 : add_wdata =  {2'b11,16'hc9F0};//16'hc960;

  129.                 125 : add_wdata = {2'b11,16'h4138};

  130.                 126 : add_wdata = {2'b11,16'h5640};

  131.                 127 : add_wdata = {2'b11,16'h3411};

  132.                 128 : add_wdata = {2'b11,16'h3b02};

  133.                 129 : add_wdata = {2'b11,16'ha489};

  134.                 130 : add_wdata = {2'b11,16'h9600};

  135.                 131 : add_wdata = {2'b11,16'h9730};

  136.                 132 : add_wdata = {2'b11,16'h9820};

  137.                 133 : add_wdata = {2'b11,16'h9930};

  138.                 134 : add_wdata = {2'b11,16'h9a84};

  139.                 135 : add_wdata = {2'b11,16'h9b29};

  140.                 136 : add_wdata = {2'b11,16'h9c03};

  141.                 137 : add_wdata = {2'b11,16'h9d4c};

  142.                 138 : add_wdata = {2'b11,16'h9e3f};

  143.                 139 : add_wdata = {2'b11,16'h7804};

  144.                 140 :add_wdata =  {2'b11,16'h7901};

  145.                  141 :add_wdata =  {2'b11,16'hc8f0};

  146.                  142 :add_wdata =  {2'b11,16'h790f};

  147.                  143 :add_wdata =  {2'b11,16'hc800};

  148.                  144 :add_wdata =  {2'b11,16'h7910};

  149.                  145 :add_wdata =  {2'b11,16'hc87e};

  150.                  146 :add_wdata =  {2'b11,16'h790a};

  151.                  147 :add_wdata =  {2'b11,16'hc880};

  152.                  148 :add_wdata =  {2'b11,16'h790b};

  153.                  149 :add_wdata =  {2'b11,16'hc801};

  154.                  150 :add_wdata =  {2'b11,16'h790c};

  155.                  151 :add_wdata =  {2'b11,16'hc80f};

  156.                  152 :add_wdata =  {2'b11,16'h790d};

  157.                  153 :add_wdata =  {2'b11,16'hc820};

  158.                  154 :add_wdata =  {2'b11,16'h7909};

  159.                  155 :add_wdata =  {2'b11,16'hc880};

  160.                  156 :add_wdata =  {2'b11,16'h7902};

  161.                  157 :add_wdata =  {2'b11,16'hc8c0};

  162.                  158 :add_wdata =  {2'b11,16'h7903};

  163.                  159 :add_wdata =  {2'b11,16'hc840};

  164.                  160 :add_wdata =  {2'b11,16'h7905};

  165.                  161 :add_wdata =  {2'b11,16'hc830};

  166.                  162 :add_wdata =  {2'b11,16'h7926};

  167.                  163 : add_wdata = {2'b11,16'h0903};

  168.                  164 : add_wdata = {2'b11,16'h3b42};

  169.                 

  170.             default : add_wdata = 0;

  171.             endcase

  172.         end

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有