![]() |
![]() |
MSPM0G3519HallSensoredTrapMotorControlLibrary
1.0
|
Data Structures | |
struct | DRV8316_Instance |
Defines DRV8316 instance. More... | |
Macros | |
#define | DRV8316_ADDR_MASK (0x7E00) |
Defines the address mask. | |
#define | DRV8316_DATA_MASK (0x00FF) |
Defines the data mask. | |
#define | DRV8316_DATA_TRANSMIT_TO_READ (0x00) |
Defines the data transmitted while reading a register. | |
#define | DRV8316_INITIAL_PARITY (0x00) |
Defines the initial parity of command word. | |
#define | DRV8316_PARITY_CHECK (0x01) |
Defines the parity checking bit. | |
#define | DRV8316_RIGHT_SHIFT_REGISTER (1) |
Defines the number of bits right shifted. | |
#define | DRV8316_PARITY_BIT_POSITION (8) |
Defines the position of the parity in command word. | |
#define | DRV8316_ADDR_BIT_POSITION (9) |
Defines the position of the parity in command word. | |
#define | DRV8316_SPICMD_BIT_POSITION (15) |
Defines the position of the parity in command word. | |
#define | DRV8316_CLEAR_BIT_MASK (0x01) |
Defines the claer bit mask. | |
#define | DRV8316_MAXIMUM_RESET_TIME (40) |
Defines the time to clear the nSLEEP pin to reset faults. | |
#define | DRV8316_MAXIMUM_WAKEUP_TIME (2000) |
Defines the time to wakeup the drv after reset. | |
#define | DRV8316_VOLTAGE_CONV_CONST _IQ20(13.417) |
Defines voltage conversion constant. | |
#define | DRV8316_CSA_REF_VOLTAGE (3000) |
Defines CSA reference voltage. | |
#define | DRV8316_CSAGAIN_0P15VA_IQ _IQ20(0.15) |
Defines CSA gains 0.15 in IQ20. | |
#define | DRV8316_CSAGAIN_0P3VA_IQ _IQ20(0.3) |
Defines CSA gains 0.3 in IQ20. | |
#define | DRV8316_CSAGAIN_0P6VA_IQ _IQ20(0.6) |
Defines CSA gains 0.6 in IQ20. | |
#define | DRV8316_CSAGAIN_1P2VA_IQ _IQ20(1.2) |
Defines CSA gains 1.2 in IQ20. | |
Functions | |
__STATIC_INLINE void | DRV8316_setDrvoff (DRV8316_Instance *drvHandle, DRV8316_DRVOFF_PIN_STAT value) |
set drvoff More... | |
__STATIC_INLINE void | DRV8316_setnSleep (DRV8316_Instance *drvHandle, DRV8316_DRV_NSLEEP_STAT value) |
set nSleep More... | |
void | DRV8316_init (DRV8316_Instance *drvHandle) |
initialize the drv8316 module More... | |
uint16_t | DRV8316_SPIWrite (DRV8316_Instance *drvHandle, DRV8316_ADDR addr, uint8_t data) |
write data to spi More... | |
uint16_t | DRV8316_SPIRead (DRV8316_Instance *drvHandle, DRV8316_ADDR addr) |
write data to spi More... | |
void | DRV8316_enable (DRV8316_Instance *drvHandle) |
Enable DRV. More... | |
void | DRV8316_updateCTRLRegs (DRV8316_Instance *drvHandle, DRV8316_ADDR regAddr, uint16_t value, uint16_t mask) |
update the drv registers More... | |
void | DRV8316_updateCSAScaleFactor (DRV8316_Instance *drvHandle, DRV8316_CSAGAIN csa) |
updates the current gain scale factor More... | |
_iq20 | DRV8316_getVoltage (HAL_ADC_CHAN chan) |
Get voltage from adc channel. More... | |
_iq20 | DRV8316_getCurrent (HAL_ADC_CHAN chan, DRV8316_Instance *drvHandle, _iq20 vRef) |
Get current from adc channel. More... | |
void | DRV8316_ADCVRefSel (HAL_ADC_VREF adcRef, HAL_ADC_CHAN chan, HAL_ADC_INT_VREF internalVRef, uint16_t externalVRef) |
updates the adc voltage reference More... | |
__STATIC_INLINE void | DRV8316_updateSPICsagain (DRV8316_Instance *drvHandle, DRV8316_CSAGAIN csaGain) |
Update the SPI CSA gain register. More... | |
__STATIC_INLINE void | DRV8316_unlockRegs (DRV8316_Instance *drvHandle) |
unlock all registers More... | |
__STATIC_INLINE void | DRV8316_clearfaultBit (DRV8316_Instance *drvHandle) |
clear the status registers More... | |
__STATIC_INLINE _iq20 | DRV8316_getcsaVref (uint16_t vRef) |
get Current reference in IQ20 More... | |
enum DRV8316_CTRL01_MASK |
enum DRV8316_CTRL02_MASK |
enum DRV8316_CTRL03_MASK |
enum DRV8316_CTRL04_MASK |
enum DRV8316_CTRL05_MASK |
enum DRV8316_CTRL06_MASK |
enum DRV8316_CTRL10_MASK |
enum DRV8316_CTRL01 |
enum DRV8316_CTRL02 |
enum DRV8316_CTRL03 |
enum DRV8316_CTRL04 |
enum DRV8316_CTRL05 |
enum DRV8316_CTRL06 |
enum DRV8316_CTRL10 |
enum DRV8316_SPI |
enum DRV8316_ADDR |
enum DRV8316_CSAGAIN |
__STATIC_INLINE void DRV8316_setDrvoff | ( | DRV8316_Instance * | drvHandle, |
DRV8316_DRVOFF_PIN_STAT | value | ||
) |
set drvoff
[in] | drvHandle | The drv instance |
[in] | value | drvoff value |
References DRV8316_DRVOFF_PIN_HIGH, DRV8316_DRVOFF_PIN_LOW, DRV8316_Instance::drvoff, HAL_GPIO_PIN_HIGH, HAL_GPIO_PIN_LOW, and HAL_writeGPIOPin().
Referenced by DRV8316_enable().
__STATIC_INLINE void DRV8316_setnSleep | ( | DRV8316_Instance * | drvHandle, |
DRV8316_DRV_NSLEEP_STAT | value | ||
) |
set nSleep
[in] | drvHandle | The drv instance |
[in] | value | nSleep value |
References DRV8316_ADCVRefSel(), DRV8316_DRV_NSLEEP_AWAKE, DRV8316_DRV_NSLEEP_SLEEP, DRV8316_enable(), DRV8316_getCurrent(), DRV8316_getVoltage(), DRV8316_init(), DRV8316_MAXIMUM_WAKEUP_TIME, DRV8316_SPIRead(), DRV8316_SPIWrite(), DRV8316_updateCSAScaleFactor(), DRV8316_updateCTRLRegs(), HAL_delayMicroSeconds(), HAL_GPIO_PIN_HIGH, HAL_GPIO_PIN_LOW, HAL_writeGPIOPin(), and DRV8316_Instance::nsleep.
Referenced by DRV8316_enable().
void DRV8316_init | ( | DRV8316_Instance * | drvHandle | ) |
initialize the drv8316 module
[in] | drvHandle | The drv instance |
References DRV8316_ADDR_BIT_POSITION, DRV8316_INITIAL_PARITY, DRV8316_PARITY_BIT_POSITION, DRV8316_PARITY_CHECK, DRV8316_RIGHT_SHIFT_REGISTER, HAL_enableADCInterrupt(), HAL_readSPI16(), HAL_writeSPI16(), DRV8316_Instance::IsenA, DRV8316_Instance::IsenB, DRV8316_Instance::IsenC, DRV8316_Instance::Vsen, DRV8316_Instance::VsenA, DRV8316_Instance::VsenB, and DRV8316_Instance::VsenC.
Referenced by DRV8316_setnSleep().
uint16_t DRV8316_SPIWrite | ( | DRV8316_Instance * | drvHandle, |
DRV8316_ADDR | addr, | ||
uint8_t | data | ||
) |
write data to spi
[in] | drvHandle | The drv instance |
[in] | addr | SPI register address |
[in] | data | data transmitted |
References DRV8316_SPI_WRITE, DRV8316_Instance::spiChan, and DRV8316_Instance::spiCs.
Referenced by DRV8316_setnSleep(), and DRV8316_updateCTRLRegs().
uint16_t DRV8316_SPIRead | ( | DRV8316_Instance * | drvHandle, |
DRV8316_ADDR | addr | ||
) |
write data to spi
[in] | drvHandle | The drv instance |
[in] | addr | SPI register address |
References DRV8316_SPI_READ, DRV8316_Instance::spiChan, and DRV8316_Instance::spiCs.
Referenced by DRV8316_setnSleep(), and DRV8316_updateCTRLRegs().
void DRV8316_enable | ( | DRV8316_Instance * | drvHandle | ) |
Enable DRV.
[in] | drvHandle | The drv instance |
References DRV8316_clearfaultBit(), DRV8316_DRV_NSLEEP_AWAKE, DRV8316_DRV_NSLEEP_SLEEP, DRV8316_DRVOFF_PIN_LOW, DRV8316_setDrvoff(), DRV8316_setnSleep(), and DRV8316_unlockRegs().
Referenced by DRV8316_setnSleep().
void DRV8316_updateCTRLRegs | ( | DRV8316_Instance * | drvHandle, |
DRV8316_ADDR | regAddr, | ||
uint16_t | value, | ||
uint16_t | mask | ||
) |
update the drv registers
[in] | drvHandle | The drv instance |
[in] | regAddr | The register to be updated |
[in] | value | new value of the bits to be updated |
[in] | mask | mask for the bit to be updated |
References DRV8316_SPIRead(), and DRV8316_SPIWrite().
Referenced by DRV8316_clearfaultBit(), DRV8316_setnSleep(), DRV8316_unlockRegs(), and DRV8316_updateSPICsagain().
void DRV8316_updateCSAScaleFactor | ( | DRV8316_Instance * | drvHandle, |
DRV8316_CSAGAIN | csa | ||
) |
updates the current gain scale factor
[in] | drvHandle | The drv instance |
[in] | csa | DRV8316 CSA gain value |
References DRV8316_Instance::csa_sf, DRV8316_CSAGAIN_0P15VA, DRV8316_CSAGAIN_0P15VA_IQ, DRV8316_CSAGAIN_0P3VA, DRV8316_CSAGAIN_0P3VA_IQ, DRV8316_CSAGAIN_0P6VA, DRV8316_CSAGAIN_0P6VA_IQ, DRV8316_CSAGAIN_1P2VA, and DRV8316_CSAGAIN_1P2VA_IQ.
Referenced by DRV8316_setnSleep().
_iq20 DRV8316_getVoltage | ( | HAL_ADC_CHAN | chan | ) |
Get voltage from adc channel.
[in] | chan | The ADC channel name |
References DRV8316_VOLTAGE_CONV_CONST, and HAL_getIQ20VoltageFromADC().
Referenced by DRV8316_setnSleep().
_iq20 DRV8316_getCurrent | ( | HAL_ADC_CHAN | chan, |
DRV8316_Instance * | drvHandle, | ||
_iq20 | vRef | ||
) |
Get current from adc channel.
[in] | chan | The ADC channel name |
[in] | drvHandle | The drv instance |
[in] | vRef | voltage reference for current |
References DRV8316_Instance::csa_sf, and HAL_getIQ20VoltageFromADC().
Referenced by DRV8316_setnSleep().
void DRV8316_ADCVRefSel | ( | HAL_ADC_VREF | adcRef, |
HAL_ADC_CHAN | chan, | ||
HAL_ADC_INT_VREF | internalVRef, | ||
uint16_t | externalVRef | ||
) |
updates the adc voltage reference
[in] | adcRef | ADC voltage reference |
[in] | chan | ADC channel name |
[in] | internalVRef | Internal reference voltage |
[in] | externalVRef | External reference voltage |
References HAL_ADC_VREF_EXTERNAL, HAL_ADC_VREF_INTERNAL, HAL_ADC_VREF_VDDA, HAL_setADCVRefExternal(), HAL_setADCVRefInternal(), and HAL_setADCVRefVDDA().
Referenced by DRV8316_setnSleep().
__STATIC_INLINE void DRV8316_updateSPICsagain | ( | DRV8316_Instance * | drvHandle, |
DRV8316_CSAGAIN | csaGain | ||
) |
Update the SPI CSA gain register.
[in] | drvHandle | The drv instance |
[in] | csaGain | The CSA gain value |
References DRV8316_ADDR_CTRL_5, DRV8316_CTRL05_MASK_CSA_GAIN, and DRV8316_updateCTRLRegs().
__STATIC_INLINE void DRV8316_unlockRegs | ( | DRV8316_Instance * | drvHandle | ) |
unlock all registers
[in] | drvHandle | The drv instance |
References DRV8316_ADDR_CTRL_1, DRV8316_CTRL01_MASK_REG_LOCK, DRV8316_CTRL01_REG_UNLOCK, and DRV8316_updateCTRLRegs().
Referenced by DRV8316_enable().
__STATIC_INLINE void DRV8316_clearfaultBit | ( | DRV8316_Instance * | drvHandle | ) |
clear the status registers
[in] | drvHandle | The drv instance |
References DRV8316_ADDR_CTRL_2, DRV8316_CTRL02_CLR_FLT, DRV8316_CTRL02_MASK_CLR_FLT, and DRV8316_updateCTRLRegs().
Referenced by DRV8316_enable().
__STATIC_INLINE _iq20 DRV8316_getcsaVref | ( | uint16_t | vRef | ) |
get Current reference in IQ20
[in] | vRef | CSA reference voltage in milli volts |