Fork and fix for mwork
Dependencies: mbed-dev-f303 FastPWM3 millis
DRV8323/DRV.h
- Committer:
- benkatz
- Date:
- 2018-06-27
- Revision:
- 45:26801179208e
- Parent:
- 44:8040fa2fcb0d
- Child:
- 46:2d4b1dafcfe3
File content as of revision 45:26801179208e:
#ifndef DRV_H #define DRV_H /// Registers /// #define FSR1 0x0 ///Fault Status Register 1/// #define FSR2 0x1 ///Fault Status Register 2/// #define DCR 0x2 ///Drive Control Register/// #define HSR 0x3 ///Gate Drive HS Register/// #define LSR 0x4 ///Gate Drive LS Register/// #define OCPCR 0x5 ///OCP Control Register/// #define CSACR 0x6 ///CSA Control Register/// #define PWM_MODE_6X 0x0 ///PWM Input Modes/// #define PWM_MODE_3X 0x1 #define PWM_MODE_1X 0x2 #define PWM_MODE_IND 0x3 #define CSA_GAIN_5 0x0 ///Current Sensor Gain/// #define CSA_GAIN_10 0x1 #define CSA_GAIN_20 0x2 #define CSA_GAIN_40 0x3 #define DIS_SEN_EN 0x0 ///Overcurrent Fault #define DIS_SEN_DIS 0x1 class DRV832x { public: DRV832x(SPI *spi, DigitalOut *cs); int read_FSR1(); int read_FSR2(); int read_register(int reg); void write_register(int reg, int val); void write_DCR(int DIS_CPUV, int DIS_GDF, int OTW_REP, int PWM_MODE, int PWM_COM, int PWM_DIR, int COAST, int BRAKE, int CLR_FLT); void write_HSR(int LOCK, int IDRIVEP_HS, int IDRIVEN_HS); void write_LSR(int CBC, int TDRIVE, int IDRIVEP_LS, int IDRIVEN_LS); void write_OCPCR(int TRETRY, int DEAD_TIME, int OCP_MODE, int OCP_DEG, int VDS_LVL); void write_CSACR(int CSA_FET, int VREF_DIV, int LS_REF, int CSA_GAIN, int DIS_SEN, int CSA_CAL_A, int CSA_CAL_B, int CSA_CAL_C, int SEN_LVL); void enable_gd(void); void disable_gd(void); void calibrate(void); void print_faults(); private: SPI *_spi; DigitalOut *_cs; uint16_t spi_write(uint16_t val); }; #endif