test upload STMicroelectronics L6470

Dependents:   test L6470exaple

Committer:
Brid
Date:
Wed Mar 05 06:22:03 2014 +0000
Revision:
3:f0e29d94b863
Parent:
1:bb4bb05904cb
ver1.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Brid 1:bb4bb05904cb 1 //This 'L6470' libraly maked by Brid
Brid 1:bb4bb05904cb 2
Brid 0:26699d53cd2a 3 #ifndef MBED_L6470
Brid 0:26699d53cd2a 4 #define MBED_L6470
Brid 0:26699d53cd2a 5
Brid 0:26699d53cd2a 6 #include "mbed.h"
Brid 0:26699d53cd2a 7
Brid 0:26699d53cd2a 8 #define FORWARD 1
Brid 0:26699d53cd2a 9 #define REVERSE 0
Brid 0:26699d53cd2a 10
Brid 3:f0e29d94b863 11 //
Brid 3:f0e29d94b863 12 //INI = ResetHex
Brid 3:f0e29d94b863 13 //My specification for Initial value
Brid 3:f0e29d94b863 14 #define INI_ABS_POS 0 //Current position
Brid 3:f0e29d94b863 15 #define INI_EL_POS 0 //Electrical position
Brid 3:f0e29d94b863 16 #define INI_MARK 0 //Mark position
Brid 3:f0e29d94b863 17 #define INI_SPEED 0 //Current speed
Brid 3:f0e29d94b863 18 #define INI_ACC 0x8A //Acceleration
Brid 3:f0e29d94b863 19 #define INI_DEC 0x8A //Deceleration
Brid 3:f0e29d94b863 20 #define INI_MAX_SPEED 0x20 //Maximum speed
Brid 3:f0e29d94b863 21 #define INI_MIN_SPEED 0 //Minimum speed
Brid 3:f0e29d94b863 22 #define INI_KVAL_HOLD 0xFF //Full step speed
Brid 3:f0e29d94b863 23 #define INI_KVAL_RUN 0xFF //
Brid 3:f0e29d94b863 24 #define INI_KVAL_ACC 0xFF //
Brid 3:f0e29d94b863 25 #define INI_KVAL_DEC 0xFF //
Brid 3:f0e29d94b863 26 #define INI_INT_SPD 0x408 //
Brid 3:f0e29d94b863 27 #define INI_ST_SLP 0x19 //
Brid 3:f0e29d94b863 28 #define INI_FN_SLP_ACC 0x29 //
Brid 3:f0e29d94b863 29 #define INI_FN_SLP_DEC 0x29 //
Brid 3:f0e29d94b863 30 #define INI_K_THERA 0x0 //
Brid 3:f0e29d94b863 31 // ADC_OUT ReadOnly
Brid 3:f0e29d94b863 32 #define INI_OCR_TH 0xF
Brid 3:f0e29d94b863 33 #define INI_STALL_TH 0x7F
Brid 3:f0e29d94b863 34 #define INI_FS_SPD 0x27
Brid 3:f0e29d94b863 35 #define INI_STEP_MODE 0x7
Brid 3:f0e29d94b863 36 #define INI_ARARM_FN 0xFF
Brid 3:f0e29d94b863 37 #define INI_CONFIG 0x2E88
Brid 3:f0e29d94b863 38 // INI_STATUS ReadOnly
Brid 3:f0e29d94b863 39
Brid 3:f0e29d94b863 40
Brid 3:f0e29d94b863 41
Brid 3:f0e29d94b863 42
Brid 3:f0e29d94b863 43
Brid 3:f0e29d94b863 44
Brid 3:f0e29d94b863 45
Brid 3:f0e29d94b863 46
Brid 1:bb4bb05904cb 47 // name (length<<8)+address
Brid 3:f0e29d94b863 48 //
Brid 0:26699d53cd2a 49 #define ABS_POS ((22<<8)+0x01) //Current position
Brid 0:26699d53cd2a 50 #define EL_POS ((9<<8)+0x02) //Electrical position
Brid 0:26699d53cd2a 51 #define MARK ((22<<8)+0x03) //Mark position
Brid 0:26699d53cd2a 52 #define SPEED ((20<<8)+0x04) //Current speed
Brid 0:26699d53cd2a 53 #define ACC ((12<<8)+0x05) //Acceleration
Brid 0:26699d53cd2a 54 #define DEC ((12<<8)+0x06) //Deceleration
Brid 0:26699d53cd2a 55 #define MAX_SPEED ((10<<8)+0x07) //Maximum speed
Brid 0:26699d53cd2a 56 #define MIN_SPEED ((13<<8)+0x08) //Minimum speed
Brid 0:26699d53cd2a 57 #define KVAL_HOLD ((8<<8)+0x09) //Full step speed
Brid 0:26699d53cd2a 58 #define KVAL_RUN ((8<<8)+0x0A) //
Brid 0:26699d53cd2a 59 #define KVAL_ACC ((8<<8)+0x0B) //
Brid 0:26699d53cd2a 60 #define KVAL_DEC ((8<<8)+0x0C) //
Brid 0:26699d53cd2a 61 #define INT_SPD ((14<<8)+0x0D) //
Brid 0:26699d53cd2a 62 #define ST_SLP ((8<<8)+0x0E) //
Brid 0:26699d53cd2a 63 #define FN_SLP_ACC ((8<<8)+0x0F) //
Brid 0:26699d53cd2a 64 #define FN_SLP_DEC ((8<<8)+0x10) //
Brid 0:26699d53cd2a 65 #define K_THERA ((4<<8)+0x11) //
Brid 0:26699d53cd2a 66 #define ADC_OUT ((5<<8)+0x12) //
Brid 0:26699d53cd2a 67 #define OCR_TH ((4<<8)+0x13) //
Brid 0:26699d53cd2a 68 #define STALL_TH ((7<<8)+0x14) //
Brid 0:26699d53cd2a 69 #define FS_SPD ((10<<8)+0x15) //
Brid 0:26699d53cd2a 70 #define STEP_MODE ((8<<8)+0x16) //
Brid 0:26699d53cd2a 71 #define ARARM_FN ((8<<8)+0x17) //
Brid 0:26699d53cd2a 72 #define CONFIG ((16<<8)+0x18) //
Brid 0:26699d53cd2a 73 #define STATUS ((16<<8)+0x19) //
Brid 0:26699d53cd2a 74
Brid 0:26699d53cd2a 75
Brid 0:26699d53cd2a 76
Brid 0:26699d53cd2a 77
Brid 0:26699d53cd2a 78
Brid 0:26699d53cd2a 79
Brid 0:26699d53cd2a 80 class L6470{
Brid 0:26699d53cd2a 81 public:
Brid 0:26699d53cd2a 82 L6470(PinName mosi, PinName miso, PinName sclk, PinName cs);
Brid 0:26699d53cd2a 83
Brid 0:26699d53cd2a 84 unsigned char send(unsigned char temp);
Brid 0:26699d53cd2a 85 void send_bytes(unsigned char temp[],int i);
Brid 0:26699d53cd2a 86 void NOP();
Brid 0:26699d53cd2a 87 void SetParam(int param,int value);
Brid 0:26699d53cd2a 88 int GetParam(int param);
Brid 0:26699d53cd2a 89 void Run(unsigned char dir,int spd);
Brid 0:26699d53cd2a 90 void StepClock(unsigned char dir);
Brid 0:26699d53cd2a 91 void Move(unsigned char dir,int n_step);
Brid 0:26699d53cd2a 92 void GoTo(int abs_pos);
Brid 0:26699d53cd2a 93 void GoTo_DIR(unsigned char dir,int abs_pos);
Brid 0:26699d53cd2a 94 void GoUntil(unsigned char act,unsigned char dir,int spd);
Brid 0:26699d53cd2a 95 void ReleaseSW(unsigned char act,unsigned char dir);
Brid 0:26699d53cd2a 96 void GoHome();
Brid 0:26699d53cd2a 97 void GoMark();
Brid 0:26699d53cd2a 98 void ResetPos();
Brid 0:26699d53cd2a 99 void ResetDevice();
Brid 0:26699d53cd2a 100 void SoftStop();
Brid 0:26699d53cd2a 101 void HardStop();
Brid 0:26699d53cd2a 102 void SoftHiZ();
Brid 0:26699d53cd2a 103 void HardHiZ();
Brid 0:26699d53cd2a 104 void Resets();
Brid 0:26699d53cd2a 105
Brid 0:26699d53cd2a 106 private:
Brid 0:26699d53cd2a 107 SPI m_spi;
Brid 0:26699d53cd2a 108 DigitalOut m_cs;
Brid 0:26699d53cd2a 109 };
Brid 0:26699d53cd2a 110
Brid 0:26699d53cd2a 111
Brid 0:26699d53cd2a 112 #endif