Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

Table of Contents

...

This page gives an overview of sysmonpsu driver which is available as part of the Xilinx Vivado and SDK distribution.

Table of Contents

Table of Contents
minLevel1
maxLevel7
excludeTable of Contents

Introduction

A Zynq® UltraScale+™ MPSoC has one system monitoring (SYSMON) block in both the PS and the PL. The SYSMON block has a register interface that can be used to configure the
block and provide a capability of monitoring on and off chip voltages as well as junction temperature. The SYSMON block also has a built-in alarm generation logic that can be used
to interrupt the processor based on certain alarm conditions. For example, shutting down the system, based on an over-temperature (OT) alarm generated from the SYSMON block.
The PL SYSMON block has DRP, JTAG and I2C interfaces to enable monitoring from the external master and the capability to interface with an external power management bus
(PMBus) device. The PS SYSMON block has a built-in logic that enable access to the PS and PL SYSMON blocks.

...



Driver Sources

The source code for the driver is included with the Vitis Unified Software Platform installation, as well as being available in the Xilinx Github repository. 


Driver Name

Path in Vitis

Path in Github

sysmonpsu

<Vitis Install Directory>/data/embedded/XilinxProcessorIPLib/drivers/sysmonpsu_v2_7

https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/sysmonpsu


Note: To view the sources for a particular release, use the rel-version tag in github.  For example, for the 2020.1 release, the proper version of the code is: 

https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/sysmonpsu

...

...

The driver source code is organized into different folders.

...

  The table below shows the

...

<Driver Name> driver source organization

...


Directory

Description

...

doc

...

Provides the API and data structure details

...

data

Driver .tcl and .mdd file

examples

Example applications that show how to use the driver

...

features

src

Driver source files


PS SYSMON Features

The PS-SYSMON block, provides the following features.

  • Remote temperature sensor capability

  • ADC supports 10-bit resolution with 1 MSPS sampling frequency

    • 1v range with a common-mode, unipolar and bipolar

    • One, dedicated, low input resistance differential channel

    • 16 auxiliary differential channels.

  • Supply monitor, multiple input channels

  • Stand-alone measurement control system including sequencing, alarms, averaging and min/max

  • Multi-rate sequencing capability operational on power-up in default mode

  • Internal reference options

  • Support for low power sleep mode.

Example Applications

Test Cases

...

Refer to the driver examples directory for various example applications that exercise the different features of the driver. Each application is linked in the table below. The following sections describe the usage and expected output of the various applications.  These example applications can be imported into the Vitis IDE from the Board Support Package  settings tab. 

Links to Examples

Examples Path:
https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/sysmonpsu/examples

Test Name

Example Source

Description

Polled Example

xsysmonpsu_polled_example.c

...

This is a polled mode example in which shows the usage of the driver/device in polled mode to check the on-chip temperature and voltages.

...

Interrupt Example

xsysmonpsu_intr_example.c

...

This is an interrupt mode example in which shows the usage of the driver/device in interrupt mode to handle on-chip temperature and voltage alarm interrupts.

Low Level Example

...

...

This example shows the usage of the basic functions driver in polled mode to check the on-chip temperature and voltages.

...

Single Channel Interrupt Example

xsysmonpsu_single_ch_intr_example.c

...

This example shows the usage of the driver/device in single channel interrupt mode to handle End of Conversion (EOC) and VCCINT alarm interrupts.

AMS Example

xsysmonpsu_ams_example.c

...

This example is used to measure AMS control block voltages via single channel sequencer off mode.

Changelog

2016.3

  • Modified the driver code for MISRA-C 2012 compliance.
  • Add support for enabling the SEQ_CH2_REG and SEQ_AVG2_REG
  • Add support for configuring sequential input mode2 and acquisition2 registers.

2016.4

  • None.

2017.1

  • Fixed compilation warnings.
  • Added voltage conversion macro for Vcco_psio
  • Add PL reset check before PL sysmon reset

2017.2

  • Corrected temperature conversion formulas

2017.3

  • None.

2017.4

  • None.

2018.1

  • Add missing closing bracket in xsysmonpsu.h
  • Add conversion support for Voltages having range of 1 volt
  • Correct the AMS block channel numbers in BSP
  • Add example for testing AMS block voltage measurement
  • Add support to extract frequency information
  • Update Sysmon clock divisor to the proper value
  • Update examples to use higher clock frequency
  • Remove looping check for PL accessible bit
  • Remove usleeps from AMS CTRL example

2018.2

  • None

2018.3

  • Added initializer macro for Input Clock MHz

2019.1

  • Misra C changes

2019.2

...

Example Application Usage

Polled Example

This is a polled mode example in which shows the usage of the driver/device in polled mode to check the on-chip temperature and voltages.

Expected Output

Code Block
Entering the SysMon Polled Example.

The Current Temperature is 32.191 Centigrades.
The Maximum Temperature is 32.417 Centigrades.
The Minimum Temperature is 31.717 Centigrades.

The Current Supply 1 is 0.846 Volts.
The Maximum Supply 1 is 0.847 Volts.
The Minimum Supply 1 is 0.845 Volts.

The Current Supply 3 is 1.810 Volts.
The Maximum Supply 3 is 1.811 Volts.
The Minimum Supply 3 is 1.808 Volts.

Exiting the SysMon Polled Example.
Successfully ran Sysmon PS Polled Example Test

Interrupt Example

This is an interrupt mode example in which shows the usage of the driver/device in interrupt mode to handle on-chip temperature and voltage alarm interrupts.

Expected Output

Code Block
Entering the SysMonPsu Interrupt Example.

The Current Temperature is 33.598 Centigrade.

The Current Supply 1 is 0.845 Volts.

The Current Supply 3 is 1.809 Volts.

Temperature Alarm(0) HIGH Threshold is 23.596 Centigrade.
Temperature Alarm(0) LOW Threshold is 13.594 Centigrade.
Supply 1 Alarm(1) HIGH Threshold is 0.645 Volts.
Supply 1 Alarm(1) LOW Threshold is 1.045 Volts.
Supply 3 Alarm(3) HIGH Threshold is 1.609 Volts.
Supply 3 Alarm(3) LOW Threshold is 2.009 Volts.

Alarm 0 - Temperature alarm has occurred

The Current Temperature is 33.885 Centigrade.
The Maximum Temperature is 34.406 Centigrade.
The Minimum Temperature is 33.046 Centigrade.

The Current Supply 1 is 0.845 Volts.
The Maximum Supply 1 is 0.847 Volts.
The Minimum Supply 1 is 0.844 Volts.

The Current Supply 3 is 1.808 Volts.
The Maximum Supply 3 is 1.811 Volts.
The Minimum Supply 3 is 1.807 Volts.

Exiting the SysMon Interrupt Example.
Successfully ran SysMonPsu Interrupt PS Example Test

Low Level Example

This example shows the usage of the basic functions driver in polled mode to check the on-chip temperature and voltages.

Expected Output

Code Block
Successfully ran SysMonPsu low level Example Test

Single Channel Interrupt Example

This example shows the usage of the driver/device in single channel interrupt mode to handle End of Conversion (EOC) and VCCINT alarm interrupts.

Expected Output

Code Block
Successfully ran Sysmon Single Channel Interrupt Example Test

AMS Example

This example is used to measure AMS control block voltages via single channel sequencer off mode.

Expected Output

Code Block
Entering Sysmon AMS Example Test

1. EOC: Done , VCC_PSPLL: 1.202 Volts

2. EOC: Done , VCC_PSBATT: 1.636 Volts

3. EOC: Done , VCCINT: 0.844 Volts

4. EOC: Done , VCCBRAM: 0.845 Volts

5. EOC: Done , VCCAUX: 1.798 Volts

6. EOC: Done , VCC_PSDDRPLL: 1.805 Volts

7. EOC: Done , VCC_PSDDRPHY_REF: 0.217 Volts

8. EOC: Done , VCC_PSINTFP_DDR: 0.848 Volts

Successfully ran Sysmon AMS Example Test

Changelog

https://github.com/Xilinx/embeddedsw/commits/master/XilinxProcessorIPLib/drivers/sysmonpsu


Related Links

  • NA