test upload STMicroelectronics L6470
L6470.h@0:26699d53cd2a, 2012-12-25 (annotated)
- Committer:
- Brid
- Date:
- Tue Dec 25 02:39:30 2012 +0000
- Revision:
- 0:26699d53cd2a
- Child:
- 1:bb4bb05904cb
test upload
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Brid | 0:26699d53cd2a | 1 | #ifndef MBED_L6470 |
Brid | 0:26699d53cd2a | 2 | #define MBED_L6470 |
Brid | 0:26699d53cd2a | 3 | |
Brid | 0:26699d53cd2a | 4 | #include "mbed.h" |
Brid | 0:26699d53cd2a | 5 | |
Brid | 0:26699d53cd2a | 6 | #define FORWARD 1 |
Brid | 0:26699d53cd2a | 7 | #define REVERSE 0 |
Brid | 0:26699d53cd2a | 8 | |
Brid | 0:26699d53cd2a | 9 | // name (length<<2)+address |
Brid | 0:26699d53cd2a | 10 | #define ABS_POS ((22<<8)+0x01) //Current position |
Brid | 0:26699d53cd2a | 11 | #define EL_POS ((9<<8)+0x02) //Electrical position |
Brid | 0:26699d53cd2a | 12 | #define MARK ((22<<8)+0x03) //Mark position |
Brid | 0:26699d53cd2a | 13 | #define SPEED ((20<<8)+0x04) //Current speed |
Brid | 0:26699d53cd2a | 14 | #define ACC ((12<<8)+0x05) //Acceleration |
Brid | 0:26699d53cd2a | 15 | #define DEC ((12<<8)+0x06) //Deceleration |
Brid | 0:26699d53cd2a | 16 | #define MAX_SPEED ((10<<8)+0x07) //Maximum speed |
Brid | 0:26699d53cd2a | 17 | #define MIN_SPEED ((13<<8)+0x08) //Minimum speed |
Brid | 0:26699d53cd2a | 18 | #define KVAL_HOLD ((8<<8)+0x09) //Full step speed |
Brid | 0:26699d53cd2a | 19 | #define KVAL_RUN ((8<<8)+0x0A) // |
Brid | 0:26699d53cd2a | 20 | #define KVAL_ACC ((8<<8)+0x0B) // |
Brid | 0:26699d53cd2a | 21 | #define KVAL_DEC ((8<<8)+0x0C) // |
Brid | 0:26699d53cd2a | 22 | #define INT_SPD ((14<<8)+0x0D) // |
Brid | 0:26699d53cd2a | 23 | #define ST_SLP ((8<<8)+0x0E) // |
Brid | 0:26699d53cd2a | 24 | #define FN_SLP_ACC ((8<<8)+0x0F) // |
Brid | 0:26699d53cd2a | 25 | #define FN_SLP_DEC ((8<<8)+0x10) // |
Brid | 0:26699d53cd2a | 26 | #define K_THERA ((4<<8)+0x11) // |
Brid | 0:26699d53cd2a | 27 | #define ADC_OUT ((5<<8)+0x12) // |
Brid | 0:26699d53cd2a | 28 | #define OCR_TH ((4<<8)+0x13) // |
Brid | 0:26699d53cd2a | 29 | #define STALL_TH ((7<<8)+0x14) // |
Brid | 0:26699d53cd2a | 30 | #define FS_SPD ((10<<8)+0x15) // |
Brid | 0:26699d53cd2a | 31 | #define STEP_MODE ((8<<8)+0x16) // |
Brid | 0:26699d53cd2a | 32 | #define ARARM_FN ((8<<8)+0x17) // |
Brid | 0:26699d53cd2a | 33 | #define CONFIG ((16<<8)+0x18) // |
Brid | 0:26699d53cd2a | 34 | #define STATUS ((16<<8)+0x19) // |
Brid | 0:26699d53cd2a | 35 | |
Brid | 0:26699d53cd2a | 36 | |
Brid | 0:26699d53cd2a | 37 | |
Brid | 0:26699d53cd2a | 38 | //RH = ResetHex |
Brid | 0:26699d53cd2a | 39 | #define RH_ABS_POS 0 //Current position |
Brid | 0:26699d53cd2a | 40 | #define RH_EL_POS 0 //Electrical position |
Brid | 0:26699d53cd2a | 41 | #define RH_MARK 0 //Mark position |
Brid | 0:26699d53cd2a | 42 | #define RH_SPEED 0 //Current speed |
Brid | 0:26699d53cd2a | 43 | #define RH_ACC 0x8A //Acceleration |
Brid | 0:26699d53cd2a | 44 | #define RH_DEC 0x8A //Deceleration |
Brid | 0:26699d53cd2a | 45 | #define RH_MAX_SPEED 0x20 //Maximum speed |
Brid | 0:26699d53cd2a | 46 | #define RH_MIN_SPEED 0 //Minimum speed |
Brid | 0:26699d53cd2a | 47 | #define RH_KVAL_HOLD 0xFF //Full step speed |
Brid | 0:26699d53cd2a | 48 | #define RH_KVAL_RUN 0xFF // |
Brid | 0:26699d53cd2a | 49 | #define RH_KVAL_ACC 0xFF // |
Brid | 0:26699d53cd2a | 50 | #define RH_KVAL_DEC 0xFF // |
Brid | 0:26699d53cd2a | 51 | #define RH_INT_SPD 0x408 // |
Brid | 0:26699d53cd2a | 52 | #define RH_ST_SLP 0x19 // |
Brid | 0:26699d53cd2a | 53 | #define RH_FN_SLP_ACC 0x29 // |
Brid | 0:26699d53cd2a | 54 | #define RH_FN_SLP_DEC 0x29 // |
Brid | 0:26699d53cd2a | 55 | #define RH_K_THERA 0x0 // |
Brid | 0:26699d53cd2a | 56 | // ADC_OUT ReadOnly |
Brid | 0:26699d53cd2a | 57 | #define RH_OCR_TH 0xF |
Brid | 0:26699d53cd2a | 58 | #define RH_STALL_TH 0x7F |
Brid | 0:26699d53cd2a | 59 | #define RH_FS_SPD 0x27 |
Brid | 0:26699d53cd2a | 60 | #define RH_STEP_MODE 0x7 |
Brid | 0:26699d53cd2a | 61 | #define RH_ARARM_FN 0xFF |
Brid | 0:26699d53cd2a | 62 | #define RH_CONFIG 0x2E88 |
Brid | 0:26699d53cd2a | 63 | // RH_STATUS ReadOnly |
Brid | 0:26699d53cd2a | 64 | |
Brid | 0:26699d53cd2a | 65 | |
Brid | 0:26699d53cd2a | 66 | |
Brid | 0:26699d53cd2a | 67 | class L6470{ |
Brid | 0:26699d53cd2a | 68 | public: |
Brid | 0:26699d53cd2a | 69 | L6470(PinName mosi, PinName miso, PinName sclk, PinName cs); |
Brid | 0:26699d53cd2a | 70 | |
Brid | 0:26699d53cd2a | 71 | unsigned char send(unsigned char temp); |
Brid | 0:26699d53cd2a | 72 | void send_bytes(unsigned char temp[],int i); |
Brid | 0:26699d53cd2a | 73 | void NOP(); |
Brid | 0:26699d53cd2a | 74 | void SetParam(int param,int value); |
Brid | 0:26699d53cd2a | 75 | int GetParam(int param); |
Brid | 0:26699d53cd2a | 76 | void Run(unsigned char dir,int spd); |
Brid | 0:26699d53cd2a | 77 | void StepClock(unsigned char dir); |
Brid | 0:26699d53cd2a | 78 | void Move(unsigned char dir,int n_step); |
Brid | 0:26699d53cd2a | 79 | void GoTo(int abs_pos); |
Brid | 0:26699d53cd2a | 80 | void GoTo_DIR(unsigned char dir,int abs_pos); |
Brid | 0:26699d53cd2a | 81 | void GoUntil(unsigned char act,unsigned char dir,int spd); |
Brid | 0:26699d53cd2a | 82 | void ReleaseSW(unsigned char act,unsigned char dir); |
Brid | 0:26699d53cd2a | 83 | void GoHome(); |
Brid | 0:26699d53cd2a | 84 | void GoMark(); |
Brid | 0:26699d53cd2a | 85 | void ResetPos(); |
Brid | 0:26699d53cd2a | 86 | void ResetDevice(); |
Brid | 0:26699d53cd2a | 87 | void SoftStop(); |
Brid | 0:26699d53cd2a | 88 | void HardStop(); |
Brid | 0:26699d53cd2a | 89 | void SoftHiZ(); |
Brid | 0:26699d53cd2a | 90 | void HardHiZ(); |
Brid | 0:26699d53cd2a | 91 | void Resets(); |
Brid | 0:26699d53cd2a | 92 | |
Brid | 0:26699d53cd2a | 93 | private: |
Brid | 0:26699d53cd2a | 94 | SPI m_spi; |
Brid | 0:26699d53cd2a | 95 | DigitalOut m_cs; |
Brid | 0:26699d53cd2a | 96 | }; |
Brid | 0:26699d53cd2a | 97 | |
Brid | 0:26699d53cd2a | 98 | |
Brid | 0:26699d53cd2a | 99 | #endif |