![]() |
![]() |
|
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 |