sysmonpsu
Vitis Drivers API Documentation
|
This file contains a design example using the driver functions of the System Monitor driver.
This example here shows the usage of the driver/device in interrupt mode to handle on-chip temperature and voltage alarm interrupts.
This code assumes that no Operating System is being used.
The values of the on-chip Temperature, Supply 1 voltage and Supply 3 voltage are read from the device and then the alarm thresholds are set in such a manner that the alarms occur.
This examples also assumes that there is a STDIO device in the system. This example has floating point calculations and uses printfs for outputting floating point data, therefore the memory allocated for the Stack must be more.
MODIFICATION HISTORY:
Ver Who Date Changes
1.0 kvn 12/15/15 First release 02/15/16 Corrected order of Enabling / Disabling of interrupts. ms 04/05/17 Modified Comment lines in functions to recognize it as documentation block for doxygen generation. 2.3 ms 12/12/17 Added peripheral test support mn 03/08/18 Update code to run at higher frequency 2.6 aad 11/21/19 Removed reading of AUX channels aad 11/22/19 Added support for PL_EXAMPLE 2.9 cog 07/20/23 Added support for SDT flow
Functions | |
int | SysMonPsuIntrExample (XScuGic *XScuGicInstPtr, XSysMonPsu *SysMonInstPtr, u32 SysMonDeviceId, u16 SysMonIntrId) |
This function runs a test on the System Monitor device using the driver APIs. More... | |
int | main (void) |
Main function that invokes the Interrupt example. More... | |
int main | ( | void | ) |
Main function that invokes the Interrupt example.
None. |
References SysMonPsuIntrExample().
int SysMonPsuIntrExample | ( | XScuGic * | XScuGicInstPtr, |
XSysMonPsu * | SysMonInstPtr, | ||
u32 | SysMonDeviceId, | ||
u16 | SysMonIntrId | ||
) |
This function runs a test on the System Monitor device using the driver APIs.
The function does the following tasks:
XScuGicInstPtr | is a pointer to the Interrupt Controller driver Instance. |
SysMonInstPtr | is a pointer to the XSysMonPsu driver Instance. |
SysMonDeviceId | is the XPAR_<SYSMON_instance>_DEVICE_ID value from xparameters.h. |
SysMonIntrId | is XPAR_<SYSMON_instance>_INTR value from xparameters_ps.h |
References XSysMonPsu_Config::BaseAddress, XSM_ATR_SUP1_LOWER, XSM_ATR_SUP1_UPPER, XSM_ATR_SUP3_LOWER, XSM_ATR_SUP3_UPPER, XSM_ATR_TEMP_LOWER, XSM_ATR_TEMP_UPPER, XSM_AVG_16_SAMPLES, XSM_CFR_ALM_SUPPLY1_MASK, XSM_CFR_ALM_SUPPLY3_MASK, XSM_CFR_ALM_TEMP_MASK, XSM_CH_SUPPLY1, XSM_CH_SUPPLY3, XSM_CH_TEMP, XSM_MAX_SUPPLY1, XSM_MAX_SUPPLY3, XSM_MAX_TEMP, XSM_MIN_SUPPLY1, XSM_MIN_SUPPLY3, XSM_MIN_TEMP, XSM_SEQ_MODE_CONTINPASS, XSM_SEQ_MODE_SAFE, XSysMonPsu_CfgInitialize(), XSysMonPsu_GetAdcData(), XSysMonPsu_GetAlarmThreshold(), XSysMonPsu_GetMinMaxMeasurement(), XSysMonPsu_IntrClear(), XSysMonPsu_IntrEnable(), XSysMonPsu_IntrGetStatus(), XSysMonPsu_LookupConfig(), XSysMonPsu_RawToTemperature_OnChip, XSysMonPsu_RawToVoltage, XSysMonPsu_SelfTest(), XSysMonPsu_SetAlarmEnables(), XSysMonPsu_SetAlarmThreshold(), XSysMonPsu_SetAvg(), XSysMonPsu_SetSeqAvgEnables(), XSysMonPsu_SetSeqChEnables(), XSysMonPsu_SetSequencerMode(), XSysMonPsu_TemperatureToRaw_OnChip, and XSysMonPsu_VoltageToRaw.
Referenced by main().