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:
3:227ecd07b9cd
Parent:
2:bdca7d22b783
Child:
4:98c76c7b8020
--- a/DRV8301.cpp	Mon Nov 23 13:14:48 2015 +0000
+++ b/DRV8301.cpp	Tue Nov 24 13:22:30 2015 +0000
@@ -1,11 +1,24 @@
 #include "DRV8301.h"
+#include "mbed.h"
+
+SPI spi(p11, p12, p13);
 
-DRV8301::DRV8301(PinName mosi, PinName miso, PinName sck) : MOSI(mosi), MISO(miso), SCK(sck){
+DRV8301::DRV8301(PinName pcs, PinName pmosi, PinName pmiso, PinName psck, PinName pen_gate) : cs(pcs), mosi(pmosi), miso(pmiso), sck(psck), en_gate(pen_gate){
+    
+    SPI spi(pcs, pmosi, pmiso, psck);
+    
+    spi.format(16,1);
+    spi.frequency(1000000);
+    cs = 1;
+    cs = 0;
+    
     startup();
-    input = 0;
+    register1 = spi.write(0x9000);
+    register2 = spi.write(0x9800);
+    
 }
 
-//funkcija za ograničernje struje
+//funkcija za ograničenje struje
 
 void DRV8301::setCurrentLimit(uint8_t input){
     uint16_t register1;
@@ -14,7 +27,7 @@
     register1 |= input << 6;
 }
  
-//funkcija za input PWM ulaza
+//funkcija za broj PWM ulaza
 
 void DRV8301::setPWMNumber(uint8_t input){
     uint16_t register1;
@@ -23,7 +36,7 @@
     register1 |= input << 3;
 }
     
-//funkcija za input mod OCP-a
+//funkcija za mod OCP-a
 
 void DRV8301::setOCPMode(uint8_t input){
     uint16_t register1;
@@ -32,7 +45,7 @@
     register1 |= input << 4;
 }
 
-//funkcija za input mod OCTW-a 
+//funkcija za mod OCTW-a 
 
 void DRV8301::setOCTW(uint8_t input){
     uint16_t register2;
@@ -64,10 +77,25 @@
     return register2;
 }
 
+//funkcija za čitanje statusnog registra 1
+
+uint16_t DRV8301::readStatReg1(){
+    uint16_t statReg1 = spi.write(0x8000);
+    return statReg1;
+}
+
+//funkcija za čitanje statusnog registra 2
+
+uint16_t DRV8301::readStatReg2(){
+    uint16_t statReg2 = spi.write(0x8800);
+    return statReg2;
+}
+
 //funkcija za pokretanje (reboot) DRV-a
     
 void DRV8301::startup(){
-    EN_GATE = 0;
+    en_gate = 0;
     wait_us (25);
-    EN_GATE = 1;
+    en_gate = 1;
+    wait (1);
 }
\ No newline at end of file