Multi Half-Bridge  4.0.0
Library of Infineon's Multi Half-Bridge IC controllers family
TLE94112 API
Collaboration diagram for TLE94112 API:

Data Structures

class  Tle94112Wiced
 

Detailed Description


Data Structure Documentation

◆ Tle94112Wiced

class Tle94112Wiced
Inheritance diagram for Tle94112Wiced:
Collaboration diagram for Tle94112Wiced:

Public Types

enum  HalfBridge {
  TLE_NOHB = 0 , TLE_HB1 , TLE_HB2 , TLE_HB3 ,
  TLE_HB4 , TLE_HB5 , TLE_HB6 , TLE_HB7 ,
  TLE_HB8 , TLE_HB9 , TLE_HB10 , TLE_HB11 ,
  TLE_HB12
}
 enum for the halfbridges on a TLE94112 More...
 
enum  PWMChannel { TLE_NOPWM = 0 , TLE_PWM1 , TLE_PWM2 , TLE_PWM3 }
 enum for the PWM channels of a halfbridge on TLE94112 More...
 
enum  HBState { TLE_FLOATING = 0b00 , TLE_LOW = 0b01 , TLE_HIGH = 0b10 }
 enum for the output states of a halfbridge More...
 
enum  HBOCState { TLE_NONE = 0b00 , TLE_LOWSIDE = 0b01 , TLE_HIGHSIDE = 0b10 }
 enum for the overcurrent states of a halfbridge More...
 
enum  PWMFreq { TLE_FREQOFF = 0b00 , TLE_FREQ80HZ , TLE_FREQ100HZ , TLE_FREQ200HZ }
 enum for the frequencies of a PWM channel More...
 
enum  DiagFlag {
  TLE_SPI_ERROR = 0x80 , TLE_LOAD_ERROR = 0x40 , TLE_UNDER_VOLTAGE = 0x20 , TLE_OVER_VOLTAGE = 0x10 ,
  TLE_POWER_ON_RESET = 0x08 , TLE_TEMP_SHUTDOWN = 0x04 , TLE_TEMP_WARNING = 0x02
}
 enum for the flags in the register SYS_DIAG1 More...
 

Public Member Functions

 Tle94112Wiced (void)
 Construct a new Tle94112Wiced::Tle94112 Wiced object with default pin assignment. More...
 
 Tle94112Wiced (wiced_gpio_t csPin)
 constructor with individual pin assignment More...
 
void begin (void)
 enables and initializes the TLE94112 More...
 
void end (void)
 deactivates all outputs and disables the TLE94112 More...
 
void configHB (HalfBridge hb, HBState state, PWMChannel pwm)
 sets the output state and the PWM channel for a halfbridge (only for passive freewheeling) More...
 
void configHB (HalfBridge hb, HBState state, PWMChannel pwm, uint8_t activeFW)
 sets the output state and the PWM channel for a halfbridge (allows active freewheeling) More...
 
void configPWM (PWMChannel pwm, PWMFreq freq, uint8_t dutyCycle)
 sets the frequency and duty cycle for a PWM channel More...
 
uint8_t setLedMode (HalfBridge hb, uint8_t active)
 sets LED mode on compatible half bridges (half bridge 1 or 2 of TLE94112) More...
 
uint8_t getSysDiagnosis ()
 returns a diagnosis value for error detection More...
 
uint8_t getSysDiagnosis (DiagFlag mask)
 shows if errors of a specific type have occurred More...
 
uint8_t getSysDiagnosis (uint8_t mask)
 shows if errors of a specific type have occurred More...
 
uint8_t getHBOverCurrent (HalfBridge hb)
 gets the overcurrent error flag bit for a specific halfbridge More...
 
uint8_t getHBOpenLoad (HalfBridge hb)
 gets the openload error flag bit for a specific halfbridge More...
 
void clearErrors ()
 clears all clearable error flags More...
 

Data Fields

SPICsBus
 
GPIOCcs
 
GPIOCen
 
Timertimer
 

Static Public Attributes

static const uint8_t TLE_STATUS_OK = 0U
 Reference value of Status Register. More...
 

Protected Types

enum  CtrlRegisters {
  HB_ACT_1_CTRL = 0 , HB_ACT_2_CTRL , HB_ACT_3_CTRL , HB_MODE_1_CTRL ,
  HB_MODE_2_CTRL , HB_MODE_3_CTRL , PWM_CH_FREQ_CTRL , PWM1_DC_CTRL ,
  PWM2_DC_CTRL , PWM3_DC_CTRL , FW_OL_CTRL , FW_CTRL
}
 enum for the control registers in a TLE94112 More...
 
enum  StatusRegisters {
  SYS_DIAG1 = 0 , OP_ERROR_1_STAT , OP_ERROR_2_STAT , OP_ERROR_3_STAT ,
  OP_ERROR_4_STAT , OP_ERROR_5_STAT , OP_ERROR_6_STAT
}
 enum for the status registers in a TLE94112 More...
 

Protected Member Functions

void init (void)
 initializes this object, automatically called by begin() More...
 
void _configHB (uint8_t hb, uint8_t state, uint8_t pwm, uint8_t activeFW)
 sets the output state and the PWM channel for a halfbridge automatically called by the public version of configHB More...
 
void _configPWM (uint8_t pwm, uint8_t freq, uint8_t dutyCycle)
 sets the frequency and duty cycle for a PWM channel automatically called by the public version of configPWM More...
 
uint8_t _getHBOverCurrent (uint8_t hb)
 gets the overcurrent error flag bit for a specific halfbridge automatically called by the public version of getHBOverCurrent More...
 
uint8_t _getHBOpenLoad (uint8_t hb)
 gets the openload error flag bit for a specific halfbridge automatically called by the public version of getHBOpenLoad More...
 
void writeReg (uint8_t reg, uint8_t mask, uint8_t shift, uint8_t data)
 writes data bits to a control register of the TLE94112 More...
 
uint8_t readStatusReg (uint8_t reg)
 reads one byte from a status register of the TLE94112 More...
 
uint8_t readStatusReg (uint8_t reg, uint8_t mask, uint8_t shift)
 reads some bits from a status register of the TLE94112 More...
 
void clearStatusReg (uint8_t reg)
 clears a status register by writing 0x00 to it More...
 

Protected Attributes

HalfBridge_t mHalfBridges [TLE94112_NUM_HB]
 array of register locations for halfbridges More...
 
PWMchannel_t mPwmChannels [TLE94112_NUM_PWM]
 array of register locations for PWM channels More...
 
uint8_t mCtrlRegAddresses [TLE94112_NUM_CTRL_REGS]
 mapping array for control register addresses More...
 
uint8_t mCtrlRegData [TLE94112_NUM_CTRL_REGS]
 mirror array for control register data More...
 
uint8_t mStatusRegAddresses [TLE94112_NUM_STATUS_REGS]
 mapping array for status register addresses More...
 
uint8_t mEnabled
 

Member Enumeration Documentation

◆ HalfBridge

enum Tle94112::HalfBridge
inherited

enum for the halfbridges on a TLE94112

Enumerator
TLE_NOHB 
TLE_HB1 
TLE_HB2 
TLE_HB3 
TLE_HB4 
TLE_HB5 
TLE_HB6 
TLE_HB7 
TLE_HB8 
TLE_HB9 
TLE_HB10 
TLE_HB11 
TLE_HB12 

◆ PWMChannel

enum Tle94112::PWMChannel
inherited

enum for the PWM channels of a halfbridge on TLE94112

Enumerator
TLE_NOPWM 
TLE_PWM1 
TLE_PWM2 
TLE_PWM3 

◆ HBState

enum Tle94112::HBState
inherited

enum for the output states of a halfbridge

Enumerator
TLE_FLOATING 
TLE_LOW 
TLE_HIGH 

◆ HBOCState

enum Tle94112::HBOCState
inherited

enum for the overcurrent states of a halfbridge

Enumerator
TLE_NONE 
TLE_LOWSIDE 
TLE_HIGHSIDE 

◆ PWMFreq

enum Tle94112::PWMFreq
inherited

enum for the frequencies of a PWM channel

Enumerator
TLE_FREQOFF 
TLE_FREQ80HZ 
TLE_FREQ100HZ 
TLE_FREQ200HZ 

◆ DiagFlag

enum Tle94112::DiagFlag
inherited

enum for the flags in the register SYS_DIAG1

Enumerator
TLE_SPI_ERROR 
TLE_LOAD_ERROR 
TLE_UNDER_VOLTAGE 
TLE_OVER_VOLTAGE 
TLE_POWER_ON_RESET 
TLE_TEMP_SHUTDOWN 
TLE_TEMP_WARNING 

◆ CtrlRegisters

enum Tle94112::CtrlRegisters
protectedinherited

enum for the control registers in a TLE94112

Enumerator
HB_ACT_1_CTRL 
HB_ACT_2_CTRL 
HB_ACT_3_CTRL 
HB_MODE_1_CTRL 
HB_MODE_2_CTRL 
HB_MODE_3_CTRL 
PWM_CH_FREQ_CTRL 
PWM1_DC_CTRL 
PWM2_DC_CTRL 
PWM3_DC_CTRL 
FW_OL_CTRL 
FW_CTRL 

◆ StatusRegisters

enum Tle94112::StatusRegisters
protectedinherited

enum for the status registers in a TLE94112

Enumerator
SYS_DIAG1 
OP_ERROR_1_STAT 
OP_ERROR_2_STAT 
OP_ERROR_3_STAT 
OP_ERROR_4_STAT 
OP_ERROR_5_STAT 
OP_ERROR_6_STAT 

Constructor & Destructor Documentation

◆ Tle94112Wiced() [1/2]

Tle94112Wiced::Tle94112Wiced ( void  )

Construct a new Tle94112Wiced::Tle94112 Wiced object with default pin assignment.

◆ Tle94112Wiced() [2/2]

Tle94112Wiced::Tle94112Wiced ( wiced_gpio_t  csPin)

constructor with individual pin assignment

Parameters
csPinpin number of the CS pin

Member Function Documentation

◆ begin()

void Tle94112::begin ( void  )
inherited

enables and initializes the TLE94112

Here is the call graph for this function:

◆ end()

void Tle94112::end ( void  )
inherited

deactivates all outputs and disables the TLE94112

Here is the call graph for this function:

◆ configHB() [1/2]

void Tle94112::configHB ( HalfBridge  hb,
HBState  state,
PWMChannel  pwm 
)
inherited

sets the output state and the PWM channel for a halfbridge (only for passive freewheeling)

Parameters
hbhalfbridge which will be configured
statesets the output voltage to high, low or floating
pwmselects a PWM channel for PWM output
See also
HalfBridge
HBState
PWMChannel

◆ configHB() [2/2]

void Tle94112::configHB ( HalfBridge  hb,
HBState  state,
PWMChannel  pwm,
uint8_t  activeFW 
)
inherited

sets the output state and the PWM channel for a halfbridge (allows active freewheeling)

Parameters
hbhalfbridge which will be configured
statesets the output voltage to high, low or floating
pwmselects a PWM channel for PWM output
activeFW1 for active freewheeling 0 for passive freewheeling (default)
See also
HalfBridge
HBState
PWMChannel
Here is the call graph for this function:

◆ configPWM()

void Tle94112::configPWM ( PWMChannel  pwm,
PWMFreq  freq,
uint8_t  dutyCycle 
)
inherited

sets the frequency and duty cycle for a PWM channel

Parameters
pwmPWM channel which will be configured
freqselects the PWM output frequency
dutyCyclea value from 0 to 255 which sets the dutyCycle
See also
PWMChannel
PWMFreq
Here is the call graph for this function:

◆ setLedMode()

uint8_t Tle94112::setLedMode ( HalfBridge  hb,
uint8_t  active 
)
inherited

sets LED mode on compatible half bridges (half bridge 1 or 2 of TLE94112)

Parameters
hbcompatible half bridge to set LED mode
activeLED mode active (1) or inactive (0)
See also
HalfBridge
Returns
0 if everything is ok 1 if half bridge does not support LED mode
Here is the call graph for this function:

◆ getSysDiagnosis() [1/3]

uint8_t Tle94112::getSysDiagnosis ( )
inherited

returns a diagnosis value for error detection

Returns
0 if everything is ok non-zero value if errors occurred
Here is the call graph for this function:

◆ getSysDiagnosis() [2/3]

uint8_t Tle94112::getSysDiagnosis ( DiagFlag  mask)
inherited

shows if errors of a specific type have occurred

Parameters
maskmask to filter for a specific flag
Returns
0 if everything is ok non-zero value on error condition
See also
DiagFlag
Here is the call graph for this function:

◆ getSysDiagnosis() [3/3]

uint8_t Tle94112::getSysDiagnosis ( uint8_t  mask)
inherited

shows if errors of a specific type have occurred

Parameters
maskmask to filter for one or more specific flags this can be a disjunction of DiagFlag values
Returns
0 if everything is ok non-zero value on error condition
See also
DiagFlag
Here is the call graph for this function:

◆ getHBOverCurrent()

uint8_t Tle94112::getHBOverCurrent ( HalfBridge  hb)
inherited

gets the overcurrent error flag bit for a specific halfbridge

Parameters
hbhalfbridge thats overcurrent flag will be returned
Returns
1 if there HalfBridge was shut down because of an overcurrent 0 otherwise
Here is the call graph for this function:

◆ getHBOpenLoad()

uint8_t Tle94112::getHBOpenLoad ( HalfBridge  hb)
inherited

gets the openload error flag bit for a specific halfbridge

Parameters
hbhalfbridge thats openload flag will be returned
Returns
1 if there HalfBridge detected an open load 0 otherwise
Here is the call graph for this function:

◆ clearErrors()

void Tle94112::clearErrors ( )
inherited

clears all clearable error flags

Here is the call graph for this function:

◆ init()

void Tle94112::init ( void  )
protectedinherited

initializes this object, automatically called by begin()

< initial control register configuration

< status register configuration

< bit masking for all halfbridges

< bit masking for all pwm channels

◆ _configHB()

void Tle94112::_configHB ( uint8_t  hb,
uint8_t  state,
uint8_t  pwm,
uint8_t  activeFW 
)
protectedinherited

sets the output state and the PWM channel for a halfbridge automatically called by the public version of configHB

Parameters
hbhalfbridge which will be configured
statesets the output voltage to high, low or floating
pwmselects a PWM channel for PWM output
activeFW1 for active freewheeling 0 for passive freewheeling (default)
Here is the call graph for this function:

◆ _configPWM()

void Tle94112::_configPWM ( uint8_t  pwm,
uint8_t  freq,
uint8_t  dutyCycle 
)
protectedinherited

sets the frequency and duty cycle for a PWM channel automatically called by the public version of configPWM

Parameters
pwmPWM channel which will be configured
freqselects the PWM output frequency
dutyCyclea value from 0 to 255 which sets the dutyCycle
Here is the call graph for this function:

◆ _getHBOverCurrent()

uint8_t Tle94112::_getHBOverCurrent ( uint8_t  hb)
protectedinherited

gets the overcurrent error flag bit for a specific halfbridge automatically called by the public version of getHBOverCurrent

Parameters
hbhalfbridge thats overcurrent flag will be returned
Returns
1 if there HalfBridge was shut down because of an overcurrent 0 otherwise
Here is the call graph for this function:

◆ _getHBOpenLoad()

uint8_t Tle94112::_getHBOpenLoad ( uint8_t  hb)
protectedinherited

gets the openload error flag bit for a specific halfbridge automatically called by the public version of getHBOpenLoad

Parameters
hbhalfbridge thats openload flag will be returned
Returns
1 if there HalfBridge detected an open load 0 otherwise
Here is the call graph for this function:

◆ writeReg()

void Tle94112::writeReg ( uint8_t  reg,
uint8_t  mask,
uint8_t  shift,
uint8_t  data 
)
protectedinherited

writes data bits to a control register of the TLE94112

Parameters
regcontrol register number(mapping array index / CtrlRegisters constant) of the register
maskmask for the bits that have to be written
shiftdata will be shifted left by this amount before masking. This is for the bit alignment of data
datathe data byte that has to be written. It will be shifted and masked before
See also
CtrlRegisters
TLE94112_NUM_CTRL_REGS
mCtrlRegAddresses
mCtrlRegData
Here is the call graph for this function:

◆ readStatusReg() [1/2]

uint8_t Tle94112::readStatusReg ( uint8_t  reg)
protectedinherited

reads one byte from a status register of the TLE94112

Parameters
regstatus register number(mapping array index / StatusRegisters constant) of the register
Returns
data byte that has been read
See also
StatusRegisters
TLE94112_NUM_STATUS_REGS
mStatusRegAddresses

◆ readStatusReg() [2/2]

uint8_t Tle94112::readStatusReg ( uint8_t  reg,
uint8_t  mask,
uint8_t  shift 
)
protectedinherited

reads some bits from a status register of the TLE94112

Parameters
regstatus register number(mapping array index / StatusRegisters constant) of the register
maskmask for the bits that have to be read
shiftdata will be shifted right by this amount after masking. This is for the bit alignment of data
Returns
data bits that have been read (after masking and shifting)
See also
StatusRegisters
TLE94112_NUM_STATUS_REGS
mStatusRegAddresses
Here is the call graph for this function:

◆ clearStatusReg()

void Tle94112::clearStatusReg ( uint8_t  reg)
protectedinherited

clears a status register by writing 0x00 to it

Parameters
regstatus register number(mapping array index / StatusRegisters constant) of the register
See also
StatusRegisters
TLE94112_NUM_STATUS_REGS
mStatusRegAddresses
Here is the call graph for this function:

Field Documentation

◆ TLE_STATUS_OK

const uint8_t Tle94112::TLE_STATUS_OK = 0U
staticinherited

Reference value of Status Register.

◆ sBus

SPIC* Tle94112::sBus
inherited

◆ cs

GPIOC* Tle94112::cs
inherited

◆ en

GPIOC* Tle94112::en
inherited

◆ timer

Timer* Tle94112::timer
inherited

◆ mHalfBridges

HalfBridge_t Tle94112::mHalfBridges[TLE94112_NUM_HB]
protectedinherited

array of register locations for halfbridges

◆ mPwmChannels

PWMchannel_t Tle94112::mPwmChannels[TLE94112_NUM_PWM]
protectedinherited

array of register locations for PWM channels

◆ mCtrlRegAddresses

uint8_t Tle94112::mCtrlRegAddresses[TLE94112_NUM_CTRL_REGS]
protectedinherited

mapping array for control register addresses

◆ mCtrlRegData

uint8_t Tle94112::mCtrlRegData[TLE94112_NUM_CTRL_REGS]
protectedinherited

mirror array for control register data

◆ mStatusRegAddresses

uint8_t Tle94112::mStatusRegAddresses[TLE94112_NUM_STATUS_REGS]
protectedinherited

mapping array for status register addresses

◆ mEnabled

uint8_t Tle94112::mEnabled
protectedinherited