72 #define DRV8301_ADDR_MASK (0x7800)
77 #define DRV8301_DATA_MASK (0x07FF)
82 #define DRV8301_RW_MASK (0x8000)
87 #define DRV8301_FAULT_TYPE_MASK (0x07FF)
92 #define DRV8301_STATUS1_FETLC_OC_BITS (1 << 0)
96 #define DRV8301_STATUS1_FETHC_OC_BITS (1 << 1)
100 #define DRV8301_STATUS1_FETLB_OC_BITS (1 << 2)
104 #define DRV8301_STATUS1_FETHB_OC_BITS (1 << 3)
108 #define DRV8301_STATUS1_FETLA_OC_BITS (1 << 4)
112 #define DRV8301_STATUS1_FETHA_OC_BITS (1 << 5)
116 #define DRV8301_STATUS1_OTW_BITS (1 << 6)
120 #define DRV8301_STATUS1_OTSD_BITS (1 << 7)
124 #define DRV8301_STATUS1_PVDD_UV_BITS (1 << 8)
128 #define DRV8301_STATUS1_GVDD_UV_BITS (1 << 9)
132 #define DRV8301_STATUS1_FAULT_BITS (1 << 10)
137 #define DRV8301_STATUS2_ID_BITS (15 << 0)
141 #define DRV8301_STATUS2_GVDD_OV_BITS (1 << 7)
146 #define DRV8301_CTRL1_GATE_CURRENT_BITS (3 << 0)
150 #define DRV8301_CTRL1_GATE_RESET_BITS (1 << 2)
154 #define DRV8301_CTRL1_PWM_MODE_BITS (1 << 3)
158 #define DRV8301_CTRL1_OC_MODE_BITS (3 << 4)
162 #define DRV8301_CTRL1_OC_ADJ_SET_BITS (31 << 6)
167 #define DRV8301_CTRL2_OCTW_SET_BITS (3 << 0)
171 #define DRV8301_CTRL2_GAIN_BITS (3 << 2)
175 #define DRV8301_CTRL2_DC_CAL_1_BITS (1 << 4)
179 #define DRV8301_CTRL2_DC_CAL_2_BITS (1 << 5)
183 #define DRV8301_CTRL2_OC_TOFF_BITS (1 << 6)
544 extern DRV8301_Handle
DRV8301_init(
void *pMemory,
const size_t numBytes);
711 #endif // end of _DRV8301_H_ definition
Shunt amplifier number 1.
DRV8301_OcOffTimeMode_e OC_TOFF
DRV8301_FaultType_e DRV8301_getFaultType(DRV8301_Handle handle)
Gets the fault type.
FET High side, Phase C Over Current fault.
Defines the serial peripheral interface (SPI) object.
void DRV8301_setPwmMode(DRV8301_Handle handle, const DRV8301_PwmMode_e mode)
Sets the PWM mode.
DRV8301_DcCalMode_e
Enumeration for the DC calibration modes.
bool enableTimeOut
the timeout flag for drv8301 enable
static void DRV8301_resetEnableTimeout(DRV8301_Handle handle)
Resets the enable timeout flag.
void DRV8301_readData(DRV8301_Handle handle, DRV_SPI_8301_Vars_t *Spi_8301_Vars)
DRV8301_ShuntAmpNumber_e
Enumeration for the shunt amplifier number.
DRV_SPI_8301_CTRL1_t_ Ctrl_Reg_1
void DRV8301_setSpiHandle(DRV8301_Handle handle, SPI_Handle spiHandle)
Sets the SPI handle in the DRV8301.
DRV8301_PeakCurrent_e DRV8301_getPeakCurrent(DRV8301_Handle handle)
Gets the peak current value.
uint16_t DRV8301_Word_t
Defines the DRV8301 Word type.
Shunt amplifier 2 disconnected from load and input pins are shorted.
void DRV8301_setGpioNumber(DRV8301_Handle handle, GPIO_Number_e gpioNumber)
Sets the GPIO number in the DRV8301.
Defines the DRV8301 object.
DRV8301_DcCalMode_e DC_CAL_CH1p2
Shunt amplifier 1 connected to load via input pins.
DRV8301_VdsLevel_e OC_ADJ_SET
struct _DRV_SPI_8301_Stat1_t_ DRV_SPI_8301_Stat1_t_
void DRV8301_writeSpi(DRV8301_Handle handle, const DRV8301_RegName_e regName, const uint16_t data)
Writes data to the DRV8301 register.
Contains public interface to general purpose I/O (GPIO) methods.
DRV8301_PwmMode_e
Enumeration for the PWM modes.
DRV8301_Handle DRV8301_init(void *pMemory, const size_t numBytes)
Initializes the DRV8301 object.
report only OC at /OCTW pin
DRV8301_PwmMode_e PWM_MODE
void DRV8301_setOcMode(DRV8301_Handle handle, const DRV8301_OcMode_e mode)
Sets the over current mode.
void DRV8301_setDcCalMode(DRV8301_Handle handle, const DRV8301_ShuntAmpNumber_e ampNumber, const DRV8301_DcCalMode_e mode)
Sets the DC calibration mode.
report only OT at /OCTW pin
DRV8301 Vdd Under Voltage fault.
DRV8301_OcTwMode_e
Enumeration for the Over Current, Temperature Warning modes.
void DRV8301_setPeakCurrent(DRV8301_Handle handle, const DRV8301_PeakCurrent_e peakCurrent)
Sets the peak current value.
DRV8301_ShuntAmpGain_e GAIN
DRV8301_Reset_e
Enumeration for the shunt amplifier gains.
Shunt amplifier number 2.
report both OT and OC at /OCTW pin
DRV8301_OcTwMode_e DRV8301_getOcTwMode(DRV8301_Handle handle)
Gets the over current, temperature warning mode.
static DRV8301_Word_t DRV8301_buildCtrlWord(const DRV8301_CtrlMode_e ctrlMode, const DRV8301_RegName_e regName, const uint16_t data)
Builds the control word.
FET Low side, Phase B Over Current fault.
DRV8301_ShuntAmpGain_e DRV8301_getShuntAmpGain(DRV8301_Handle handle)
Gets the shunt amplifier gain value.
DRV8301_OcOffTimeMode_e
Enumeration for the Over Current Off Time modes.
FET High side, Phase B Over Current fault.
Shunt amplifier 1 disconnected from load and input pins are shorted.
DRV8301_RegName_e
Enumeration for the register names.
struct _DRV8301_Obj_ DRV8301_Obj
Defines the DRV8301 object.
Over Temperature Shut Down fault.
DRV8301_PwmMode_e DRV8301_getPwmMode(DRV8301_Handle handle)
Gets the PWM mode.
Contains public interface to various functions related to the serial peripheral interface (SPI) objec...
struct _DRV_SPI_8301_Vars_t_ DRV_SPI_8301_Vars_t
void DRV8301_enable(DRV8301_Handle handle)
Enables the DRV8301.
FET Low side, Phase A Over Current fault.
DRV_SPI_8301_CTRL2_t_ Ctrl_Reg_2
uint16_t DRV8301_readSpi(DRV8301_Handle handle, const DRV8301_RegName_e regName)
Reads data from the DRV8301 register.
latch shut down when OC detected
void DRV8301_reset(DRV8301_Handle handle)
Resets the DRV8301.
Defines the General Purpose I/O (GPIO) object.
GPIO_Handle gpioHandle
the gpio handle that is connected to the drv8301 enable pin
current limit when OC detected
Over Temperature Warning fault.
off time control during OC
DRV8301_DcCalMode_e DRV8301_getDcCalMode(DRV8301_Handle handle, const DRV8301_ShuntAmpNumber_e ampNumber)
Gets the DC calibration mode.
drv8301 driver peak current 0.25A
uint16_t DRV8301_getStatusRegister2(DRV8301_Handle handle)
Gets the status register 2 value.
DRV8301_ShuntAmpGain_e
Enumeration for the shunt amplifier gains.
DRV8301_VdsLevel_e DRV8301_getOcLevel(DRV8301_Handle handle)
Gets the over current level.
DRV_SPI_8301_Stat2_t_ Stat_Reg_2
DRV8301_PeakCurrent_e DRV8301_CURRENT
FET High side, Phase A Over Current fault.
report only when OC detected
void DRV8301_setGpioHandle(DRV8301_Handle handle, GPIO_Handle gpioHandle)
Sets the GPIO handle in the DRV8301.
void DRV8301_setupSpi(DRV8301_Handle handle, DRV_SPI_8301_Vars_t *Spi_8301_Vars)
Initialize the interface to all 8301 SPI variables.
FET Low side, Phase C Over Current fault.
DRV8301_OcMode_e DRV8301_getOcMode(DRV8301_Handle handle)
Gets the over current mode.
SPI_Handle spiHandle
the handle for the serial peripheral interface
void DRV8301_setOcOffTimeMode(DRV8301_Handle handle, const DRV8301_OcOffTimeMode_e mode)
Sets the over current off time mode.
GPIO_Number_e gpioNumber
the gpio number that is connected to the drv8301 enable pin
drv8301 driver peak current 1.70A
DRV8301_VdsLevel_e
Enumeration for the Vds level for th over current adjustment.
drv8301 driver peak current 0.70A
DRV8301 Vdd Over Voltage fault.
DRV8301_PeakCurrent_e
Enumeration for the drv8301 peak current levels.
void DRV8301_setOcTwMode(DRV8301_Handle handle, const DRV8301_OcTwMode_e mode)
Sets the over current, temperature warning mode.
void DRV8301_writeData(DRV8301_Handle handle, DRV_SPI_8301_Vars_t *Spi_8301_Vars)
Interface to all 8301 SPI variables.
DRV8301_OcTwMode_e OCTW_SET
uint16_t DRV8301_getStatusRegister1(DRV8301_Handle handle)
Gets the status register 1 value.
struct _DRV_SPI_8301_CTRL1_t_ DRV_SPI_8301_CTRL1_t_
void DRV8301_setOcLevel(DRV8301_Handle handle, const DRV8301_VdsLevel_e VdsLevel)
Sets the over current level in terms of Vds.
struct _DRV_SPI_8301_CTRL2_t_ DRV_SPI_8301_CTRL2_t_
struct _DRV8301_Obj_ * DRV8301_Handle
Defines the DRV8301 handle.
static void DRV8301_resetRxTimeout(DRV8301_Handle handle)
Resets the RX fifo timeout flag.
Shunt amplifier 2 connected to load via input pins.
void DRV8301_setShuntAmpGain(DRV8301_Handle handle, const DRV8301_ShuntAmpGain_e gain)
Sets the shunt amplifier gain value.
DRV_SPI_8301_Stat1_t_ Stat_Reg_1
DRV8301_Reset_e DRV8301_RESET
Power supply Vdd Under Voltage fault.
DRV8301_FaultType_e
Enumeration for the fault types.
bool DRV8301_isReset(DRV8301_Handle handle)
Determines if DRV8301 is in reset.
bool DRV8301_isFault(DRV8301_Handle handle)
Determines if DRV8301 fault has occurred.
bool RxTimeOut
the timeout flag for the RX fifo
struct _DRV_SPI_8301_Stat2_t_ DRV_SPI_8301_Stat2_t_
#define DRV8301_DATA_MASK
Defines the data mask.
DRV8301_CtrlMode_e
Enumeration for the R/W modes.
GPIO_Number_e
Enumeration to define the general purpose I/O (GPIO) numbers.
uint16_t DRV8301_getId(DRV8301_Handle handle)
Gets the device ID.
DRV8301_OcOffTimeMode_e DRV8301_getOcOffTimeMode(DRV8301_Handle handle)
Gets the over current off time mode.
DRV8301_OcMode_e
Enumeration for the Over Current modes.
Drv8301SpiOutputDataSelect_e