⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saa7113.c

📁 hreadx实时嵌入式操作系统源代码,ARM移植. threadx是一个很好的多任务实时嵌入式操作系统
💻 C
📖 第 1 页 / 共 3 页
字号:
/****************************************Copyright (c)****************************************************
**                            Guangzhou ZHIYUAN electronics Co.,LTD.
**                                      
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:               saa7113.c
** Last modified Date:      2007-12-12
** Last Version:            1.0.0
** Descriptions:            NXP SAA7113H 视频采集芯片基础驱动, 在一个线程中眼顺序操作
**
**--------------------------------------------------------------------------------------------------------
** Created by:              Hanhui
** Created date:            2007-12-12
** Version:                 1.0.0
** Descriptions:            NXP SAA7113H 视频采集芯片基础驱动
**
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
** Version:                 
** Descriptions:            
**
*********************************************************************************************************/
#include "config.h"
#include "saa7113.h"
/*********************************************************************************************************
  SAA7113 图像输出格式
  
  使用 ITU 656 YUV 4 : 2 : 2 的格式
  
  +------------+--------------------------------------------------------------------+------------+
  |  BLANKING  |    TIMING    |                                      |    TIMING    |  BLANKING  |
  |   PERIOD   |   REFERENCE  |     720 PIXELS YUV 4 : 2 : 2 DATA    |   REFERENCE  |   PERIOD   |
  |            |     CODE     |                                      |     CODE     |            |
  +------------+--------------+--------------------------------------+--------------+------------+
  | ... 80  10 | FF 00 00 SAV | Cb0 Y0 Cr0 Y1 Cb 2 Y2 ... Cr718 Y719 | FF 00 00 EAV |  80 10 ... |
  +------------+--------------+--------------------------------------+--------------+------------+
  
  SAV:  有效的视频数据区域起始标志
  
  Cbn:  U (B - Y) colour difference component, pixel number n = 0, 2, 4 to 718
  
  Yn :  Y (luminance) component, pixel number n = 0, 1, 2, 3 to 719
  
  Crn:  V (R - Y) colour difference component, pixel number n = 0, 2, 4 to 718
  
  EAV:  有效的视频数据区域结束标志
  
*********************************************************************************************************/
/*********************************************************************************************************
  我国电视标准 PAL 
  
  我国采用的是50 Hz PAL电视信号,
  
  每秒  25 帧图像
  每帧 625 行,     其中 576 行有效       (当 VREF 为高电平时)
  每行 864 个像素,其中 720 个像素有效   (当 HREF 为高电平时)
  
  即每帧图像的实际分辨率为 720 × 576
  
  SAA7113 按奇偶场输出,
  
  每场 288 有效行
  每行 720 有效像素
  
  视频格式按照 YUV 4 : 2 : 2
  
  即每行 1440 Byte, 每场405 KB, 每帧 810 KB。
*********************************************************************************************************/
/*********************************************************************************************************
  SAA7113 场数据选择 VRLN = 1 (I2C 子地址 0x10 的 D3 位)
  
  使用 50Hz 625 线 VREF
  
  场 1:      288 线       起始:  23 线    结束: 310 线
  场 2:      288 线       起始: 336 线    结束: 623 线
  
*********************************************************************************************************/
/*********************************************************************************************************
  参数结构
*********************************************************************************************************/
typedef struct __saa7113_param {

    unsigned char       ucAddr;                                         /*  参数地址                    */
    unsigned char       ucArg;                                          /*  参数                        */

} __SAA7113_PARAM;
/*********************************************************************************************************
  I2C 器件
*********************************************************************************************************/
static SAA7113_CONTEXT  __GsaactxContext;                               /*  当前工作参数                */
/*********************************************************************************************************
  I2C 器件
*********************************************************************************************************/
static I2C_DEV          __Gi2cdevSaa7113;                               /*  I2C 控制器                  */
/*********************************************************************************************************
  初始化参数序列
*********************************************************************************************************/
static __SAA7113_PARAM  __GucSaa7113InitList[] = {

    {0x01, 0x08},                                                       /*  水平增量延迟, 使用推荐值    */
    {0x02, 0xC0},                                                       /*  CVBS AI11 AV 信号输入       */
    {0x03, 0x33},                                                       /*  自动增益, 长时间场消隐      */

    {0x04, 0x00},                                                       /*  通道一默认使用自动增益      */
    {0x05, 0x00},                                                       /*  通道二默认使用自动增益      */
                                                                        
    {0x06, 0xEB},                                                       /*  使用推荐值可能造成图像偏移  */
                                                                        /*  水平同步起始, 推荐使用 0xE9 */
    {0x07, 0x6c},                                                       /*  水平同步结束, 推荐使用 0x0D */
                                                                        /*  选择 108 (50 Hz)            */
    {0x08, 0xB8},                                                       /*  自动场检测, 50Hz,625线     */
                                                                        /*  PLL关闭,固定水平频率       */
    {0x09, 0x01},                                                       /*  孔径因数 0.25,              */
                                                                        /*  PAL : 0x01  NSTC : 41       */
                                                                        
    {0x0A, 0x80},                                                       /*  平均亮度控制                */
                                                                        /*  PAL : 0x80  NSTC : 95       */
                                                                        
    {0x0B, 0x47},                                                       /*  亮度对比度控制              */
                                                                        /*  PAL : 0x47  NSTC : 48       */
                                                                        
    {0x0C, 0x42},                                                       /*  饱和度控制                  */
                                                                        
    {0x0D, 0x01},                                                       /*  色调控制                    */
    
    {0x0E, 0x01},                                                       /*  色度控制                    */
                                                                        /*  带宽 800 kHz, PAL BGHIN     */
    {0x0F, 0x44},                                                       /*  色度增益控制                */
    
    {0x10, 0x08},                                                       /*  格式与延迟控制   VRLN = 1   */
                                                                        /*  标准 ITU656 格式            */
                                                                        
    {0x11, 0x0C},                                                       /*  输出控制                    */
                                                                        /*  自动色彩适配,               */
                                                                        /*  标准水平锁定模式            */
                                                                        
    {0x12, 0xE7},                                                       /*  RTS0/1 输出控制             */
                                                                        /*  RTS0 HREF, RTS1 VREF        */
                                                                        
    {0x13, 0x00},                                                       /*  测试控制                    */
    
    {0x15, 0x00},                                                       /*  VGATE 输出起始脉冲与极性控制*/
    {0x16, 0x00},                                                       /*  VGATE 输出结束脉冲控制      */
    {0x17, 0x00},                                                       /*  VGATE 输出脉冲控制高位      */
    
    {0x40, 0x02},                                                       /*  13.5MHz 数据时钟 50Hz 场频  */
    
                                                                        /*  LCR 2 - LCR 24 寄存器       */
    {0x41, 0xFF},                                                       /*  Active Video 视频标准       */
    {0x42, 0xFF},
    {0x43, 0xFF},                                                       /*  YUV 4 : 2 : 2 视频数据格式  */
    {0x44, 0xFF},
    {0x45, 0xFF},                                                       /*  每线 720 个有效像素点       */
    {0x46, 0xFF},
    {0x47, 0xFF},
    {0x48, 0xFF},
    {0x49, 0xFF},
    {0x4A, 0xFF},
    {0x4B, 0xFF},
    {0x4C, 0xFF},
    {0x4D, 0xFF},
    {0x4E, 0xFF},
    {0x4F, 0xFF},
    {0x50, 0xFF},
    {0x51, 0xFF},
    {0x52, 0xFF},
    {0x53, 0xFF},
    {0x54, 0xFF},
    {0x55, 0xFF},
    {0x56, 0xFF},
    {0x57, 0xFF},
    
    {0x58, 0x40},                                                       /*  场编码, 只能设置为:0x40    */
    
    {0x59, 0x54},                                                       /*  水平偏移量低七位            */
    
    {0x5A, 0x07},                                                       /*  垂直偏移量                  */
                                                                        /*  PAL: 07 NTSC: 0A            */
                                                                        
    {0x5B, 0x83},                                                       /*  场偏移量与水平偏移量高三位  */
                                                                        
    {0x5E, 0x00},
    
    {0x00, 0x00},                                                       /*  结束                        */
};
/*********************************************************************************************************
** Function name:           saa7113Reset
** Descriptions:            SAA7113 视频采集卡复位
** input parameters:        NONE
** output parameters:       NONE
** Returned value:          NONE
** Created by:              Hanhui
** Created Date:            2007/12/13
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void  saa7113Reset (void)
{
    unsigned int     iSave = rGPJCON;
    
    rGPJCON &= ~(0x3 << 24);
    rGPJCON |=  (0x1 << 24);                                            /*  装换为 GPIO                 */
    
    rGPJUP  &= ~(0x1 << 12);                                            /*  允许内部上拉                */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -