SemiDrive SSDK Appication Program Interface PTG3.0
Data Structures | Typedefs | Enumerations | Functions
sdrv_pvt.h File Reference
#include <sdrv_common.h>
#include <types.h>

Go to the source code of this file.

Data Structures

struct  sdrv_pvt_level_alarm_config
 
union  sdrv_pvt_alarm_config
 
struct  sdrv_pvt_core
 
struct  sdrv_pvt
 

Typedefs

typedef enum sdrv_pvt_core_id sdrv_pvt_core_id_e
 
typedef enum sdrv_pvt_alarm sdrv_pvt_alarm_e
 
typedef struct sdrv_pvt_level_alarm_config sdrv_pvt_level_alarm_config_t
 
typedef struct sdrv_pvt_core sdrv_pvt_core_t
 

Enumerations

enum  sdrv_pvt_core_id
 
enum  sdrv_pvt_alarm { PVT_HIGH_LEVEL_ALARM = 0 , PVT_LOW_LEVEL_ALARM , PVT_ALARM_NR }
 

Functions

status_t sdrv_pvt_init (sdrv_pvt_t *dev)
 
status_t sdrv_pvt_deinit (sdrv_pvt_t *dev)
 
status_t sdrv_pvt_start (sdrv_pvt_t *dev)
 
status_t sdrv_pvt_stop (sdrv_pvt_t *dev)
 
status_t sdrv_pvt_power_down (sdrv_pvt_t *dev)
 
status_t sdrv_pvt_get (sdrv_pvt_t *dev, sdrv_pvt_type *temperature)
 
status_t sdrv_pvt_register_alarm_cb (sdrv_pvt_t *dev, sdrv_pvt_core_id_e core, sdrv_pvt_alarm_cb_t alarm_cb, void *arg)
 
status_t sdrv_pvt_enable_alarm (sdrv_pvt_t *dev, sdrv_pvt_core_id_e core, sdrv_pvt_alarm_e alarm, const sdrv_pvt_alarm_config_t *config)
 
status_t sdrv_pvt_disable_alarm (sdrv_pvt_t *dev, sdrv_pvt_core_id_e core, sdrv_pvt_alarm_e alarm)
 

Detailed Description

Macro Definition Documentation

◆ PVT_TEMPERATURE_MAX

#define PVT_TEMPERATURE_MAX   (230.7f) /* dout_to_celsius(0xfff) */

◆ PVT_TEMPERATURE_MIN

#define PVT_TEMPERATURE_MIN   (-75.9f) /* dout_to_celsius(0x0) */

◆ SDRV_PVT_USE_EDGE_ALARM

#define SDRV_PVT_USE_EDGE_ALARM   0

Typedef Documentation

◆ sdrv_pvt_alarm_cb_t

typedef void(* sdrv_pvt_alarm_cb_t) (struct sdrv_pvt *dev, sdrv_pvt_core_id_e core, sdrv_pvt_alarm_e alarm, void *arg)

Temperature alarm callback.

◆ sdrv_pvt_alarm_config_t

Hysterisis alarm configuration.

◆ sdrv_pvt_alarm_e

Temperature sensor alarm modes.

Note
Do not change the order of this structure.

◆ sdrv_pvt_core_id_e

PVT core logics.

The sensor has 2 cores, both of which have identical logics, but different interrupt numbers.

◆ sdrv_pvt_core_t

PVT core logic structure.

The controller has 2 cores, which have unique interrupt number and configuration registers.

◆ sdrv_pvt_level_alarm_config_t

Level alarm configuration.

Temperature alarm thresholds, between PVT_TEMPERATURE_MIN and PVT_TEMPERATURE_MAX.

◆ sdrv_pvt_t

typedef struct sdrv_pvt sdrv_pvt_t

Process and temperature sensor structure.

◆ sdrv_pvt_type

typedef float sdrv_pvt_type

Enumeration Type Documentation

◆ sdrv_pvt_alarm

Temperature sensor alarm modes.

Note
Do not change the order of this structure.
Enumerator
PVT_HIGH_LEVEL_ALARM 

Alarm asserted when DOUT is above HYST_H thresholds. Alarm asserted when DOUT is below HYST_L thresholds.

PVT_LOW_LEVEL_ALARM 
PVT_ALARM_NR 

◆ sdrv_pvt_core_id

PVT core logics.

The sensor has 2 cores, both of which have identical logics, but different interrupt numbers.

Enumerator
PVT_CORE0 
PVT_CORE1 
PVT_CORE_NR 

◆ sdrv_pvt_error

PVT error code.

Enumerator
SDRV_PVT_INVALID_PARAM 
SDRV_PVT_NOT_STARTED 

Function Documentation

◆ sdrv_pvt_deinit()

status_t sdrv_pvt_deinit ( sdrv_pvt_t dev)

De-initialize the PVT device.

Parameters
[in]devPVT sensor device.

◆ sdrv_pvt_disable_alarm()

status_t sdrv_pvt_disable_alarm ( sdrv_pvt_t dev,
sdrv_pvt_core_id_e  core,
sdrv_pvt_alarm_e  alarm 
)

Disable Temperature sensor alarm.

Parameters
[in]devTemperature sensor device.
[in]coreTemperature sensor core.
[in]alarmThe alarm to disable.

◆ sdrv_pvt_enable_alarm()

status_t sdrv_pvt_enable_alarm ( sdrv_pvt_t dev,
sdrv_pvt_core_id_e  core,
sdrv_pvt_alarm_e  alarm,
const sdrv_pvt_alarm_config_t config 
)

Enable Temperature sensor alarm.

This function enables temperature sensor alarms.

Note
When high level alarm is enabled and triggered in Safety PVT sensor Core 0, internal power-down/reset request is sent from Safety PVT to PMU by default.
Parameters
[in]devTemperature sensor device.
[in]coreTemperature sensor core.
[in]alarmThe alarm to enable.
[in]configAlarm configurations.

◆ sdrv_pvt_get()

status_t sdrv_pvt_get ( sdrv_pvt_t dev,
sdrv_pvt_type temperature 
)

Read temperature sensor value.

Note
Temperature value is not ready until 280ms after sdrv_pvt_start() is called.
Parameters
[in]devPVT sensor device.
[out]temperatureJunction temperature value.

◆ sdrv_pvt_init()

status_t sdrv_pvt_init ( sdrv_pvt_t dev)

Initialize the PVT device.

Parameters
[in]devPVT sensor device.

◆ sdrv_pvt_power_down()

status_t sdrv_pvt_power_down ( sdrv_pvt_t dev)

Power down T-sensor and P-sensor.

Parameters
[in]devPVT sensor device.

◆ sdrv_pvt_register_alarm_cb()

status_t sdrv_pvt_register_alarm_cb ( sdrv_pvt_t dev,
sdrv_pvt_core_id_e  core,
sdrv_pvt_alarm_cb_t  alarm_cb,
void *  arg 
)

Register temperature alarm callback.

Parameters
[in]devSensor device.
[in]coreSensor core.
[in]alarm_cbTemperature alarm callback function.

◆ sdrv_pvt_start()

status_t sdrv_pvt_start ( sdrv_pvt_t dev)

Start temperature sensor.

After this function is called, the sensor automatically update temperature value every 280ms.

Parameters
[in]devPVT sensor device.

◆ sdrv_pvt_stop()

status_t sdrv_pvt_stop ( sdrv_pvt_t dev)

Stop temperature sensor.

Parameters
[in]devPVT sensor device.