test upload STMicroelectronics L6470
L6470.h
- Committer:
- Brid
- Date:
- 2014-03-05
- Revision:
- 2:97c203ed65da
- Parent:
- 1:bb4bb05904cb
File content as of revision 2:97c203ed65da:
//This 'L6470' libraly maked by Brid #ifndef MBED_L6470 #define MBED_L6470 #include "mbed.h" #define FORWARD 1 #define REVERSE 0 // //INI = ResetHex //My specification for Initial value #define INI_ABS_POS 0 //Current position #define INI_EL_POS 0 //Electrical position #define INI_MARK 0 //Mark position #define INI_SPEED 0 //Current speed #define INI_ACC 0x8A //Acceleration #define INI_DEC 0x8A //Deceleration #define INI_MAX_SPEED 0x20 //Maximum speed #define INI_MIN_SPEED 0 //Minimum speed #define INI_KVAL_HOLD 0xFF //Full step speed #define INI_KVAL_RUN 0xFF // #define INI_KVAL_ACC 0xFF // #define INI_KVAL_DEC 0xFF // #define INI_INT_SPD 0x408 // #define INI_ST_SLP 0x19 // #define INI_FN_SLP_ACC 0x29 // #define INI_FN_SLP_DEC 0x29 // #define INI_K_THERA 0x0 // // ADC_OUT ReadOnly #define INI_OCR_TH 0xF #define INI_STALL_TH 0x7F #define INI_FS_SPD 0x27 #define INI_STEP_MODE 0x7 #define INI_ARARM_FN 0xFF #define INI_CONFIG 0x2E88 // INI_STATUS ReadOnly #define LEN_ABS_POS 22 #define LEN_EL_POS 9 #define LEN_MARK 22 #define LEN_SPEED 20 #define LEN_ACC 12 #define LEN_DEC 12 #define LEN_MAX_SPEED 10 #define LEN_MIN_SPEED 13 #define LEN_KVAL_HOLD 8 #define LEN_KVAL_RUN 8 #define LEN_KVAL_ACC 8 #define LEN_KVAL_DEC 8 #define LEN_INT_SPD 14 #define LEN_ST_SLP 8 #define LEN_FN_SLP_ACC 8 #define LEN_FN_SLP_DEC 8 #define LEN_K_THERA 4 #define LEN_ADC_OUT 5 #define LEN_OCR_TH 4 #define LEN_STALL_TH 7 #define LEN_FS_SPD 10 #define LEN_STEP_MODE 8 #define LEN_ARARM_FN 8 #define LEN_CONFIG 16 #define LEN_STATUS 16 #define ADD_ABS_POS 0x01 #define ADD_EL_POS 0x02 #define ADD_MARK 0x03 #define ADD_SPEED 0x04 #define ADD_ACC 0x05 #define ADD_DEC 0x06 #define ADD_MAX_SPEED 0x07 #define ADD_MIN_SPEED 0x08 #define ADD_KVAL_HOLD 0x09 #define ADD_KVAL_RUN 0x0A #define ADD_KVAL_ACC 0x0B #define ADD_KVAL_DEC 0x0C #define ADD_INT_SPD 0x0D #define ADD_ST_SLP 0x0E #define ADD_FN_SLP_ACC 0x0F #define ADD_FN_SLP_DEC 0x10 #define ADD_K_THERA 0x11 #define ADD_ADC_OUT 0x12 #define ADD_OCR_TH 0x13 #define ADD_STALL_TH 0x14 #define ADD_FS_SPD 0x15 #define ADD_STEP_MODE 0x16 #define ADD_ARARM_FN 0x17 #define ADD_CONFIG 0x18 #define ADD_STATUS 0x19 enum L6470_Register{ ABS_POS = 0x01, EL_POS, MARK, SPEED, ACC, DEC, MAX_SPEED, MIN_SPEED, KVAL_HOLD, KVAL_RUN, KVAL_ACC, KVAL_DEC, INT_SPD, ST_SLP, FN_SLP_ACC, FN_SLP_DEC, K_THERA, ADC_OUT, OCR_TH, STALL_TH, FS_SPD, STEP_MODE, ARARM_FN, CONFIG, STATUS }; class L6470{ public: L6470(PinName mosi, PinName miso, PinName sclk, PinName cs); unsigned char send(unsigned char temp); void send_bytes(unsigned char temp[],int i); void NOP(); void SetParam(L6470_Register param,int value); int GetParam(L6470_Register param); void Run(unsigned char dir,int spd); void StepClock(unsigned char dir); void Move(unsigned char dir,int n_step); void GoTo(int abs_pos); void GoTo_DIR(unsigned char dir,int abs_pos); void GoUntil(unsigned char act,unsigned char dir,int spd); void ReleaseSW(unsigned char act,unsigned char dir); void GoHome(); void GoMark(); void ResetPos(); void ResetDevice(); void SoftStop(); void HardStop(); void SoftHiZ(); void HardHiZ(); void Resets(); private: SPI m_spi; DigitalOut m_cs; }; #endif