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

📄 video_test.h

📁 ADSP 地层驱动
💻 H
字号:
/////////////////////////////////////////////////////
// Video_test.h
//
//
//
/////////////////////////////////////////////////////
#ifndef _VIDEO_TEST_H_
#define _VIDEO_TEST_H_

#define TIME_OUT	0x1000000

#define PIXEL_PER_LINE 		(720)
#define LINES_PER_FRAME		(480)
#define TOTAL_SDRAM_USED	(PIXEL_PER_LINE * LINES_PER_FRAME * 2)
#define COLORBAR_START		0x0

////////////////////////////////////////////////////////
//valuable for flash configure
/////////////////////////////////////////////////////////
//all banks enabled
#define en_async_mem 0xf

//all banks are configured in: 
//4 cycles transition time; 3 cycles setup time; 2 cycles hold time; 
//11 cycles read access time; 7 cycles write access time
#define AMB0_TIMING 0x7bb07bb0
#define AMB1_TIMING 0x7bb07bb0

// addresses for Port B in Flash A
#define pFlashA_Data_Out	(volatile unsigned char *)0x20270004
#define pFlashB_Data_Out	(volatile unsigned char *)0x20270005
#define pFlashA_Data_Dir	(volatile unsigned char *)0x20270006
#define pFlashB_Data_Dir	(volatile unsigned char *)0x20270007


#define flashA_sram 0x20240000	// base addr
#define flashA_csio 0x20270000	// base addr
#define portA_data_out 0x04	    // reg offset
#define portB_data_out 0x05	    // reg offset
#define portA_data_dir 0x06	    // reg offset
#define portB_data_dir 0x07	    // reg offset

#define SCL 0x1                 // serial clock is PF0
#define SDA 0x2                 // serial data is PF1

#define RST_7171 0x4            // ecoder reset bit #2 in flashA portA
#define RST_7183 0x8            // decoder reset bit #3 in flashA portA
#define PPICLK_7183 0x10         // decoder's PPI clock sel bit #4 in flashA portA


#define MEM_SIZE			0x00800000	// 8MLWords
#define SDRAM_START_ADDR 	0x00000000


#define dma0_cfg_xfer8 0x12    // dma0 config for 2-D 8-bit xfer
#define dma0_cfg_xfer16 0x16   // dma0 config for 2-D 16-bit xfer
#define dma0_cfg_xfer32 0x1A   // dma0 config for 2-D 32-bit xfer

#define XCNT32_frame 0x01AD    // frame 429 x 32-bit (1716 bytes)
#define XCNT32_video 0x0168    // video 360 x 32-bit (1440 bytes)
#define XMOD32       0x4       // 32-bit xfer

#define XCNT16_frame 0x035A    // frame 858 x 16-bit (1716 bytes)
#define XCNT16_video 0x02d0    // video 720 x 16-bit (1440 bytes)
#define XMOD16       0x2       // 16-bit xfer

#define XCNT8_frame 0x06B4     // frame 1716 x 8-bit
#define XCNT8_video 0x05A0     // video 1440 x 8-bit (1440 bytes)
#define XMOD8   0x1            // 8-bit xfer


#define YCNT_2frame 0x0500     // 2 frames plus x 525 lines w/ blanking
#define YCNT_frame 0x020D      // 525 lines w/ blanking
#define YCNT_video 0x01e7      // 528-38-487 video activev only
#define YMOD32 0x4             // 32-bit xfer
#define YMOD16 0x2             // 16-bit xfer
#define YMOD8 0x1              // 8-bit xfer

#define YMOD8_2k_video 0x261   // 8-bit xfer, video,2k-1440+1=629
#define YMOD16_2k_video 0x262  // 16-bit xfer,frame,2k-1440+2=630
#define YMOD16_2k_frame 0x14e  // 16-bit xfer,frame,2k-1716+2=334
#define YMOD32_2k_video 0x264  // 32-bit xfer,video,2k-1440+4=632


#define PPI_CTRL_DMA16_FRAME 		0xc4   // 16-bit entire frame

/*************** SCCB Constants  ************************************/
#define pISR_SCCB_TIMER 			(unsigned char *)0xFFE0202C	//Address of the interrupt register (EVT11 in this case)
#define pSYSTEM_MMR_HIGH_ADDRESS 	(unsigned char *)0xFFC00000	//The high address word is handled like pages
#define pCORE_MMR_HIGH_ADDRESS 		(unsigned char *)0xFFE00000	//The high address word is handled like pages
#define SCL_PERIOD 					0xB0             // scl_period >= 133MHz/(2 x 0.4MHz)
#define SCL_HIGH 					SCL_PERIOD >> 1


typedef enum _SCCB_STATE{
  	SCCB_Start_Cond0,
  	SCCB_Start_Cond1,
  	SCCB_Start_Cond2,
  	SCCB_Xmt_Data,
  	SCCB_XMT_CLK,
  	SCCB_ACK_TST,
  	SCCB_ACK_MNGR,  
    SCCB_RCV_CLK,
    SCCB_Stop_Cond1,
    SCCB_Stop_Cond2,
    SCCB_NACK_TST,
    SCCB_RCV_NACK,
    SCCB_Rcv_Data,
    SCCB_End_of_Transmission
}SCCB_STATE;

#define vline_size 				858*2               // video line size in bytes
#define vline_size32 			(vline_size >> 2) 	// video line size in 32-bit words
#define vbuff_start_line 		0             		// first line of video buffer (0,1,...)
#define vbuff_size 				0x500               // size of video buffer in number of lines
#define vbuf_start_addr 		SDRAM_START_ADDR+vline_size*vbuff_start_line

#define rd_cmd 					0x1            		// sccb interface read command
#define wr_cmd 					0x2            		// sccb inteface write command

#define ADV7171_WR 				0x54       			// write address of video encoder
#define ADV7171_RD 				0x55       			// read address of video encoder
#define ADV7171_reg_cnt 		0x1a  				// encoder register count (26 registers)
#define ADV7171_MR0 			0x0       			// mode reg 0 address of the encoder
#define ADV7171_MR1 			0x1       			// mode reg 1 address of the encoder
#define ADV7171_MR3 			0x3
#define ADV7171_MR4 			0x4
#define ADV7171_ColorBar 		0x80
#define ADV7171_MR4_YUV_Mode 	0x03
#define ADV7171_MR3_YUV_Mode 	0x10
#define ADV7171_MR3_2_CVBS_Mode 0x8

#define ADV7183_WR 				0x40         		// read address of video decoder
#define ADV7183_RD 				0x41         		// write address of video decoder
#define ADV7183_In_Control 		0x0  				// Input Control Regsiter of decoder
#define ADV7183_AVIN4 			0x3
#define ADV7183_AVIN1 			0x0
#define ADV7183_YUV_Mode 		0x9
#define ADV7183_OE_bit 			2        			// ADV7183 /OE = PF2
#define ADV7183_OE 				0x4	        		// ADV7183 /OE = PF2


typedef enum _VIDEO_TEST
{
    AVIN1_DAC_D_A,
    AVIN4_DAC_B_A
}VIDEO_TEST;

#endif //_VIDEO_TEST_H_


⌨️ 快捷键说明

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