![]() |
sysmonpsu
Xilinx SDK Drivers API Documentation
|
Functions in this file are the minimum required functions for the XSysMonPsu driver.
See xsysmonpsu.h for a detailed description of the driver.
MODIFICATION HISTORY:
Ver Who Date Changes
1.0 kvn 12/15/15 First release. 02/15/16 Corrected Assert function call in XSysMonPsu_GetMonitorStatus API. 03/03/16 Added Temperature remote channel for Setsingle channel API. Also corrected external mux channel numbers. 1.1 kvn 05/05/16 Modified code for MISRA-C:2012 Compliance. 2.0 vns 08/14/16 Fixed CR #956780, added support for enabling/disabling SEQ_CH2 and SEQ_AVG2 registers, modified function prototypes of XSysMonPsu_GetSeqAvgEnables, XSysMonPsu_SetSeqAvgEnables, XSysMonPsu_SetSeqChEnables, XSysMonPsu_GetSeqChEnables, XSysMonPsu_SetSeqInputMode, XSysMonPsu_GetSeqInputMode, XSysMonPsu_SetSeqAcqTime and XSysMonPsu_GetSeqAcqTime to provide support for set/get 64 bit value. 2.1 sk 03/03/16 Check for PL reset before doing PL Sysmon reset.
Functions | |
s32 | XSysMonPsu_CfgInitialize (XSysMonPsu *InstancePtr, XSysMonPsu_Config *ConfigPtr, u32 EffectiveAddr) |
This function initializes XSysMonPsu device/instance. More... | |
void | XSysMonPsu_Reset (XSysMonPsu *InstancePtr) |
This function resets the SystemMonitor. More... | |
u32 | XSysMonPsu_GetStatus (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
This function reads the contents of the Status Register. More... | |
void | XSysMonPsu_StartAdcConversion (XSysMonPsu *InstancePtr) |
This function starts the ADC conversion in the Single Channel event driven sampling mode. More... | |
u16 | XSysMonPsu_GetAdcData (XSysMonPsu *InstancePtr, u8 Channel, u32 Block) |
Get the ADC converted data for the specified channel. More... | |
u16 | XSysMonPsu_GetCalibCoefficient (XSysMonPsu *InstancePtr, u8 CoeffType, u32 SysmonBlk) |
This function gets the calibration coefficient data for the specified parameter. More... | |
u16 | XSysMonPsu_GetMinMaxMeasurement (XSysMonPsu *InstancePtr, u8 MeasurementType, u32 SysmonBlk) |
This function reads the Minimum/Maximum measurement for one of the XSM_MIN_* or XSM_MAX_* constants defined in xsysmonpsu.h. More... | |
void | XSysMonPsu_SetAvg (XSysMonPsu *InstancePtr, u8 Average, u32 SysmonBlk) |
This function sets the number of samples of averaging that is to be done for all the channels in both the single channel mode and sequence mode of operations. More... | |
u8 | XSysMonPsu_GetAvg (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
This function returns the number of samples of averaging configured for all the channels in the Configuration Register 0. More... | |
s32 | XSysMonPsu_SetSingleChParams (XSysMonPsu *InstancePtr, u8 Channel, u32 IncreaseAcqCycles, u32 IsEventMode, u32 IsDifferentialMode, u32 SysmonBlk) |
The function sets the given parameters in the Configuration Register 0 in the single channel mode. More... | |
void | XSysMonPsu_SetAlarmEnables (XSysMonPsu *InstancePtr, u32 AlmEnableMask, u32 SysmonBlk) |
This function enables the alarm outputs for the specified alarms in the Configuration Registers 1: More... | |
u32 | XSysMonPsu_GetAlarmEnables (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
This function gets the status of the alarm output enables in the Configuration Register 1. More... | |
void | XSysMonPsu_SetSequencerMode (XSysMonPsu *InstancePtr, u8 SequencerMode, u32 SysmonBlk) |
This function sets the specified Channel Sequencer Mode in the Configuration Register 1 : More... | |
u8 | XSysMonPsu_GetSequencerMode (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
This function gets the channel sequencer mode from the Configuration Register 1. More... | |
void | XSysMonPsu_SetSequencerEvent (XSysMonPsu *InstancePtr, u32 IsEventMode, u32 SysmonBlk) |
The function enables the Event mode or Continuous mode in the sequencer mode. More... | |
s32 | XSysMonPsu_GetSequencerEvent (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
The function returns the mode of the sequencer. More... | |
void | XSysMonPsu_SetExtenalMux (XSysMonPsu *InstancePtr, u8 Channel, u32 SysmonBlk) |
The function enables the external mux and connects a channel to the mux. More... | |
u32 | XSysMonPsu_GetExtenalMux (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
The function returns the external mux channel. More... | |
void | XSysMonPsu_SetAdcClkDivisor (XSysMonPsu *InstancePtr, u8 Divisor, u32 SysmonBlk) |
The function sets the frequency of the ADCCLK by configuring the DCLK to ADCCLK ratio in the Configuration Register #2. More... | |
u8 | XSysMonPsu_GetAdcClkDivisor (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
The function gets the ADCCLK divisor from the Configuration Register 2. More... | |
s32 | XSysMonPsu_SetSeqChEnables (XSysMonPsu *InstancePtr, u64 ChEnableMask, u32 SysmonBlk) |
This function enables the specified channels in the ADC Channel Selection Sequencer Registers. More... | |
u64 | XSysMonPsu_GetSeqChEnables (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
This function gets the channel enable bits status from the ADC Channel Selection Sequencer Registers. More... | |
s32 | XSysMonPsu_SetSeqAvgEnables (XSysMonPsu *InstancePtr, u64 AvgEnableChMask, u32 SysmonBlk) |
This function enables the averaging for the specified channels in the ADC Channel Averaging Enable Sequencer Registers. More... | |
u64 | XSysMonPsu_GetSeqAvgEnables (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
This function returns the channels for which the averaging has been enabled in the ADC Channel Averaging Enables Sequencer Registers. More... | |
s32 | XSysMonPsu_SetSeqInputMode (XSysMonPsu *InstancePtr, u64 InputModeChMask, u32 SysmonBlk) |
This function sets the Analog input mode for the specified channels in the ADC Channel Analog-Input Mode Sequencer Registers. More... | |
u64 | XSysMonPsu_GetSeqInputMode (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
This function gets the Analog input mode for all the channels from the ADC Channel Analog-Input Mode Sequencer Registers. More... | |
s32 | XSysMonPsu_SetSeqAcqTime (XSysMonPsu *InstancePtr, u64 AcqCyclesChMask, u32 SysmonBlk) |
This function sets the number of Acquisition cycles in the ADC Channel Acquisition Time Sequencer Registers. More... | |
u64 | XSysMonPsu_GetSeqAcqTime (XSysMonPsu *InstancePtr, u32 SysmonBlk) |
This function gets the status of acquisition time from the ADC Channel Acquisition Time Sequencer Registers. More... | |
void | XSysMonPsu_SetAlarmThreshold (XSysMonPsu *InstancePtr, u8 AlarmThrReg, u16 Value, u32 SysmonBlk) |
This functions sets the contents of the given Alarm Threshold Register. More... | |
u16 | XSysMonPsu_GetAlarmThreshold (XSysMonPsu *InstancePtr, u8 AlarmThrReg, u32 SysmonBlk) |
This function returns the contents of the specified Alarm Threshold Register. More... | |
void | XSysMonPsu_SetPSAutoConversion (XSysMonPsu *InstancePtr) |
This function sets the conversion to be automatic for PS SysMon. More... | |
u32 | XSysMonPsu_GetMonitorStatus (XSysMonPsu *InstancePtr) |
This function gets the AMS monitor status. More... | |
s32 XSysMonPsu_CfgInitialize | ( | XSysMonPsu * | InstancePtr, |
XSysMonPsu_Config * | ConfigPtr, | ||
u32 | EffectiveAddr | ||
) |
This function initializes XSysMonPsu device/instance.
This function must be called prior to using the System Monitor device.
InstancePtr | is a pointer to the XSysMonPsu instance. |
ConfigPtr | points to the XSysMonPsu device configuration structure. |
EffectiveAddr | is the device base address in the virtual memory address space. If the address translation is not used then the physical address is passed. Unexpected errors may occur if the address mapping is changed after this function is invoked. |
References XSysMonPsu_Config::BaseAddress, XSysMonPsu::Config, and XSysMonPsu_Config::DeviceId.
Referenced by SysMonPsuSingleChannelIntrExample().
u8 XSysMonPsu_GetAdcClkDivisor | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
The function gets the ADCCLK divisor from the Configuration Register 2.
InstancePtr | is a pointer to the XSysMon instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
u16 XSysMonPsu_GetAdcData | ( | XSysMonPsu * | InstancePtr, |
u8 | Channel, | ||
u32 | Block | ||
) |
Get the ADC converted data for the specified channel.
InstancePtr | is a pointer to the XSysMonPsu instance. |
Channel | is the channel number. Use the XSM_CH_* defined in the file xsysmonpsu.h. The valid channels for PS / PL SysMon are 0 - 6, 8 - 10 and 13 - 37. For AMS, 38 - 53 channels are valid. |
Block | is the value that tells whether it is for PS Sysmon block or PL Sysmon block or the AMS controller register region. |
References XSysMonPsu::IsReady, XSM_CH_GAINERR_CALIB, XSM_CH_RESERVE1, XSM_CH_SUPPLY3, XSM_CH_SUPPLY4, and XSM_CH_SUPPLY_CALIB.
u32 XSysMonPsu_GetAlarmEnables | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
This function gets the status of the alarm output enables in the Configuration Register 1.
InstancePtr | is a pointer to the XSysMonPsu instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
Bit positions of 1 indicate that the alarm output is enabled. Bit positions of 0 indicate that the alarm output is disabled.
References XSysMonPsu::IsReady.
u16 XSysMonPsu_GetAlarmThreshold | ( | XSysMonPsu * | InstancePtr, |
u8 | AlarmThrReg, | ||
u32 | SysmonBlk | ||
) |
This function returns the contents of the specified Alarm Threshold Register.
InstancePtr | is a pointer to the XSysMonPsu instance. |
AlarmThrReg | is the index of an Alarm Threshold Register to be read. Use XSM_ATR_* constants defined in xsysmonpsu.h to specify the index. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady, XSM_ATR_SUP7_LOWER, XSM_ATR_TEMP_RMTE_LOWER, and XSM_ATR_TEMP_RMTE_UPPER.
u8 XSysMonPsu_GetAvg | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
This function returns the number of samples of averaging configured for all the channels in the Configuration Register 0.
InstancePtr | is a pointer to the XSysMonPsu instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
u16 XSysMonPsu_GetCalibCoefficient | ( | XSysMonPsu * | InstancePtr, |
u8 | CoeffType, | ||
u32 | SysmonBlk | ||
) |
This function gets the calibration coefficient data for the specified parameter.
InstancePtr | is a pointer to the XSysMonPsu instance. |
CoeffType | specifies the calibration coefficient to be read. Use XSM_CALIB_* constants defined in xsysmonpsu.h to specify the calibration coefficient to be read. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady, and XSM_CALIB_GAIN_ERROR_COEFF.
u32 XSysMonPsu_GetExtenalMux | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
The function returns the external mux channel.
InstancePtr | is a pointer to the XSysMonPsu instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
u16 XSysMonPsu_GetMinMaxMeasurement | ( | XSysMonPsu * | InstancePtr, |
u8 | MeasurementType, | ||
u32 | SysmonBlk | ||
) |
This function reads the Minimum/Maximum measurement for one of the XSM_MIN_* or XSM_MAX_* constants defined in xsysmonpsu.h.
InstancePtr | is a pointer to the XSysMonPsu instance. |
MeasurementType | specifies the parameter for which the Minimum/Maximum measurement has to be read. Use XSM_MAX_* and XSM_MIN_* constants defined in xsysmonpsu.h to specify the data to be read. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady, XSM_MAX_SUPPLY6, XSM_MAX_SUPPLY7, XSM_MAX_TEMP_REMOTE, XSM_MIN_SUPPLY4, XSM_MIN_SUPPLY6, XSM_MIN_SUPPLY7, and XSM_MIN_TEMP_REMOTE.
u32 XSysMonPsu_GetMonitorStatus | ( | XSysMonPsu * | InstancePtr | ) |
This function gets the AMS monitor status.
InstancePtr | is a pointer to the XSysMonPsu instance. |
References XSysMonPsu_Config::BaseAddress, XSysMonPsu::Config, XSysMonPsu::IsReady, XSYSMONPSU_MON_STS_OFFSET, and XSysmonPsu_ReadReg.
u64 XSysMonPsu_GetSeqAcqTime | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
This function gets the status of acquisition time from the ADC Channel Acquisition Time Sequencer Registers.
InstancePtr | is a pointer to the XSysMonPsu instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
u64 XSysMonPsu_GetSeqAvgEnables | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
This function returns the channels for which the averaging has been enabled in the ADC Channel Averaging Enables Sequencer Registers.
InstancePtr | is a pointer to the XSysMonPsu instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
u64 XSysMonPsu_GetSeqChEnables | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
This function gets the channel enable bits status from the ADC Channel Selection Sequencer Registers.
InstancePtr | is a pointer to the XSysMonPsu instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
u64 XSysMonPsu_GetSeqInputMode | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
This function gets the Analog input mode for all the channels from the ADC Channel Analog-Input Mode Sequencer Registers.
InstancePtr | is a pointer to the XSysMonPsu instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
s32 XSysMonPsu_GetSequencerEvent | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
The function returns the mode of the sequencer.
InstancePtr | is a pointer to the XSysMonPsu instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
u8 XSysMonPsu_GetSequencerMode | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
This function gets the channel sequencer mode from the Configuration Register 1.
InstancePtr | is a pointer to the XSysMonPsu instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
u32 XSysMonPsu_GetStatus | ( | XSysMonPsu * | InstancePtr, |
u32 | SysmonBlk | ||
) |
This function reads the contents of the Status Register.
InstancePtr | is a pointer to the XSysMonPsu instance. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
void XSysMonPsu_Reset | ( | XSysMonPsu * | InstancePtr | ) |
This function resets the SystemMonitor.
InstancePtr | is a pointer to the XSysMonPsu instance. |
References XSysMonPsu_Config::BaseAddress, XSysMonPsu::Config, and XSysmonPsu_WriteReg.
Referenced by XSysMonPsu_SelfTest().
void XSysMonPsu_SetAdcClkDivisor | ( | XSysMonPsu * | InstancePtr, |
u8 | Divisor, | ||
u32 | SysmonBlk | ||
) |
The function sets the frequency of the ADCCLK by configuring the DCLK to ADCCLK ratio in the Configuration Register #2.
InstancePtr | is a pointer to the XSysMonPsu instance. |
Divisor | is clock divisor used to derive ADCCLK from DCLK. Valid values of the divisor are PS:
|
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
Referenced by SysMonPsuSingleChannelIntrExample().
void XSysMonPsu_SetAlarmEnables | ( | XSysMonPsu * | InstancePtr, |
u32 | AlmEnableMask, | ||
u32 | SysmonBlk | ||
) |
This function enables the alarm outputs for the specified alarms in the Configuration Registers 1:
InstancePtr | is a pointer to the XSysMonPsu instance. |
AlmEnableMask | is the bit-mask of the alarm outputs to be enabled in the Configuration Registers 1 and 3. Bit positions of 1 will be enabled. Bit positions of 0 will be disabled. This mask is formed by OR'ing XSYSMONPSU_CFR_REG1_ALRM_*_MASK masks defined in xsysmonpsu.h, but XSM_CFR_ALM_SUPPLY8_MASK to XSM_CFR_ALM_SUPPLY13_MASK are applicable only for PS. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
void XSysMonPsu_SetAlarmThreshold | ( | XSysMonPsu * | InstancePtr, |
u8 | AlarmThrReg, | ||
u16 | Value, | ||
u32 | SysmonBlk | ||
) |
This functions sets the contents of the given Alarm Threshold Register.
InstancePtr | is a pointer to the XSysMonPsu instance. |
AlarmThrReg | is the index of an Alarm Threshold Register to be set. Use XSM_ATR_* constants defined in xsysmonpsu.h to specify the index. |
Value | is the 16-bit threshold value to write into the register. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady, XSM_ATR_SUP7_LOWER, XSM_ATR_TEMP_RMTE_LOWER, and XSM_ATR_TEMP_RMTE_UPPER.
Referenced by XSysMonPsu_SelfTest().
void XSysMonPsu_SetAvg | ( | XSysMonPsu * | InstancePtr, |
u8 | Average, | ||
u32 | SysmonBlk | ||
) |
This function sets the number of samples of averaging that is to be done for all the channels in both the single channel mode and sequence mode of operations.
InstancePtr | is a pointer to the XSysMonPsu instance. |
Average | is the number of samples of averaging programmed to the Configuration Register 0. Use the XSM_AVG_* definitions defined in xsysmonpsu.h file :
|
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady, and XSM_AVG_256_SAMPLES.
void XSysMonPsu_SetExtenalMux | ( | XSysMonPsu * | InstancePtr, |
u8 | Channel, | ||
u32 | SysmonBlk | ||
) |
The function enables the external mux and connects a channel to the mux.
InstancePtr | is a pointer to the XSysMonPsu instance. |
Channel | is the channel number used to connect to the external Mux. The valid channels are 0 to 5 and 16 to 31. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady, XSM_CH_AUX_MAX, XSM_CH_AUX_MIN, and XSM_CH_VREFN.
void XSysMonPsu_SetPSAutoConversion | ( | XSysMonPsu * | InstancePtr | ) |
This function sets the conversion to be automatic for PS SysMon.
InstancePtr | is a pointer to the XSysMonPsu instance. |
References XSysMonPsu_Config::BaseAddress, XSysMonPsu::Config, XSysMonPsu::IsReady, XSYSMONPSU_PS_SYSMON_CSTS_OFFSET, and XSysmonPsu_ReadReg.
s32 XSysMonPsu_SetSeqAcqTime | ( | XSysMonPsu * | InstancePtr, |
u64 | AcqCyclesChMask, | ||
u32 | SysmonBlk | ||
) |
This function sets the number of Acquisition cycles in the ADC Channel Acquisition Time Sequencer Registers.
The sequencer must be in the Safe Mode before writing to these registers.
InstancePtr | is a pointer to the XSysMonPsu instance. |
AcqCyclesChMask | is the bit mask of all the channels for which the number of acquisition cycles is to be extended. Use XSYSMONPSU_SEQ_ACQ* defined in xsysmonpsu_hw.h to specify the Channel numbers. Acquisition cycles will be extended to 10 ADCCLK cycles for bit masks of 1 and will be the default 4 ADCCLK cycles for bit masks of 0. The AcqCyclesChMask is a 64 bit mask that is written to the three 16 bit ADC Channel Acquisition Time Sequencer Registers. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
s32 XSysMonPsu_SetSeqAvgEnables | ( | XSysMonPsu * | InstancePtr, |
u64 | AvgEnableChMask, | ||
u32 | SysmonBlk | ||
) |
This function enables the averaging for the specified channels in the ADC Channel Averaging Enable Sequencer Registers.
The sequencer must be in the Safe Mode before writing to these registers.
InstancePtr | is a pointer to the XSysMonPsu instance. |
AvgEnableChMask | is the bit mask of all the channels for which averaging is to be enabled. Use XSYSMONPSU_SEQ_AVERAGE* defined in xsysmonpsu_hw.h to specify the Channel numbers. Averaging will be enabled for bit masks of 1 and disabled for bit mask of 0. The AvgEnableChMask is a 64 bit mask that is written to the three 16 bit ADC Channel Averaging Enable Sequencer Registers. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
s32 XSysMonPsu_SetSeqChEnables | ( | XSysMonPsu * | InstancePtr, |
u64 | ChEnableMask, | ||
u32 | SysmonBlk | ||
) |
This function enables the specified channels in the ADC Channel Selection Sequencer Registers.
The sequencer must be in the Safe Mode before writing to these registers.
InstancePtr | is a pointer to the XSysMonPsu instance. |
ChEnableMask | is the bit mask of all the channels to be enabled. Use XSYSMONPSU_SEQ_CH* defined in xsysmon_hw.h to specify the Channel numbers. Bit masks of 1 will be enabled and bit mask of 0 will be disabled. The ChEnableMask is a 64 bit mask that is written to the three 16 bit ADC Channel Selection Sequencer Registers. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
s32 XSysMonPsu_SetSeqInputMode | ( | XSysMonPsu * | InstancePtr, |
u64 | InputModeChMask, | ||
u32 | SysmonBlk | ||
) |
This function sets the Analog input mode for the specified channels in the ADC Channel Analog-Input Mode Sequencer Registers.
The sequencer must be in the Safe Mode before writing to these registers.
InstancePtr | is a pointer to the XSysMonPsu instance. |
InputModeChMask | is the bit mask of all the channels for which the input mode is differential mode. Use XSYSMONPSU_SEQ_INPUT_MDE* defined in xsysmonpsu_hw.h to specify the channel numbers. Differential or Bipolar input mode will be set for bit masks of 1 and unipolar input mode for bit masks of 0. The InputModeChMask is a 64 bit mask that is written to the three 16 bit ADC Channel Analog-Input Mode Sequencer Registers. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
void XSysMonPsu_SetSequencerEvent | ( | XSysMonPsu * | InstancePtr, |
u32 | IsEventMode, | ||
u32 | SysmonBlk | ||
) |
The function enables the Event mode or Continuous mode in the sequencer mode.
InstancePtr | is a pointer to the XSysMonPsu instance. |
IsEventMode | is a boolean parameter that specifies continuous sampling (specify FALSE) or event driven sampling mode (specify TRUE) for the channel. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady.
void XSysMonPsu_SetSequencerMode | ( | XSysMonPsu * | InstancePtr, |
u8 | SequencerMode, | ||
u32 | SysmonBlk | ||
) |
This function sets the specified Channel Sequencer Mode in the Configuration Register 1 :
InstancePtr | is a pointer to the XSysMonPsu instance. |
SequencerMode | is the sequencer mode to be set. Use XSM_SEQ_MODE_* bits defined in xsysmonpsu.h. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady, XSM_SEQ_MODE_OYLMPUS, and XSM_SEQ_MODE_SINGCHAN.
s32 XSysMonPsu_SetSingleChParams | ( | XSysMonPsu * | InstancePtr, |
u8 | Channel, | ||
u32 | IncreaseAcqCycles, | ||
u32 | IsEventMode, | ||
u32 | IsDifferentialMode, | ||
u32 | SysmonBlk | ||
) |
The function sets the given parameters in the Configuration Register 0 in the single channel mode.
InstancePtr | is a pointer to the XSysMonPsu instance. |
Channel | is the channel number for conversion. The valid channels are 0 - 6, 8 - 10, 13 - 37. |
IncreaseAcqCycles | is a boolean parameter which specifies whether the Acquisition time for the external channels has to be increased to 10 ADCCLK cycles (specify TRUE) or remain at the default 4 ADCCLK cycles (specify FALSE). This parameter is only valid for the external channels. |
IsEventMode | is a boolean parameter that specifies continuous sampling (specify FALSE) or event driven sampling mode (specify TRUE) for the given channel. |
IsDifferentialMode | is a boolean parameter which specifies unipolar(specify FALSE) or differential mode (specify TRUE) for the analog inputs. The input mode is only valid for the external channels. |
SysmonBlk | is the value that tells whether it is for PS Sysmon block or PL Sysmon block register region. |
References XSysMonPsu::IsReady, XSM_CH_GAINERR_CALIB, XSM_CH_SUPPLY3, XSM_CH_SUPPLY4, XSM_CH_SUPPLY_CALIB, and XSM_CH_TEMP_REMTE.
void XSysMonPsu_StartAdcConversion | ( | XSysMonPsu * | InstancePtr | ) |
This function starts the ADC conversion in the Single Channel event driven sampling mode.
The EOC bit in Status Register will be set once the conversion is finished. Refer to the device specification for more details.
InstancePtr | is a pointer to the XSysMonPsu instance. |
References XSysMonPsu_Config::BaseAddress, XSysMonPsu::Config, XSysMonPsu::IsReady, XSYSMONPSU_PS_SYSMON_CSTS_OFFSET, and XSysmonPsu_ReadReg.