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

📄 anx9021.h

📁 HDMI anx9021的驱动
💻 H
字号:

//******************************************************************************
//  ANX Company SRC 
//  Ver 1.51
//  2006/05/11
//******************************************************************************
//******************************************************************************
//  2006/06/06
//  define AFIFO_CTRL_REG 0xB4
//  updated by xiaoyong
//******************************************************************************



#ifndef anx9021_h
#define anx9021_h

#include <stdio.h>
#include <stdarg.h>
#include "i2c_intf.h"
#include "Timer.h"
#include "mcu.h"
#include "Uart_int.h"

typedef unsigned int WORD;
typedef unsigned char BYTE;
typedef bit BOOL;

#define ANX9021_FW_VER 1.56
#define INPUT_PORT bit 

#define DVI_MODE 0x00
#define HDMI_MODE 0x01
#define INPUT_HDMI 1
#define INPUT_HDMI2 0
#define KILL_BOOST 0

#define ANX9021_ON 1
#define ANX9021_OFF 0

extern bit enable_debug_output;
extern bit restart_system;


void ANX9021_PowerCtrl_API(BYTE onoff);
void ANX9021_HPD_Port0(int delaytime);
void ANX9021_HPD_Port1(int delaytime);
    
BYTE ANX9021_ReadI2C_RX0(BYTE sub_addr, BYTE *rxdata);
BYTE ANX9021_WriteI2C_RX0(BYTE sub_addr, BYTE txdata);
BYTE ANX9021_ReadI2C_RX1(BYTE sub_addr,  BYTE *rxdata);
BYTE ANX9021_WriteI2C_RX1(BYTE sub_addr,  BYTE txdata);
void ANX9021_Chip_Located(void);
// INPUT_PORT is a indicator to judge which port is used
void ANX9021_HDMI_Port_Switch(INPUT_PORT B_InputConnector);
void ANX9021_Int_Process(void);
void ANX9021_Timer_Process(void);

//Use for digital video output fomat   
#define RGB444 0x00
#define RGB444_CLK48B 0x01
#define YCbCr444 0x80
#define YCbCr444_CLK48B 0x81
#define YCbCr422 0xC0
#define YCbCr422_656 0xD0
#define YCbCr422_YCMUX 0xE0
#define YCbCr422_656_YCMUX 0xF0



//**************** User defines of chip configuration******************//

// Analog video ouput enable
#define ANALOG_VID_EN 0x01      //0x00  Disable analog video output
                                //0x01  Enable analog video output

#define VIDEO_OUTPUT_FORMAT RGB444

#define MCLK_SEL      0x00     //0x00 Use ANX9021 MCLK output
                               //0x01 Use external MCLK (MCLK input: Pin 87)

#define MCLK_FREQ_SEL 0x00     // 0x00 Fmclk = 128*Fs
                               // 0x10 Fmclk = 256*Fs
                               // 0x20 Fmclk = 384*Fs
                               // 0x30 Fmclk = 512*Fs

#define AUD_I2S_EN    0x01     //0x00 Disable I2S audio output
                               //0x01 Enable I2S audio output   
                               
#define AUD_SPDIF_EN  0x00     //0x00 Disable SPDIF audio output
                               //0x01 Enable SPDIF audio output   


//**************** End of User Defines ********************************//



//Use For ANX STATE Machine //
#define MONITOR_CKDT 0x01
#define WAIT_SCDT 0x02
#define WAIT_VIDEO 0x03
#define WAIT_AUDIO 0x04
#define PLAYBACK 0x05



// Threshhold Time //
#define VIDEO_STABLE_TH 3     
#define AUDIO_STABLE_TH 1
#define SCDT_EXPIRE_TH 10
#define SCDT_EXPIRE_TH_1 5
#define AFIFO_OV_TH 4
#define AUTH_START_TH 1
#define AUTH_TIMER_TH 20
#define ANX9021_FIFO_TH 50   
#define ANX9021_POP_NOISE_CNT 5
#define ANX9021_POP_NOISE_TH 2

// Application Define Value //
#define ANX9021_INTR_STATE_REG_ON_Check 0x01
#define ANX9021_SCDT_CHANGE 0x08
#define ANX9021_HDMI_DVI_MODE_CHANGE 0x80
#define ANX9021_NEW_AVI_DECT 0x01
#define ANX9021_CTS_ACR_CHANGE 0xF0
#define ANX9021_CTS_RECV 0x04 
#define ANX9021_AUDIO_RECV 0x02
#define ANX9021_HDCP_ERROR 0x40
#define ANX9021_AAC_MUTE 0x40
#define ANX9021_SYNC_DECT 0x01
#define ANX9021_AV_MUTE_STAT 0x04
#define ANX9021_HDMI_MODE 0x10
#define ANX9021_AUD_MUTE 0x02
#define ANX9021_VID_MUTE 0x01
#define ANX9021_TMDS_Power_DOWN 0xF7 
#define ANX9021_TMDS_Power_ON 0xFF
#define ANX9021_ID_RX0 0x60
#define ANX9021_ID_RX1 0x68



// Registers in address 0x60 
#define VND_IDL_REG 0x00
#define VND_IDH_REG 0x01
#define DEV_IDL_REG 0x02
#define DEV_IDH_REG 0x03
#define DEV_REV_REG 0x04
#define SRST_REG 0x05
#define STATE_REG 0x06
#define SYS_CTRL1_REG 0x08
#define PORT_SEL_REG 0x09
#define HDCP_BKSV1_REG 0x1A
#define HDCP_BKSV2_REG 0x1B
#define HDCP_BKSV3_REG 0x1C
#define HDCP_BKSV4_REG 0x1D
#define HDCP_BKSV5_REG 0x1E
#define HDCP_RI1_REG 0x1F
#define HDCP_RI2_REG 0x20
#define HDCP_PJ_REG 0x17
#define HDCP_AKSV1_REG 0x21
#define HDCP_AKSV2_REG 0x22
#define HDCP_AKSV3_REG 0x23
#define HDCP_AKSV4_REG 0x24
#define HDCP_AKSV5_REG 0x25
#define HDCP_AINFO_REG 0x18
#define HDCP_AN1_REG 0x26
#define HDCP_AN2_REG 0x27
#define HDCP_AN3_REG 0x28
#define HDCP_AN4_REG 0x29
#define HDCP_AN5_REG 0x2A
#define HDCP_AN6_REG 0x2B
#define HDCP_AN7_REG 0x2C
#define HDCP_AN8_REG 0x2D
#define BCAPS_SET_REG 0x2E
#define SHD_BSTAT1_REG 0x2F
#define SHD_BSTAT2_REG 0x30
#define HDCPDEBUG_REG 0x31
#define HDCP_STAT_REG 0x32
#define HDCP_DEVID_REG 0x19
#define H_RESL_REG 0x3A
#define H_RESH_REG 0x3B
#define V_RESL_REG 0x3C
#define V_RESH_REG 0x3D
#define DE_PIXL_REG 0x4E
#define DE_PIXH_REG 0x4F
#define DE_LINL_REG 0x50
#define DE_LINH_REG 0x51
#define VID_VTAVL_REG 0x52
#define VID_VFP_REG 0x53
#define VID_STAT_REG 0x55
#define VID_HFP_REG 0x59
#define VID_HSWIDL_REG 0x5B
#define VID_HSWIDH_REG 0x5C
#define VID_MODE_REG 0x4A
#define VID_MODE2_REG 0x49
#define VID_CTRL_REG 0x48
#define VID_F2BPM_REG 0x54
#define VID_CHLCL_REG 0x57
#define VID_CHLCH_REG 0x58
#define VID_PREPC_REG 0x5A
#define VID_SERPC_REG 0x5D
#define VID_POSTPC_REG 0x5E
#define VID_BLANK1_REG 0x4B
#define VID_BLANK2_REG 0x4C
#define VID_BLANK3_REG 0x4D
#define VID_CH_MAP_REG 0x56
#define VID_AOF_REG 0x5F
#define VID_XPCNT_REG 0x6F
#define INTR_STATE_REG 0x70
#define INTR1_MASK_REG 0x75
#define INTR2_MASK_REG 0x76
#define INTR3_MASK_REG 0x77
#define INTR4_MASK_REG 0x78
#define INTR5_MASK_REG 0x7D
#define INTR6_MASK_REG 0x7E
#define INT_CTRL_REG 0x79
#define INTR1_REG 0x71
#define INTR2_REG 0x72
#define INTR3_REG 0x73
#define INTR4_REG 0x74
#define IP_CTRL_REG 0x7A
#define INTR5_REG 0x7B
#define INTR6_REG 0x7C
#define EPST_REG 0xF9
#define EPCM_REG 0xFA
#define AEC_CTRL_REG 0xB5
#define ECC_CTRL_REG 0xBB
#define ECCERR_CNT_REG 0xBC
#define AEC_EN0_REG 0xB6
#define AEC_EN1_REG 0xB7
#define AEC_EN2_REG 0xB8

#define TMDS_PRT0_EQ_REG 0xA4
#define TMDS_PRT1_EQ_REG 0xA5
#define TMDS_EQ2_REG 0xA6
#define TMDS_EQ_VCOM_REG 0xA7
#define TMDS_RXTERM_REG 0xA8
#define TMDS_PLL_CTRL1_REG 0xA9
#define TMDS_PLL_CTRL2_REG 0xAA
#define TMDS_DLL1_CTRL_REG 0xAB
#define TMDS_DLL2_CTRL2_REG 0xAC
#define TMDS_TEST_CTRL_REG 0xAD
#define TMDS_DEBUG_REG 0xAE
#define TMDS_PLL_RNG_CTRL_REG 0xAF
#define TMDS_PLL_RNG_STATUS_REG 0xB0
#define TMDS_PLL_CLK_STATUS_REG 0xB1
#define AFIFO_CTRL_REG 0xB4

#define SRST2_REG 0x95
#define TMDS_CH0_SYNC_STAT_REG 0x96
#define TMDS_CH1_SYNC_STAT_REG 0x97
#define TMDS_CH2_SYNC_STAT_REG 0x98
#define TMDS_CH_ALIGN_STAT_REG 0x99
#define VID_CTRL2_REG 0x9A
#define EEPROM_PROTECT1_REG 0x9B
#define EEPROM_PROTECT2_REG 0x9C
#define EEPROM_PROTECT3_REG 0x9D
#define EEPROM_CFG_REG 0x9E
#define EEPROM_RW_REG_REG 0x9F
#define EEPROM_READ_DATA_REG 0xA0
#define EEPROM_WRITE_DATA_REG 0xA1
#define DAC_CFG1_REG 0xA2
#define DAC_CFG2_REG 0xA3

#define TMDS_PRBS_CTL_REG 0xB2
#define SOFTMUTE_CTRL_REG 0xB9
#define CHIP_CTRL_REG 0xB3
#define PACKET_CTRL_REG 0xBA

// Registers in address 0x68 //
#define ACR_CTRL1_REG 0x00
#define ACR_CTRL2_REG 0x01
#define FREQ_SVAL_REG 0x02
#define N_SVAL1_REG 0x03
#define N_SVAL2_REG 0x04
#define N_SVAL3_REG 0x05
#define N_HVAL1_REG 0x06
#define N_HVAL2_REG 0x07
#define N_HVAL3_REG 0x08
#define CTS_SVAL1_REG 0x09
#define CTS_SVAL2_REG 0x0A
#define CTS_SVAL3_REG 0x0B
#define CTS_HVAL1_REG 0x0C
#define CTS_HVAL2_REG 0x0D
#define CTS_HVAL3_REG 0x0E
#define ACR_INT_N_REG 0x10
#define ACR_FRAC_N1_REG 0x11
#define ACR_FRAC_N2_REG 0x12
#define ACR_FRAC_N3_REG 0x13
#define ACR_PLL_DEBUG1_REG 0x14
#define ACR_PLL_DEBUG2_REG 0x15
#define ACR_CTRL3_REG 0x16
#define PCLK_FS_REG 0x17

#define I2S_CTRL1_REG 0x26
#define I2S_CTRL2_REG 0x27
#define I2S_MAP_REG 0x28
#define AUD_CTRL_REG 0x29
#define CHST1_REG 0x2A
#define CHST2_REG 0x2B
#define CHST3_REG 0x2C
#define SW_OW_REG 0x2E
#define OW_CHST2_REG 0x2F
#define CHST4_REG 0x30
#define CHST5_REG 0x31
#define AUDO_MUTE_REG 0x32
#define HDMI_STAT_REG 0x34
#define HDMI_CRIT1_REG 0x35
#define HDMI_MUTE_REG 0x37
#define HDMI_CRIT2_REG 0x38
#define PD_TOT_REG 0x3C
#define PD_SYS2_REG 0x3E
#define PD_SYS_REG 0x3F
#define AVI_VID_REG 0x47
#define MPEG_DEC_REG 0xBF
#define SPD_DEC_REG 0x7F
#define ACP_DEC_REG 0xFF


#endif

⌨️ 快捷键说明

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