64 #define DRV8316_ADDR_MASK (0x7E00) 67 #define DRV8316_DATA_MASK (0x00FF) 70 #define DRV8316_DATA_TRANSMIT_TO_READ (0x00) 73 #define DRV8316_INITIAL_PARITY (0x00) 76 #define DRV8316_PARITY_CHECK (0x01) 79 #define DRV8316_RIGHT_SHIFT_REGISTER (1) 82 #define DRV8316_PARITY_BIT_POSITION (8) 85 #define DRV8316_ADDR_BIT_POSITION (9) 88 #define DRV8316_SPICMD_BIT_POSITION (15) 91 #define DRV8316_CLEAR_BIT_MASK (0x01) 94 #define DRV8316_MAXIMUM_RESET_TIME (40) 97 #define DRV8316_MAXIMUM_WAKEUP_TIME (2000) 100 #define DRV8316_VOLTAGE_CONV_CONST _IQ20(13.417) 103 #define DRV8316_CSA_REF_VOLTAGE (3000) 106 #define DRV8316_CSAGAIN_0P15VA_IQ _IQ20(0.15) 109 #define DRV8316_CSAGAIN_0P3VA_IQ _IQ20(0.3) 112 #define DRV8316_CSAGAIN_0P6VA_IQ _IQ20(0.6) 115 #define DRV8316_CSAGAIN_1P2VA_IQ _IQ20(1.2) 613 uint16_t value, uint16_t mask);
696 _iq13 temp = _IQ13div(_IQ13(vRef),_IQ13(1000));
697 return _IQ13toIQ20(temp);
set over current protection deglitch time to 0.6us
Definition: drv8316.h:284
DRV8316 SPI write command.
Definition: drv8316.h:396
_iq20 csa_sf
Definition: drv8316.h:481
Define NSLEEP PIN HIGH.
Definition: drv8316.h:452
Defines the mask for buck voltage selection bit.
Definition: drv8316.h:189
Defines the mask for driver delay compensation enable bit.
Definition: drv8316.h:202
__STATIC_INLINE void DRV8316_setnSleep(DRV8316_Instance *drvHandle, DRV8316_DRV_NSLEEP_STAT value)
set nSleep
Definition: drv8316.h:551
Delay Target 2.8us.
Definition: drv8316.h:379
Define DRV8316 CSA GAIN 1.2 Setting.
Definition: drv8316.h:434
Define DRV8316 CSA GAIN 0.3 Setting.
Definition: drv8316.h:430
Defines the mask for Current Limit Recirculation Settings bit.
Definition: drv8316.h:180
HAL_FAULT_INPUT
Definition: hal.h:159
Define NSLEEP PIN LOW.
Definition: drv8316.h:450
Delay Target 2.2us.
Definition: drv8316.h:373
Defines the mask for delay target bit.
Definition: drv8316.h:200
set CSAGAIN to 0.3V/A
Definition: drv8316.h:305
set over current protection level to 24A
Definition: drv8316.h:276
HAL_ADC_CHAN IsenA
Definition: drv8316.h:505
Defines the mask for over temp warning bit.
Definition: drv8316.h:144
Delay Target 2.6us.
Definition: drv8316.h:377
enable Active synchronous rectification
Definition: drv8316.h:313
set buck voltage selection to 5.0V
Definition: drv8316.h:334
void DRV8316_ADCVRefSel(HAL_ADC_VREF adcRef, HAL_ADC_CHAN chan, HAL_ADC_INT_VREF internalVRef, uint16_t externalVRef)
updates the adc voltage reference
Definition: drv8316.c:209
DRV8316_CTRL05_MASK
Definition: drv8316.h:171
set braking type to brake mode
Definition: drv8316.h:319
Defines the mask for over voltage protection level setting bit.
Definition: drv8316.h:148
DRV8316_SPI
Definition: drv8316.h:391
Defines the mask for over current protection retry time setting bit.
Definition: drv8316.h:161
Address of Control Register 10.
Definition: drv8316.h:421
DRV8316_CTRL10
Definition: drv8316.h:350
enable DRV
Definition: drv8316.h:294
Delay Target 3.2us.
Definition: drv8316.h:383
DRV8316_CTRL04
Definition: drv8316.h:263
set over current fault to latched
Definition: drv8316.h:266
set over current protection deglitch time to 0.2us
Definition: drv8316.h:282
Disable over voltage protection.
Definition: drv8316.h:249
__STATIC_INLINE void DRV8316_updateSPICsagain(DRV8316_Instance *drvHandle, DRV8316_CSAGAIN csaGain)
Update the SPI CSA gain register.
Definition: drv8316.h:656
Address of Control Register 3.
Definition: drv8316.h:413
__STATIC_INLINE _iq20 DRV8316_getcsaVref(uint16_t vRef)
get Current reference in IQ20
Definition: drv8316.h:694
HAL_SPI_CHAN spiChan
Definition: drv8316.h:473
__STATIC_INLINE void DRV8316_setDrvoff(DRV8316_Instance *drvHandle, DRV8316_DRVOFF_PIN_STAT value)
set drvoff
Definition: drv8316.h:529
Defines the mask for drvoff bit.
Definition: drv8316.h:167
DRV8316_DRVOFF_PIN_STAT
Definition: drv8316.h:438
DRV8316_CTRL02_MASK
Definition: drv8316.h:128
Defines the mask for over voltage protection enable bit.
Definition: drv8316.h:146
Defines the mask for buck power sequence disable bit.
Definition: drv8316.h:193
set 6x pwm mode
Definition: drv8316.h:220
Hall Sensored Trap Motor Control Library HAL Module.
Delay Target 2.0us.
Definition: drv8316.h:371
HAL_ADC_VREF
Definition: hal.h:190
set 3x pwm mode with current limit
Definition: drv8316.h:226
disable driver delay compensation
Definition: drv8316.h:385
set over current protection level to 16A
Definition: drv8316.h:274
Defines the mask for over current protection pwm cycle operation bit.
Definition: drv8316.h:165
set buck current limit to 150mA
Definition: drv8316.h:342
PMW Freq at 100% duty is set to 40KHz.
Definition: drv8316.h:259
void DRV8316_updateCTRLRegs(DRV8316_Instance *drvHandle, DRV8316_ADDR regAddr, uint16_t value, uint16_t mask)
update the drv registers
Definition: drv8316.c:137
set slew rate to 50V/us
Definition: drv8316.h:230
#define DRV8316_MAXIMUM_WAKEUP_TIME
Defines the time to wakeup the drv after reset.
Definition: drv8316.h:97
Define DRVOFF PIN LOW.
Definition: drv8316.h:441
set 3x pwm mode
Definition: drv8316.h:224
GPIO set to high.
Definition: hal.h:84
Delay Target 0.4us.
Definition: drv8316.h:355
HAL_ADC_CHAN
Definition: hal.h:88
Defines the mask for frequency selection bit.
Definition: drv8316.h:150
HAL_GPIO_IN
Definition: hal.h:109
_iq20 csaVRef
Definition: drv8316.h:485
HAL_SPI_CS
Definition: hal.h:176
void DRV8316_init(DRV8316_Instance *drvHandle)
initialize the drv8316 module
Definition: drv8316.c:48
HAL_FAULT_INPUT faultIn
Definition: drv8316.h:517
Delay Target 2.4us.
Definition: drv8316.h:375
Delay Target 1.6us.
Definition: drv8316.h:367
Defines the mask for SDO mode selection bit.
Definition: drv8316.h:137
DRV8316_CTRL03_MASK
Definition: drv8316.h:141
Define DRV8316 CSA GAIN 0.15 Setting.
Definition: drv8316.h:428
set SDO in open drain mode
Definition: drv8316.h:236
Delay Target 1.4us.
Definition: drv8316.h:365
Delay Target 1.2us.
Definition: drv8316.h:363
set over current protection retry time to 500ms
Definition: drv8316.h:280
set over current protection pwm cycle operation dsiable
Definition: drv8316.h:290
Delay Target 3.0us.
Definition: drv8316.h:381
HAL_ADC_CHAN VsenB
Definition: drv8316.h:497
over voltage protection limit set to 34V
Definition: drv8316.h:253
Define DRVOFF PIN HIGH.
Definition: drv8316.h:443
Address of Control Register 5.
Definition: drv8316.h:417
enable driver delay compensation
Definition: drv8316.h:387
set over current protection deglitch time to 1.25us
Definition: drv8316.h:286
HAL_ADC_CHAN IsenB
Definition: drv8316.h:509
HAL_ADC_CHAN VsenC
Definition: drv8316.h:501
__STATIC_INLINE void DRV8316_unlockRegs(DRV8316_Instance *drvHandle)
unlock all registers
Definition: drv8316.h:669
DRV8316_CTRL02
Definition: drv8316.h:215
DRV8316_DRV_NSLEEP_STAT
Definition: drv8316.h:447
disable Active asynchronous rectification
Definition: drv8316.h:315
Address of Control Register 1.
Definition: drv8316.h:409
Delay Target 0.0us.
Definition: drv8316.h:353
Delay Target 1.0us.
Definition: drv8316.h:361
Defines the mask for CSA gain setting bit.
Definition: drv8316.h:174
HAL_ADC_INT_VREF
Definition: hal.h:201
set CSAGAIN to 0.15V/A
Definition: drv8316.h:303
DRV8316_CTRL06_MASK
Definition: drv8316.h:184
HAL_SPI_CS spiCs
Definition: drv8316.h:477
Delay Target 0.8us.
Definition: drv8316.h:359
HAL_GPIO_IN nfault
Definition: drv8316.h:469
enable Active asynchronous rectification
Definition: drv8316.h:317
report over current fault
Definition: drv8316.h:270
Defines the mask for clear fault bit.
Definition: drv8316.h:131
Defines the mask for Active Asynshronous Rectification Enable bit.
Definition: drv8316.h:178
set buck voltage selection to 3.3V
Definition: drv8316.h:332
Enable over temperature warning.
Definition: drv8316.h:247
Address of Control Register 4.
Definition: drv8316.h:415
HAL_SPI_CHAN
Definition: hal.h:168
set buck voltage selection to 4.0V
Definition: drv8316.h:336
set slew rate to 200V/us
Definition: drv8316.h:234
DRV8316_CTRL10_MASK
Definition: drv8316.h:197
Delay Target 1.8us.
Definition: drv8316.h:369
__STATIC_INLINE void DRV8316_clearfaultBit(DRV8316_Instance *drvHandle)
clear the status registers
Definition: drv8316.h:681
set slew rate to 25V/us
Definition: drv8316.h:228
unlock all registers
Definition: drv8316.h:209
disable over current fault
Definition: drv8316.h:272
DRV8316_CTRL04_MASK
Definition: drv8316.h:154
enable buck power sequencing
Definition: drv8316.h:344
set over current protection deglitch time to 1.6us
Definition: drv8316.h:288
set braking type to coast mode
Definition: drv8316.h:321
set 6x pwm mode with current limit
Definition: drv8316.h:222
DRV8316_CTRL05
Definition: drv8316.h:300
GPIO set to low.
Definition: hal.h:82
DRV8316_CTRL06
Definition: drv8316.h:325
Defines the mask for pwm mode selection bit.
Definition: drv8316.h:133
void DRV8316_enable(DRV8316_Instance *drvHandle)
Enable DRV.
Definition: drv8316.c:117
PMW Freq at 100% duty is set to 20KHz.
Definition: drv8316.h:257
HAL_ADC_CHAN Vsen
Definition: drv8316.h:489
HAL_GPIO_OUT drvoff
Definition: drv8316.h:465
set buck voltage selection to 5.7V
Definition: drv8316.h:338
set SDO in push pull mode
Definition: drv8316.h:238
enter DRV into low power mode
Definition: drv8316.h:296
over voltage protection limit set to 22V
Definition: drv8316.h:255
Address of Control Register 2.
Definition: drv8316.h:411
Defines the mask for over current protection level setting bit.
Definition: drv8316.h:159
disable buck power sequencing
Definition: drv8316.h:346
set slew rate to 125V/us
Definition: drv8316.h:232
Defines DRV8316 instance.
Definition: drv8316.h:456
Defines the mask for clear fault bit.
Definition: drv8316.h:124
uint16_t DRV8316_SPIRead(DRV8316_Instance *drvHandle, DRV8316_ADDR addr)
write data to spi
Definition: drv8316.c:106
lock all registers
Definition: drv8316.h:211
HAL_GPIO_OUT nsleep
Definition: drv8316.h:461
disable buck regulator
Definition: drv8316.h:330
Defines the mask for buck current limit setting bit.
Definition: drv8316.h:191
disable Active synchronous rectification
Definition: drv8316.h:311
clear the latched faults
Definition: drv8316.h:218
DRV8316_CSAGAIN
Definition: drv8316.h:425
Address of Control Register 6.
Definition: drv8316.h:419
set over current fault to automatic retry
Definition: drv8316.h:268
Enable over voltage protection.
Definition: drv8316.h:251
Defines the mask for slew rate selection bit.
Definition: drv8316.h:135
Defines the mask for over current protection deglitch time setting bit.
Definition: drv8316.h:163
set CSAGAIN to 0.6V/A
Definition: drv8316.h:307
Define DRV8316 CSA GAIN 0.6 Setting.
Definition: drv8316.h:432
set over current protection pwm cycle operation enable
Definition: drv8316.h:292
Defines the mask for buck disable bit.
Definition: drv8316.h:187
uint16_t DRV8316_SPIWrite(DRV8316_Instance *drvHandle, DRV8316_ADDR addr, uint8_t data)
write data to spi
Definition: drv8316.c:94
DRV8316_ADDR
Definition: drv8316.h:400
Address of Static Register 0.
Definition: drv8316.h:403
Defines the mask for Active Synchronous Rectification Enable bit.
Definition: drv8316.h:176
Address of Static Register 2.
Definition: drv8316.h:407
_iq20 DRV8316_getCurrent(HAL_ADC_CHAN chan, DRV8316_Instance *drvHandle, _iq20 vRef)
Get current from adc channel.
Definition: drv8316.c:194
DRV8316_CTRL01_MASK
Definition: drv8316.h:121
enable buck regulator
Definition: drv8316.h:328
set over current protection retry time to 5ms
Definition: drv8316.h:278
Delay Target 0.6us.
Definition: drv8316.h:357
Defines the mask for over current protection mode selection bit.
Definition: drv8316.h:157
void DRV8316_updateCSAScaleFactor(DRV8316_Instance *drvHandle, DRV8316_CSAGAIN csa)
updates the current gain scale factor
Definition: drv8316.c:151
HAL_ADC_CHAN IsenC
Definition: drv8316.h:513
HAL_ADC_CHAN VsenA
Definition: drv8316.h:493
Address of Static Register 1.
Definition: drv8316.h:405
DRV8316 SPI read command.
Definition: drv8316.h:394
HAL_GPIO_OUT
Definition: hal.h:124
set CSAGAIN to 1.2V/A
Definition: drv8316.h:309
void HAL_writeGPIOPin(HAL_GPIO_OUT pin, HAL_GPIO_STATE value)
Write to GPIOpin.
Definition: hal.c:193
__STATIC_INLINE void HAL_delayMicroSeconds(uint32_t microSeconds)
Delays for specific time in microseconds.
Definition: hal.h:487
DRV8316_CTRL01
Definition: drv8316.h:206
Disable over temperature warning.
Definition: drv8316.h:245
set buck current limit to 600mA
Definition: drv8316.h:340
_iq20 DRV8316_getVoltage(HAL_ADC_CHAN chan)
Get voltage from adc channel.
Definition: drv8316.c:181
DRV8316_CTRL03
Definition: drv8316.h:242