TVZ Mechatronics Team / DRV8301
Committer:
pantunovi
Date:
Sat Nov 21 17:36:16 2015 +0000
Revision:
0:2825ac4882fd
Child:
2:bdca7d22b783
Incomplete version, lacking a valid constructor and input data for write functions in main.cpp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pantunovi 0:2825ac4882fd 1 #include "DRV8301.h"
pantunovi 0:2825ac4882fd 2
pantunovi 0:2825ac4882fd 3 DRV8301::DRV8301(PinName mosi, PinName miso, PinName sck) : MOSI(mosi), MISO(miso), SCK(sck){
pantunovi 0:2825ac4882fd 4 startup();
pantunovi 0:2825ac4882fd 5 input = 0;
pantunovi 0:2825ac4882fd 6 }
pantunovi 0:2825ac4882fd 7
pantunovi 0:2825ac4882fd 8 //funkcija za ograničernje struje
pantunovi 0:2825ac4882fd 9
pantunovi 0:2825ac4882fd 10
pantunovi 0:2825ac4882fd 11 void DRV8301::setCurrentLimit(uint8_t input){
pantunovi 0:2825ac4882fd 12 uint16_t register1;
pantunovi 0:2825ac4882fd 13 maskCurrentLimit = 0xF83F;
pantunovi 0:2825ac4882fd 14 register1 &= maskCurrentLimit;
pantunovi 0:2825ac4882fd 15 register1 |= input << 6;
pantunovi 0:2825ac4882fd 16 }
pantunovi 0:2825ac4882fd 17
pantunovi 0:2825ac4882fd 18 //funkcija za input PWM ulaza
pantunovi 0:2825ac4882fd 19
pantunovi 0:2825ac4882fd 20 void DRV8301::setPWMNumber(uint8_t input){
pantunovi 0:2825ac4882fd 21 uint16_t register1;
pantunovi 0:2825ac4882fd 22 maskPWM = 0xFFF7;
pantunovi 0:2825ac4882fd 23 register1 &= maskPWM;
pantunovi 0:2825ac4882fd 24 register1 |= input << 3;
pantunovi 0:2825ac4882fd 25 }
pantunovi 0:2825ac4882fd 26
pantunovi 0:2825ac4882fd 27 //funkcija za input mod OCP-a
pantunovi 0:2825ac4882fd 28
pantunovi 0:2825ac4882fd 29 void DRV8301::setOCPMode(uint8_t input){
pantunovi 0:2825ac4882fd 30 uint16_t register1;
pantunovi 0:2825ac4882fd 31 maskOCP = 0xFFCF;
pantunovi 0:2825ac4882fd 32 register1 &= maskOCP;
pantunovi 0:2825ac4882fd 33 register1 |= input << 4;
pantunovi 0:2825ac4882fd 34 }
pantunovi 0:2825ac4882fd 35
pantunovi 0:2825ac4882fd 36 //funkcija za input mod OCTW-a
pantunovi 0:2825ac4882fd 37
pantunovi 0:2825ac4882fd 38
pantunovi 0:2825ac4882fd 39 void DRV8301::setOCTW(uint8_t input){
pantunovi 0:2825ac4882fd 40 uint16_t register2;
pantunovi 0:2825ac4882fd 41 maskOCTW = 0xFFFC;
pantunovi 0:2825ac4882fd 42 register2 &= maskOCTW;
pantunovi 0:2825ac4882fd 43 register2 |= input;
pantunovi 0:2825ac4882fd 44 }
pantunovi 0:2825ac4882fd 45
pantunovi 0:2825ac4882fd 46 //funkcija za pojačanje
pantunovi 0:2825ac4882fd 47
pantunovi 0:2825ac4882fd 48 void DRV8301::setGain(uint8_t input){
pantunovi 0:2825ac4882fd 49 uint16_t register2;
pantunovi 0:2825ac4882fd 50 maskGain = 0xFFF3;
pantunovi 0:2825ac4882fd 51 register2 &= maskGain;
pantunovi 0:2825ac4882fd 52 register2 |= input << 2;
pantunovi 0:2825ac4882fd 53 }
pantunovi 0:2825ac4882fd 54
pantunovi 0:2825ac4882fd 55 //funkcija za dobivanje stanja u registru 1
pantunovi 0:2825ac4882fd 56
pantunovi 0:2825ac4882fd 57 uint16_t getRegister1(){
pantunovi 0:2825ac4882fd 58 uint16_t register1;
pantunovi 0:2825ac4882fd 59 return register1;
pantunovi 0:2825ac4882fd 60 }
pantunovi 0:2825ac4882fd 61
pantunovi 0:2825ac4882fd 62 // funkcija za dobivanje stanja u registru 2
pantunovi 0:2825ac4882fd 63
pantunovi 0:2825ac4882fd 64 uint16_t getRegister2(){
pantunovi 0:2825ac4882fd 65 uint16_t register2;
pantunovi 0:2825ac4882fd 66 return register2;
pantunovi 0:2825ac4882fd 67 }
pantunovi 0:2825ac4882fd 68
pantunovi 0:2825ac4882fd 69 //funkcija za pokretanje (reboot) DRV-a
pantunovi 0:2825ac4882fd 70
pantunovi 0:2825ac4882fd 71 void DRV8301::startup(){
pantunovi 0:2825ac4882fd 72 EN_GATE = 0;
pantunovi 0:2825ac4882fd 73 wait_us (25);
pantunovi 0:2825ac4882fd 74 EN_GATE = 1;
pantunovi 0:2825ac4882fd 75 }
pantunovi 0:2825ac4882fd 76