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

📄 adc.h

📁 IT projecotr reference design.
💻 H
📖 第 1 页 / 共 2 页
字号:

/* Active interface select */
#define ADC_ANALOG_INTERFACE    0
#define ADC_DIGITAL_INTERFACE   1

/* Active HSYNC select mode */
#define ADC_AUTO_HSYNC_SELECT     0
#define ADC_MANUAL_HSYNC_SELECT   1

/* Active HSYNC select */
#define ADC_HSYNC_INPUT     0
#define ADC_SOG_INPUT       1

/* Active VSYNC select mode */
#define ADC_AUTO_VSYNC_SELECT    0
#define ADC_MANUAL_VSYNC_SELECT  1

/* Active VSYNC select */
#define ADC_VSYNC_INPUT             0
#define ADC_SYNC_SEPARATOR_OUTPUT   1

/* Chip power */
#define ADC_CHIP_POWER_DOWN     0
#define ADC_CHIP_POWER_UP       1

/* Scan function */
#define ADC_SCAN_FUNCTION_DISABLED  0
#define ADC_SCAN_FUNCTION_ENABLED   1

/* Coast polarity select mode */
#define ADC_AUTO_SELECT_COAST_POLARITY      0
#define ADC_MANUAL_SELECT_COAST_POLARITY    1

/* HSYNC polarity select mode */
#define ADC_AUTO_SELECT_HSYNC_POLARITY      0
#define ADC_MANUAL_SELECT_HSYNC_POLARITY    1

/* DVI Clock Inverted */
#define ADC_DVI_CLOCK_NOT_INVERTED	0
#define ADC_DVI_CLOCK_INVERTED		1

/* HDCP Master Serial Port */
#define ADC_HDCP_SERIAL_PORT_TRISTATED		0
#define ADC_HDCP_SERIAL_PORT_NOT_TRISTATED	1


/*****************************************************************************/
/* Macros defining status ****************************************************/
/*****************************************************************************/

/* HSYNC Activity Status */
#define ADC_HSYNC_NOT_DETECTED	0
#define ADC_HSYNC_DETECTED		1

/* SOG Activity Status */
#define ADC_SOG_NOT_DETECTED	0
#define ADC_SOG_DETECTED		1

/* VSYNC Activity Status */
#define ADC_VSYNC_NOT_DETECTED	0
#define ADC_VSYNC_DETECTED		1

/* DVI Activity Status */
#define ADC_DVI_CLOCK_NOT_DETECTED	0
#define ADC_DVI_CLOCK_DETECTED		1

/* Active Interface Status */
#define ADC_ANALOG_IF_ACTIVE	0
#define ADC_DIGITAL_IF_ACTIVE	1

/* Active HSYNC Status */
#define ADC_HSYNC_ON_HSYNC	0
#define ADC_HSYNC_ON_SOG	1

/* HSYNC Polarity Status */
#define ADC_HSYNC_IS_NEGATIVE	0
#define ADC_HSYNC_IS_POSITIVE	1

/* Active VSYNC Status */
#define ADC_VSYNC_ON_VSYNC	0
#define ADC_VSYNC_ON_SOG	1

/* VSYNC Polarity Status */
#define ADC_VSYNC_IS_NEGATIVE	0
#define ADC_VSYNC_IS_POSITIVE	1

/* VSYNC Polarity Status */
#define ADC_COAST_IS_NEGATIVE	0
#define ADC_COAST_IS_POSITIVE	1


/*****************************************************************************/
/* Public structure typedefs *************************************************/
/*****************************************************************************/

typedef struct
{
    uint16 LowerLimit;
    uint16 UpperLimit;
}ADC_LimitStruct;

typedef struct
{
	uint32 TaskID;
	int08  Error;	
}ADC_DriverErrorStruct;

/*****************************************************************************/
/* Public function prototypes ************************************************/
/*****************************************************************************/

/* Miscellaneous */
uint08 ADC_IsThere48BitPort(void);
uint08 ADC_GetMaxSampleFreqInMHz(void);
int08  ADC_GetI2CDriverErrno(void);
int08  ADC_GetRTAErrno(void);
int08  ADC_GetI2CErrorStruct(ADC_DriverErrorStruct *i2c_error_struct);
int08  ADC_GetRTAErrorStruct(ADC_DriverErrorStruct *rta_error_struct);
BOOL   ADC_IsI2CDead(void);

/* Initialization */
void  ADC_CfgADC(I2CPORT i2c_port, I2CINIT *i2c_cfg, uint16 i2c_address, uint08 max_sample_freq_in_mhz, uint16 cap_in_nanofarads);
int08 ADC_InitADC(void);

/* Software revision */
int08 ADC_GetSoftwareRevision(uint08* sw_rev);

/* Firmware revision */
int08 ADC_GetFirmwareRevision(uint08* fw_rev);

/* PLL divider control */ 
int08 ADC_SetPLLDivider(uint16 pll_divide_ratio);
int08 ADC_GetPLLDivider(uint16* pll_divide_ratio);
int08 ADC_GetPLLLimits(ADC_LimitStruct *limits);

/* Gain and offset control */  
int08 ADC_SetGain(uint16 red, uint16 green, uint16 blue);
int08 ADC_GetGain(uint16 *red, uint16 *green, uint16 *blue);
int08 ADC_SetOffset(uint16 red, uint16 green, uint16 blue);
int08 ADC_GetOffset(uint16 *red, uint16 *green, uint16 *blue);
int08 ADC_SetGainAndOffset(uint16 red_gain, 
                           uint16 green_gain,
                           uint16 blue_gain,
                           uint16 red_offset,
                           uint16 green_offset,
                           uint16 blue_offset);                                  
int08 ADC_GetGainLimits(ADC_LimitStruct* limits);
int08 ADC_GetOffsetLimits(ADC_LimitStruct* limits);
                                 
/* Clamp timing control */
int08 ADC_SetClampPlacement(uint16 clamp_placement);
int08 ADC_GetClampPlacement(uint16 *clamp_placement);
int08 ADC_SetClampDuration(uint16 clamp_duration);
int08 ADC_GetClampDuration(uint16 *clamp_duration);
int08 ADC_GetClampPlacementLimits(ADC_LimitStruct *limits);
int08 ADC_GetClampDurationLimits(ADC_LimitStruct *limits);

/* HSYNC pulse width */
int08 ADC_SetHsyncPulseWidth(uint16 hsync_pulse_width);
int08 ADC_GetHsyncPulseWidth(uint16 *hsync_pulse_width);
int08 ADC_GetHsyncPulseWidthLimits(ADC_LimitStruct *limits);

/* General control */
int08 ADC_SetOutputPortWidth(uint08 output_width_is_48);
int08 ADC_GetOutputPortWidth(uint08 *output_width_is_48);
int08 ADC_SetDVIOutputPortWidth(uint08 output_width_is_48);
int08 ADC_GetDVIOutputPortWidth(uint08 *output_width_is_48);
int08 ADC_SetInputHSYNCPolarity(uint08 active_high);
int08 ADC_GetInputHSYNCPolarity(uint08 *active_high);
int08 ADC_SetOutputHSYNCPolarity(uint08 active_high);
int08 ADC_GetOutputHSYNCPolarity(uint08 *active_high);
int08 ADC_SetExternalCOASTPolarity(uint08 active_high);
int08 ADC_GetExternalCOASTPolarity(uint08 *active_high);
int08 ADC_SetClampSignalSource(uint08 external_clamp);
int08 ADC_GetClampSignalSource(uint08 *external_clamp);
int08 ADC_SetExternalClampSignalPolarity(uint08 active_high);
int08 ADC_GetExternalClampSignalPolarity(uint08 *active_high);
int08 ADC_SetRedClampLevel(uint08 mid_level);
int08 ADC_GetRedClampLevel(uint08 *mid_level);
int08 ADC_SetGreenClampLevel(uint08 mid_level);
int08 ADC_GetGreenClampLevel(uint08 *mid_level);
int08 ADC_SetBlueClampLevel(uint08 mid_level);
int08 ADC_GetBlueClampLevel(uint08 *mid_level);
int08 ADC_SetExternalClockSelect(uint08 external_clock);
int08 ADC_GetExternalClockSelect(uint08 *external_clock);
int08 ADC_SetOutputPortPhase(uint08 port_b_first);
int08 ADC_GetOutputPortPhase (uint08 *port_b_first);
int08 ADC_SetOutputDriveLevel(uint08 drive_level);
int08 ADC_GetOutputDriveLevel(uint08 *drive_level);
int08 ADC_SetOutputPower(uint08 tri_state_outputs);
int08 ADC_GetOutputPower(uint08 *tri_state_outputs);
int08 ADC_SetActiveInterfaceMode(uint08 active_if_mode);
int08 ADC_GetActiveInterfaceMode(uint08 *active_if_mode);
int08 ADC_SetActiveInterface(uint08 active_if);
int08 ADC_GetActiveInterface(uint08 *active_if);
int08 ADC_SetActiveHSYNCMode(uint08 active_hsync_mode);
int08 ADC_GetActiveHSYNCMode(uint08 *active_hsync_mode);
int08 ADC_SetActiveHSYNC(uint08 active_hsync);
int08 ADC_GetActiveHSYNC(uint08 *active_hsync);
int08 ADC_SetActiveVSYNCMode(uint08 active_vsync_mode);
int08 ADC_GetActiveVSYNCMode(uint08 *active_vsync_mode);
int08 ADC_SetActiveVSYNC(uint08 active_vsync);
int08 ADC_GetActiveVSYNC(uint08 *active_vsync);
int08 ADC_SetCoastSource(uint08 coast_source);
int08 ADC_GetCoastSource(uint08 *coast_source);
int08 ADC_SetDevicePower(uint08 device_power);
int08 ADC_GetDevicePower(uint08 *device_power);
int08 ADC_SetVsyncSeparatorThreshold(uint16 vsync_sep_th);
int08 ADC_GetVsyncSeparatorThreshold(uint16 *vsync_sep_th);
int08 ADC_SetScanFunction(uint08 scan_function);
int08 ADC_GetScanFunction(uint08 *scan_function);
int08 ADC_SetInputCoastPolarityMode(uint08 coast_polarity);
int08 ADC_GetInputCoastPolarityMode(uint08 *coast_polarity);
int08 ADC_SetInputHSYNCPolarityMode(uint08 hsync_polarity);
int08 ADC_GetInputHSYNCPolarityMode(uint08 *hsync_polarity);
int08 ADC_SetSOGSlicerThreshold(uint08 slicer_threshold);
int08 ADC_GetSOGSlicerThreshold(uint08 *slicer_threshold);
int08 ADC_SetHDCPMasterSerialPortTriStated(uint08 not_tri_stated);
int08 ADC_GetHDCPMasterSerialPortTriStated(uint08 *not_tri_stated);

/* Clock generator control */
int08 ADC_SetPhase(uint08 phase);
int08 ADC_GetPhase(uint08 *phase);
int08 ADC_GetPhaseLimits(ADC_LimitStruct* limits); 
int08 ADC_SetVCORange(uint08 vco_range_select);
int08 ADC_GetVCORange(uint08 *vco_range_select);
int08 ADC_SetChargePumpCurrent (uint08 charge_pump_current);
int08 ADC_GetChargePumpCurrent (uint08 *charge_pump_current);
int08 ADC_SetVCORangeAndChargePumpCurrent(uint08 vco_range_select, 
                                          uint08 charge_pump_current);
int08 ADC_SetSampleClock(uint16 clocks_per_line, 
                         uint32 pixel_rate, 
                         uint32 horz_freq);
int08 ADC_SetPreCoast(uint08 pre_coast);
int08 ADC_GetPreCoast(uint08 *pre_coast);
int08 ADC_SetPostCoast(uint08 post_coast);
int08 ADC_GetPostCoast(uint08 *post_coast);                         
                                                   
#ifdef __cplusplus		/* matches __cplusplus construct above */
}
#endif

#endif /* __ADC_H */

⌨️ 快捷键说明

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