Data Structures | |
class | Tle94112 |
represents a basic TLE94112 More... | |
Macros | |
#define | TLE94112_NUM_HB 13 |
the number of halfbridges on a TLE94112 (including no halfbridge) More... | |
#define | TLE94112_NUM_PWM 4 |
the number of pwm modes for a halfbridge (including no pwm) More... | |
#define | TLE94112_NUM_CTRL_REGS 12 |
the number of control registers in a TLE94112 More... | |
#define | TLE94112_NUM_STATUS_REGS 7 |
the number of status registers in a TLE94112 More... | |
Error codes | |
enum | tle94112::Error_t { tle94112::OK = 0 , tle94112::INTF_ERROR = -1 , tle94112::CONF_ERROR = -2 , tle94112::READ_ERROR = -3 , tle94112::WRITE_ERROR = -4 } |
class Tle94112 |
represents a basic TLE94112
This class provides a simple API for connecting and controlling motors. Each motor is assigned to a Tle94112 which acts as output driver. Calls to Tle94112Motor instances are mapped to calls to Tle94112. Therefore, this class does not bring new features, it does only provide further abstraction.
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 | |
Tle94112 () | |
standard constructor with default pin assignment More... | |
Tle94112 (SPIC *sBus, GPIOC *cs, GPIOC *en, Timer *timer) | |
constructor with pal instances More... | |
~Tle94112 () | |
standard destructor switches shield off 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 | |
SPIC * | sBus |
GPIOC * | cs |
GPIOC * | en |
Timer * | timer |
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 |
enum Tle94112::HalfBridge |
enum Tle94112::PWMChannel |
enum Tle94112::HBState |
enum Tle94112::HBOCState |
enum Tle94112::PWMFreq |
enum Tle94112::DiagFlag |
|
protected |
|
protected |
Tle94112::Tle94112 | ( | void | ) |
standard constructor with default pin assignment
constructor with pal instances
Tle94112::~Tle94112 | ( | ) |
standard destructor switches shield off
void Tle94112::begin | ( | void | ) |
enables and initializes the TLE94112
void Tle94112::end | ( | void | ) |
deactivates all outputs and disables the TLE94112
void Tle94112::configHB | ( | HalfBridge | hb, |
HBState | state, | ||
PWMChannel | pwm | ||
) |
sets the output state and the PWM channel for a halfbridge (only for passive freewheeling)
hb | halfbridge which will be configured |
state | sets the output voltage to high, low or floating |
pwm | selects a PWM channel for PWM output |
void Tle94112::configHB | ( | HalfBridge | hb, |
HBState | state, | ||
PWMChannel | pwm, | ||
uint8_t | activeFW | ||
) |
sets the output state and the PWM channel for a halfbridge (allows active freewheeling)
hb | halfbridge which will be configured |
state | sets the output voltage to high, low or floating |
pwm | selects a PWM channel for PWM output |
activeFW | 1 for active freewheeling 0 for passive freewheeling (default) |
void Tle94112::configPWM | ( | PWMChannel | pwm, |
PWMFreq | freq, | ||
uint8_t | dutyCycle | ||
) |
sets the frequency and duty cycle for a PWM channel
pwm | PWM channel which will be configured |
freq | selects the PWM output frequency |
dutyCycle | a value from 0 to 255 which sets the dutyCycle |
uint8_t Tle94112::setLedMode | ( | HalfBridge | hb, |
uint8_t | active | ||
) |
sets LED mode on compatible half bridges (half bridge 1 or 2 of TLE94112)
hb | compatible half bridge to set LED mode |
active | LED mode active (1) or inactive (0) |
uint8_t Tle94112::getSysDiagnosis | ( | ) |
returns a diagnosis value for error detection
uint8_t Tle94112::getSysDiagnosis | ( | DiagFlag | mask | ) |
shows if errors of a specific type have occurred
mask | mask to filter for a specific flag |
uint8_t Tle94112::getSysDiagnosis | ( | uint8_t | mask | ) |
shows if errors of a specific type have occurred
mask | mask to filter for one or more specific flags this can be a disjunction of DiagFlag values |
uint8_t Tle94112::getHBOverCurrent | ( | HalfBridge | hb | ) |
gets the overcurrent error flag bit for a specific halfbridge
hb | halfbridge thats overcurrent flag will be returned |
uint8_t Tle94112::getHBOpenLoad | ( | HalfBridge | hb | ) |
gets the openload error flag bit for a specific halfbridge
hb | halfbridge thats openload flag will be returned |
void Tle94112::clearErrors | ( | ) |
clears all clearable error flags
|
protected |
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
|
protected |
sets the output state and the PWM channel for a halfbridge automatically called by the public version of configHB
hb | halfbridge which will be configured |
state | sets the output voltage to high, low or floating |
pwm | selects a PWM channel for PWM output |
activeFW | 1 for active freewheeling 0 for passive freewheeling (default) |
|
protected |
sets the frequency and duty cycle for a PWM channel automatically called by the public version of configPWM
pwm | PWM channel which will be configured |
freq | selects the PWM output frequency |
dutyCycle | a value from 0 to 255 which sets the dutyCycle |
|
protected |
gets the overcurrent error flag bit for a specific halfbridge automatically called by the public version of getHBOverCurrent
hb | halfbridge thats overcurrent flag will be returned |
|
protected |
gets the openload error flag bit for a specific halfbridge automatically called by the public version of getHBOpenLoad
hb | halfbridge thats openload flag will be returned |
|
protected |
writes data bits to a control register of the TLE94112
reg | control register number(mapping array index / CtrlRegisters constant) of the register |
mask | mask for the bits that have to be written |
shift | data will be shifted left by this amount before masking. This is for the bit alignment of data |
data | the data byte that has to be written. It will be shifted and masked before |
|
protected |
reads one byte from a status register of the TLE94112
reg | status register number(mapping array index / StatusRegisters constant) of the register |
|
protected |
reads some bits from a status register of the TLE94112
reg | status register number(mapping array index / StatusRegisters constant) of the register |
mask | mask for the bits that have to be read |
shift | data will be shifted right by this amount after masking. This is for the bit alignment of data |
|
protected |
clears a status register by writing 0x00 to it
reg | status register number(mapping array index / StatusRegisters constant) of the register |
|
static |
Reference value of Status Register.
SPIC* Tle94112::sBus |
GPIOC* Tle94112::cs |
GPIOC* Tle94112::en |
Timer* Tle94112::timer |
|
protected |
array of register locations for halfbridges
|
protected |
array of register locations for PWM channels
|
protected |
mapping array for control register addresses
|
protected |
mirror array for control register data
|
protected |
mapping array for status register addresses
|
protected |
#define TLE94112_NUM_HB 13 |
the number of halfbridges on a TLE94112 (including no halfbridge)
#define TLE94112_NUM_PWM 4 |
the number of pwm modes for a halfbridge (including no pwm)
#define TLE94112_NUM_CTRL_REGS 12 |
the number of control registers in a TLE94112
#define TLE94112_NUM_STATUS_REGS 7 |
the number of status registers in a TLE94112
enum tle94112::Error_t |