MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
TMU: Thermal Management Unit Driver

Overview

The MCUXpresso SDK provides a peripheral driver for the thermal management unit (TMU) module of MCUXpresso SDK devices.

Typical use case

Monitor and report Configuration

Refer to the driver examples codes located at <SDK_ROOT>/boards/<BOARD>/driver_examples/tmu_1

Data Structures

struct  tmu_thresold_config_t
 configuration for TMU thresold. More...
 
struct  tmu_interrupt_status_t
 TMU interrupt status. More...
 
struct  tmu_config_t
 Configuration for TMU module. More...
 

Macros

#define FSL_TMU_DRIVER_VERSION   (MAKE_VERSION(2, 0, 1))
 TMU driver version. More...
 

Enumerations

enum  _tmu_interrupt_enable {
  kTMU_ImmediateTemperatureInterruptEnable,
  kTMU_AverageTemperatureInterruptEnable,
  kTMU_AverageTemperatureCriticalInterruptEnable
}
 TMU interrupt enable. More...
 
enum  _tmu_interrupt_status_flags {
  kTMU_ImmediateTemperatureStatusFlags = TMU_TIDR_ITTE_MASK,
  kTMU_AverageTemperatureStatusFlags = TMU_TIDR_ATTE_MASK,
  kTMU_AverageTemperatureCriticalStatusFlags
}
 TMU interrupt status flags. More...
 
enum  tmu_average_low_pass_filter_t {
  kTMU_AverageLowPassFilter1_0 = 0U,
  kTMU_AverageLowPassFilter0_5 = 1U,
  kTMU_AverageLowPassFilter0_25 = 2U,
  kTMU_AverageLowPassFilter0_125 = 3U
}
 Average low pass filter setting. More...
 
enum  tmu_amplifier_gain_t {
  kTMU_AmplifierGain6_34 = 0U,
  kTMU_AmplifierGain6_485 = 1U,
  kTMU_AmplifierGain6_63 = 2U,
  kTMU_AmplifierGain6_775 = 3U,
  kTMU_AmplifierGain6_92 = 4U,
  kTMU_AmplifierGain7_065 = 5U,
  kTMU_AmplifierGain7_21 = 6U,
  kTMU_AmplifierGain7_355 = 7U,
  kTMU_AmplifierGain7_5 = 8U,
  kTMU_AmplifierGain7_645 = 9U,
  kTMU_AmplifierGain7_79 = 10U,
  kTMU_AmplifierGain7_935 = 11U,
  kTMU_AmplifierGain8_08 = 12U,
  kTMU_AmplifierGain8_225 = 13U,
  kTMU_AmplifierGain8_37 = 14U,
  kTMU_AmplifierGain8_515 = 15U
}
 Amplifier gain setting. More...
 
enum  tmu_amplifier_reference_voltage_t {
  kTMU_AmplifierReferenceVoltage510 = 0U,
  kTMU_AmplifierReferenceVoltage517_5 = 1U,
  kTMU_AmplifierReferenceVoltage525 = 2U,
  kTMU_AmplifierReferenceVoltage532_5 = 3U,
  kTMU_AmplifierReferenceVoltage540 = 4U,
  kTMU_AmplifierReferenceVoltage547_5 = 5U,
  kTMU_AmplifierReferenceVoltage555 = 6U,
  kTMU_AmplifierReferenceVoltage562_5 = 7U,
  kTMU_AmplifierReferenceVoltage570 = 8U,
  kTMU_AmplifierReferenceVoltage577_5 = 9U,
  kTMU_AmplifierReferenceVoltage585 = 10U,
  kTMU_AmplifierReferenceVoltage592_5 = 11U,
  kTMU_AmplifierReferenceVoltage600 = 12U,
  kTMU_AmplifierReferenceVoltage607_5 = 13U,
  kTMU_AmplifierReferenceVoltage615 = 14U,
  kTMU_AmplifierReferenceVoltage622_5 = 15U,
  kTMU_AmplifierReferenceVoltage630 = 16U,
  kTMU_AmplifierReferenceVoltage637_5 = 17U,
  kTMU_AmplifierReferenceVoltage645 = 18U,
  kTMU_AmplifierReferenceVoltage652_5 = 19U,
  kTMU_AmplifierReferenceVoltage660 = 20U,
  kTMU_AmplifierReferenceVoltage667_5 = 21U,
  kTMU_AmplifierReferenceVoltage675 = 22U,
  kTMU_AmplifierReferenceVoltage682_5 = 23U,
  kTMU_AmplifierReferenceVoltage690 = 24U,
  kTMU_AmplifierReferenceVoltage697_5 = 25U,
  kTMU_AmplifierReferenceVoltage705 = 26U,
  kTMU_AmplifierReferenceVoltage712_5 = 27U,
  kTMU_AmplifierReferenceVoltage720 = 28U,
  kTMU_AmplifierReferenceVoltage727_5 = 29U,
  kTMU_AmplifierReferenceVoltage735 = 30U,
  kTMU_AmplifierReferenceVoltage742_5 = 31U
}
 Amplifier reference voltage setting. More...
 

Functions

void TMU_Init (TMU_Type *base, const tmu_config_t *config)
 Enable the access to TMU registers and Initialize TMU module. More...
 
void TMU_Deinit (TMU_Type *base)
 De-initialize TMU module and Disable the access to DCDC registers. More...
 
void TMU_GetDefaultConfig (tmu_config_t *config)
 Gets the default configuration for TMU. More...
 
static void TMU_Enable (TMU_Type *base, bool enable)
 Enable/Disable monitoring the temperature sensor. More...
 
static void TMU_EnableInterrupts (TMU_Type *base, uint32_t mask)
 Enable the TMU interrupts. More...
 
static void TMU_DisableInterrupts (TMU_Type *base, uint32_t mask)
 Disable the TMU interrupts. More...
 
void TMU_GetInterruptStatusFlags (TMU_Type *base, tmu_interrupt_status_t *status)
 Get interrupt status flags. More...
 
void TMU_ClearInterruptStatusFlags (TMU_Type *base, uint32_t mask)
 Clear interrupt status flags. More...
 
status_t TMU_GetImmediateTemperature (TMU_Type *base, uint32_t *temperature)
 Get the last immediate temperature at site. More...
 
status_t TMU_GetAverageTemperature (TMU_Type *base, uint32_t *temperature)
 Get the last average temperature at site. More...
 
void TMU_SetHighTemperatureThresold (TMU_Type *base, const tmu_thresold_config_t *config)
 Configure the high temperature thresold value and enable/disable relevant thresold. More...
 

Variables

bool tmu_thresold_config_t::immediateThresoldEnable
 Enable high temperature immediate threshold. More...
 
bool tmu_thresold_config_t::AverageThresoldEnable
 Enable high temperature average threshold. More...
 
bool tmu_thresold_config_t::AverageCriticalThresoldEnable
 Enable high temperature average critical threshold. More...
 
uint8_t tmu_thresold_config_t::immediateThresoldValue
 Range:10U-125U. More...
 
uint8_t tmu_thresold_config_t::averageThresoldValue
 Range:10U-125U. More...
 
uint8_t tmu_thresold_config_t::averageCriticalThresoldValue
 Range:10U-125U. More...
 
uint32_t tmu_interrupt_status_t::interruptDetectMask
 The mask of interrupt status flags. More...
 
tmu_average_low_pass_filter_t tmu_config_t::averageLPF
 The average temperature is calculated as: ALPF x Current_Temp + (1 - ALPF) x Average_Temp. More...
 
tmu_amplifier_gain_t tmu_config_t::amplifierGain
 Amplifier gain setting. More...
 
tmu_amplifier_reference_voltage_t tmu_config_t::amplifierVref
 Amplifier reference voltage setting. More...
 

Data Structure Documentation

struct tmu_thresold_config_t

Data Fields

bool immediateThresoldEnable
 Enable high temperature immediate threshold. More...
 
bool AverageThresoldEnable
 Enable high temperature average threshold. More...
 
bool AverageCriticalThresoldEnable
 Enable high temperature average critical threshold. More...
 
uint8_t immediateThresoldValue
 Range:10U-125U. More...
 
uint8_t averageThresoldValue
 Range:10U-125U. More...
 
uint8_t averageCriticalThresoldValue
 Range:10U-125U. More...
 
struct tmu_interrupt_status_t

Data Fields

uint32_t interruptDetectMask
 The mask of interrupt status flags. More...
 
struct tmu_config_t

Data Fields

tmu_average_low_pass_filter_t averageLPF
 The average temperature is calculated as: ALPF x Current_Temp + (1 - ALPF) x Average_Temp. More...
 
tmu_amplifier_gain_t amplifierGain
 Amplifier gain setting. More...
 
tmu_amplifier_reference_voltage_t amplifierVref
 Amplifier reference voltage setting. More...
 

Macro Definition Documentation

#define FSL_TMU_DRIVER_VERSION   (MAKE_VERSION(2, 0, 1))

Version 2.0.1.

Enumeration Type Documentation

Enumerator
kTMU_ImmediateTemperatureInterruptEnable 

Immediate temperature threshold exceeded interrupt enable.

kTMU_AverageTemperatureInterruptEnable 

Average temperature threshold exceeded interrupt enable.

kTMU_AverageTemperatureCriticalInterruptEnable 

Average temperature critical threshold exceeded interrupt enable.

>

Enumerator
kTMU_ImmediateTemperatureStatusFlags 

Immediate temperature threshold exceeded(ITTE).

kTMU_AverageTemperatureStatusFlags 

Average temperature threshold exceeded(ATTE).

kTMU_AverageTemperatureCriticalStatusFlags 

Average temperature critical threshold exceeded.

(ATCTE)

Enumerator
kTMU_AverageLowPassFilter1_0 

Average low pass filter = 1.

kTMU_AverageLowPassFilter0_5 

Average low pass filter = 0.5.

kTMU_AverageLowPassFilter0_25 

Average low pass filter = 0.25.

kTMU_AverageLowPassFilter0_125 

Average low pass filter = 0.125.

Enumerator
kTMU_AmplifierGain6_34 

TMU amplifier gain voltage 6.34mV.

kTMU_AmplifierGain6_485 

TMU amplifier gain voltage 6.485mV.

kTMU_AmplifierGain6_63 

TMU amplifier gain voltage 6.63mV.

kTMU_AmplifierGain6_775 

TMU amplifier gain voltage 6.775mV.

kTMU_AmplifierGain6_92 

TMU amplifier gain voltage 6.92mV.

kTMU_AmplifierGain7_065 

TMU amplifier gain voltage 7.065mV.

kTMU_AmplifierGain7_21 

TMU amplifier gain voltage 7.21mV.

kTMU_AmplifierGain7_355 

TMU amplifier gain voltage 7.355mV.

kTMU_AmplifierGain7_5 

TMU amplifier gain voltage 7.5mV.

kTMU_AmplifierGain7_645 

TMU amplifier gain voltage 7.645mV.

kTMU_AmplifierGain7_79 

TMU amplifier gain voltage 7.79mV.

kTMU_AmplifierGain7_935 

TMU amplifier gain voltage 7.935mV.

kTMU_AmplifierGain8_08 

TMU amplifier gain voltage 8.08mV(default).

kTMU_AmplifierGain8_225 

TMU amplifier gain voltage 8.225mV.

kTMU_AmplifierGain8_37 

TMU amplifier gain voltage 8.37mV.

kTMU_AmplifierGain8_515 

TMU amplifier gain voltage 8.515mV.

Enumerator
kTMU_AmplifierReferenceVoltage510 

TMU amplifier reference voltage 510mV.

kTMU_AmplifierReferenceVoltage517_5 

TMU amplifier reference voltage 517.5mV.

kTMU_AmplifierReferenceVoltage525 

TMU amplifier reference voltage 525mV.

kTMU_AmplifierReferenceVoltage532_5 

TMU amplifier reference voltage 532.5mV.

kTMU_AmplifierReferenceVoltage540 

TMU amplifier reference voltage 540mV.

kTMU_AmplifierReferenceVoltage547_5 

TMU amplifier reference voltage 547.5mV.

kTMU_AmplifierReferenceVoltage555 

TMU amplifier reference voltage 555mV.

kTMU_AmplifierReferenceVoltage562_5 

TMU amplifier reference voltage 562.5mV.

kTMU_AmplifierReferenceVoltage570 

TMU amplifier reference voltage 570mV.

kTMU_AmplifierReferenceVoltage577_5 

TMU amplifier reference voltage 577.5mV.

kTMU_AmplifierReferenceVoltage585 

TMU amplifier reference voltage 585mV.

kTMU_AmplifierReferenceVoltage592_5 

TMU amplifier reference voltage 592.5mV.

kTMU_AmplifierReferenceVoltage600 

TMU amplifier reference voltage 600mV.

kTMU_AmplifierReferenceVoltage607_5 

TMU amplifier reference voltage 607.5mV.

kTMU_AmplifierReferenceVoltage615 

TMU amplifier reference voltage 615mV.

kTMU_AmplifierReferenceVoltage622_5 

TMU amplifier reference voltage 622.5mV.

kTMU_AmplifierReferenceVoltage630 

TMU amplifier reference voltage 630mV.

kTMU_AmplifierReferenceVoltage637_5 

TMU amplifier reference voltage 637.5mV.

kTMU_AmplifierReferenceVoltage645 

TMU amplifier reference voltage 645mV.

kTMU_AmplifierReferenceVoltage652_5 

TMU amplifier reference voltage 652.5mV(default).

kTMU_AmplifierReferenceVoltage660 

TMU amplifier reference voltage 660mV.

kTMU_AmplifierReferenceVoltage667_5 

TMU amplifier reference voltage 667.5mV.

kTMU_AmplifierReferenceVoltage675 

TMU amplifier reference voltage 675mV.

kTMU_AmplifierReferenceVoltage682_5 

TMU amplifier reference voltage 682.5mV.

kTMU_AmplifierReferenceVoltage690 

TMU amplifier reference voltage 690mV.

kTMU_AmplifierReferenceVoltage697_5 

TMU amplifier reference voltage 697.5mV.

kTMU_AmplifierReferenceVoltage705 

TMU amplifier reference voltage 705mV.

kTMU_AmplifierReferenceVoltage712_5 

TMU amplifier reference voltage 712.5mV.

kTMU_AmplifierReferenceVoltage720 

TMU amplifier reference voltage 720mV.

kTMU_AmplifierReferenceVoltage727_5 

TMU amplifier reference voltage 727.5mV.

kTMU_AmplifierReferenceVoltage735 

TMU amplifier reference voltage 735mV.

kTMU_AmplifierReferenceVoltage742_5 

TMU amplifier reference voltage 742.5mV.

Function Documentation

void TMU_Init ( TMU_Type *  base,
const tmu_config_t config 
)
Parameters
baseTMU peripheral base address.
configPointer to configuration structure. Refer to "tmu_config_t" structure.
void TMU_Deinit ( TMU_Type *  base)
Parameters
baseTMU peripheral base address.
void TMU_GetDefaultConfig ( tmu_config_t config)

This function initializes the user configuration structure to default value. The default value are:

Example:

config->amplifierGain = 12U;
config->amplifierRef = 19U;
config->averageLPF = kTMU_AverageLowPassFilter0_5;
Parameters
configPointer to TMU configuration structure.
static void TMU_Enable ( TMU_Type *  base,
bool  enable 
)
inlinestatic
Parameters
baseTMU peripheral base address.
enableSwitcher to enable/disable TMU.
static void TMU_EnableInterrupts ( TMU_Type *  base,
uint32_t  mask 
)
inlinestatic
Parameters
basTMU peripheral base address.
maskThe interrupt mask. Refer to "_tmu_interrupt_enable" enumeration.
static void TMU_DisableInterrupts ( TMU_Type *  base,
uint32_t  mask 
)
inlinestatic
Parameters
basTMU peripheral base address.
maskThe interrupt mask. Refer to "_tmu_interrupt_enable" enumeration.
void TMU_GetInterruptStatusFlags ( TMU_Type *  base,
tmu_interrupt_status_t status 
)
Parameters
baseTMU peripheral base address.
statusThe pointer to interrupt status structure. Record the current interrupt status. Please refer to "tmu_interrupt_status_t" structure.
void TMU_ClearInterruptStatusFlags ( TMU_Type *  base,
uint32_t  mask 
)
Parameters
baseTMU peripheral base address.
Themask of interrupt status flags. Refer to "_tmu_interrupt_status_flags" enumeration.
status_t TMU_GetImmediateTemperature ( TMU_Type *  base,
uint32_t *  temperature 
)
Parameters
baseTMU peripheral base address.
temperatureLast immediate temperature reading at site when V=1.
Returns
Execution status.
Return values
kStatus_SuccessTemperature reading is valid.
kStatus_FailTemperature reading is not valid because temperature out of sensor range or first measurement still pending.
status_t TMU_GetAverageTemperature ( TMU_Type *  base,
uint32_t *  temperature 
)
Parameters
baseTMU peripheral base address.
temperatureLast average temperature reading at site.
Returns
Execution status.
Return values
kStatus_SuccessTemperature reading is valid.
kStatus_FailTemperature reading is not valid because temperature out of sensor range or first measurement still pending.
void TMU_SetHighTemperatureThresold ( TMU_Type *  base,
const tmu_thresold_config_t config 
)
Parameters
baseTMU peripheral base address.
configPointer to configuration structure. Refer to "tmu_thresold_config_t" structure.

Variable Documentation

bool tmu_thresold_config_t::immediateThresoldEnable
bool tmu_thresold_config_t::AverageThresoldEnable
bool tmu_thresold_config_t::AverageCriticalThresoldEnable
uint8_t tmu_thresold_config_t::immediateThresoldValue

Valid when corresponding threshold is enabled. High temperature immediate threshold value. Determines the current upper temperature threshold, for any enabled monitored site.

uint8_t tmu_thresold_config_t::averageThresoldValue

Valid when corresponding threshold is enabled. High temperature average threshold value. Determines the average upper temperature threshold, for any enabled monitored site.

uint8_t tmu_thresold_config_t::averageCriticalThresoldValue

Valid when corresponding threshold is enabled. High temperature average critical threshold value. Determines the average upper critical temperature threshold, for any enabled monitored site.

uint32_t tmu_interrupt_status_t::interruptDetectMask

Refer to "_tmu_interrupt_status_flags" enumeration.

tmu_average_low_pass_filter_t tmu_config_t::averageLPF

For proper operation, this field should only change when monitoring is disabled.

tmu_amplifier_gain_t tmu_config_t::amplifierGain
tmu_amplifier_reference_voltage_t tmu_config_t::amplifierVref