hobbyking_cheetah source code modified 2020/12/15
Dependencies: mbed-dev-f303 FastPWM3
Diff: DRV8323/DRV.h
- Revision:
- 44:8040fa2fcb0d
- Child:
- 45:26801179208e
diff -r dfb72608639c -r 8040fa2fcb0d DRV8323/DRV.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DRV8323/DRV.h Mon Jun 11 00:04:06 2018 +0000 @@ -0,0 +1,46 @@ +#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 print_faults(); + + private: + SPI *_spi; + DigitalOut *_cs; + uint16_t spi_write(uint16_t val); +}; + +#endif \ No newline at end of file