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.
Diff: DRV8301.cpp
- Revision:
- 0:2825ac4882fd
- Child:
- 2:bdca7d22b783
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DRV8301.cpp Sat Nov 21 17:36:16 2015 +0000 @@ -0,0 +1,76 @@ +#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; + } +