Incomplete library for configuration of a DRV8301 pre-driver through a SPI interface.
DRV8301 is 3-Phase Brushless Motor Pre-Driver with Dual Current Sense Amps and Buck Converter (PWM Ctrl w/ SPI). Please find more information on Texas Instruments web pages and datasheet.
DRV8301.cpp
- Committer:
- pantunovi
- Date:
- 2015-11-21
- Revision:
- 0:2825ac4882fd
- Child:
- 2:bdca7d22b783
File content as of revision 0:2825ac4882fd:
#include "DRV8301.h" DRV8301::DRV8301(PinName mosi, PinName miso, PinName sck) : MOSI(mosi), MISO(miso), SCK(sck){ startup(); input = 0; } //funkcija za ograničernje struje void DRV8301::setCurrentLimit(uint8_t input){ uint16_t register1; maskCurrentLimit = 0xF83F; register1 &= maskCurrentLimit; register1 |= input << 6; } //funkcija za input PWM ulaza void DRV8301::setPWMNumber(uint8_t input){ uint16_t register1; maskPWM = 0xFFF7; register1 &= maskPWM; register1 |= input << 3; } //funkcija za input mod OCP-a void DRV8301::setOCPMode(uint8_t input){ uint16_t register1; maskOCP = 0xFFCF; register1 &= maskOCP; register1 |= input << 4; } //funkcija za input mod OCTW-a void DRV8301::setOCTW(uint8_t input){ uint16_t register2; maskOCTW = 0xFFFC; register2 &= maskOCTW; register2 |= input; } //funkcija za pojačanje void DRV8301::setGain(uint8_t input){ uint16_t register2; maskGain = 0xFFF3; register2 &= maskGain; register2 |= input << 2; } //funkcija za dobivanje stanja u registru 1 uint16_t getRegister1(){ uint16_t register1; return register1; } // funkcija za dobivanje stanja u registru 2 uint16_t getRegister2(){ uint16_t register2; return register2; } //funkcija za pokretanje (reboot) DRV-a void DRV8301::startup(){ EN_GATE = 0; wait_us (25); EN_GATE = 1; }