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.

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;
+    }
+