test upload STMicroelectronics L6470
L6470.h@2:97c203ed65da, 2014-03-05 (annotated)
- Committer:
- Brid
- Date:
- Wed Mar 05 06:17:55 2014 +0000
- Revision:
- 2:97c203ed65da
- Parent:
- 1:bb4bb05904cb
ver1.01
Who changed what in which revision?
User | Revision | Line number | New 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 | 2:97c203ed65da | 11 | // |
Brid | 2:97c203ed65da | 12 | //INI = ResetHex |
Brid | 2:97c203ed65da | 13 | //My specification for Initial value |
Brid | 2:97c203ed65da | 14 | #define INI_ABS_POS 0 //Current position |
Brid | 2:97c203ed65da | 15 | #define INI_EL_POS 0 //Electrical position |
Brid | 2:97c203ed65da | 16 | #define INI_MARK 0 //Mark position |
Brid | 2:97c203ed65da | 17 | #define INI_SPEED 0 //Current speed |
Brid | 2:97c203ed65da | 18 | #define INI_ACC 0x8A //Acceleration |
Brid | 2:97c203ed65da | 19 | #define INI_DEC 0x8A //Deceleration |
Brid | 2:97c203ed65da | 20 | #define INI_MAX_SPEED 0x20 //Maximum speed |
Brid | 2:97c203ed65da | 21 | #define INI_MIN_SPEED 0 //Minimum speed |
Brid | 2:97c203ed65da | 22 | #define INI_KVAL_HOLD 0xFF //Full step speed |
Brid | 2:97c203ed65da | 23 | #define INI_KVAL_RUN 0xFF // |
Brid | 2:97c203ed65da | 24 | #define INI_KVAL_ACC 0xFF // |
Brid | 2:97c203ed65da | 25 | #define INI_KVAL_DEC 0xFF // |
Brid | 2:97c203ed65da | 26 | #define INI_INT_SPD 0x408 // |
Brid | 2:97c203ed65da | 27 | #define INI_ST_SLP 0x19 // |
Brid | 2:97c203ed65da | 28 | #define INI_FN_SLP_ACC 0x29 // |
Brid | 2:97c203ed65da | 29 | #define INI_FN_SLP_DEC 0x29 // |
Brid | 2:97c203ed65da | 30 | #define INI_K_THERA 0x0 // |
Brid | 2:97c203ed65da | 31 | // ADC_OUT ReadOnly |
Brid | 2:97c203ed65da | 32 | #define INI_OCR_TH 0xF |
Brid | 2:97c203ed65da | 33 | #define INI_STALL_TH 0x7F |
Brid | 2:97c203ed65da | 34 | #define INI_FS_SPD 0x27 |
Brid | 2:97c203ed65da | 35 | #define INI_STEP_MODE 0x7 |
Brid | 2:97c203ed65da | 36 | #define INI_ARARM_FN 0xFF |
Brid | 2:97c203ed65da | 37 | #define INI_CONFIG 0x2E88 |
Brid | 2:97c203ed65da | 38 | // INI_STATUS ReadOnly |
Brid | 2:97c203ed65da | 39 | |
Brid | 2:97c203ed65da | 40 | |
Brid | 2:97c203ed65da | 41 | #define LEN_ABS_POS 22 |
Brid | 2:97c203ed65da | 42 | #define LEN_EL_POS 9 |
Brid | 2:97c203ed65da | 43 | #define LEN_MARK 22 |
Brid | 2:97c203ed65da | 44 | #define LEN_SPEED 20 |
Brid | 2:97c203ed65da | 45 | #define LEN_ACC 12 |
Brid | 2:97c203ed65da | 46 | #define LEN_DEC 12 |
Brid | 2:97c203ed65da | 47 | #define LEN_MAX_SPEED 10 |
Brid | 2:97c203ed65da | 48 | #define LEN_MIN_SPEED 13 |
Brid | 2:97c203ed65da | 49 | #define LEN_KVAL_HOLD 8 |
Brid | 2:97c203ed65da | 50 | #define LEN_KVAL_RUN 8 |
Brid | 2:97c203ed65da | 51 | #define LEN_KVAL_ACC 8 |
Brid | 2:97c203ed65da | 52 | #define LEN_KVAL_DEC 8 |
Brid | 2:97c203ed65da | 53 | #define LEN_INT_SPD 14 |
Brid | 2:97c203ed65da | 54 | #define LEN_ST_SLP 8 |
Brid | 2:97c203ed65da | 55 | #define LEN_FN_SLP_ACC 8 |
Brid | 2:97c203ed65da | 56 | #define LEN_FN_SLP_DEC 8 |
Brid | 2:97c203ed65da | 57 | #define LEN_K_THERA 4 |
Brid | 2:97c203ed65da | 58 | #define LEN_ADC_OUT 5 |
Brid | 2:97c203ed65da | 59 | #define LEN_OCR_TH 4 |
Brid | 2:97c203ed65da | 60 | #define LEN_STALL_TH 7 |
Brid | 2:97c203ed65da | 61 | #define LEN_FS_SPD 10 |
Brid | 2:97c203ed65da | 62 | #define LEN_STEP_MODE 8 |
Brid | 2:97c203ed65da | 63 | #define LEN_ARARM_FN 8 |
Brid | 2:97c203ed65da | 64 | #define LEN_CONFIG 16 |
Brid | 2:97c203ed65da | 65 | #define LEN_STATUS 16 |
Brid | 2:97c203ed65da | 66 | |
Brid | 2:97c203ed65da | 67 | |
Brid | 2:97c203ed65da | 68 | #define ADD_ABS_POS 0x01 |
Brid | 2:97c203ed65da | 69 | #define ADD_EL_POS 0x02 |
Brid | 2:97c203ed65da | 70 | #define ADD_MARK 0x03 |
Brid | 2:97c203ed65da | 71 | #define ADD_SPEED 0x04 |
Brid | 2:97c203ed65da | 72 | #define ADD_ACC 0x05 |
Brid | 2:97c203ed65da | 73 | #define ADD_DEC 0x06 |
Brid | 2:97c203ed65da | 74 | #define ADD_MAX_SPEED 0x07 |
Brid | 2:97c203ed65da | 75 | #define ADD_MIN_SPEED 0x08 |
Brid | 2:97c203ed65da | 76 | #define ADD_KVAL_HOLD 0x09 |
Brid | 2:97c203ed65da | 77 | #define ADD_KVAL_RUN 0x0A |
Brid | 2:97c203ed65da | 78 | #define ADD_KVAL_ACC 0x0B |
Brid | 2:97c203ed65da | 79 | #define ADD_KVAL_DEC 0x0C |
Brid | 2:97c203ed65da | 80 | #define ADD_INT_SPD 0x0D |
Brid | 2:97c203ed65da | 81 | #define ADD_ST_SLP 0x0E |
Brid | 2:97c203ed65da | 82 | #define ADD_FN_SLP_ACC 0x0F |
Brid | 2:97c203ed65da | 83 | #define ADD_FN_SLP_DEC 0x10 |
Brid | 2:97c203ed65da | 84 | #define ADD_K_THERA 0x11 |
Brid | 2:97c203ed65da | 85 | #define ADD_ADC_OUT 0x12 |
Brid | 2:97c203ed65da | 86 | #define ADD_OCR_TH 0x13 |
Brid | 2:97c203ed65da | 87 | #define ADD_STALL_TH 0x14 |
Brid | 2:97c203ed65da | 88 | #define ADD_FS_SPD 0x15 |
Brid | 2:97c203ed65da | 89 | #define ADD_STEP_MODE 0x16 |
Brid | 2:97c203ed65da | 90 | #define ADD_ARARM_FN 0x17 |
Brid | 2:97c203ed65da | 91 | #define ADD_CONFIG 0x18 |
Brid | 2:97c203ed65da | 92 | #define ADD_STATUS 0x19 |
Brid | 0:26699d53cd2a | 93 | |
Brid | 0:26699d53cd2a | 94 | |
Brid | 0:26699d53cd2a | 95 | |
Brid | 0:26699d53cd2a | 96 | |
Brid | 2:97c203ed65da | 97 | enum L6470_Register{ |
Brid | 2:97c203ed65da | 98 | ABS_POS = 0x01, |
Brid | 2:97c203ed65da | 99 | EL_POS, |
Brid | 2:97c203ed65da | 100 | MARK, |
Brid | 2:97c203ed65da | 101 | SPEED, |
Brid | 2:97c203ed65da | 102 | ACC, |
Brid | 2:97c203ed65da | 103 | DEC, |
Brid | 2:97c203ed65da | 104 | MAX_SPEED, |
Brid | 2:97c203ed65da | 105 | MIN_SPEED, |
Brid | 2:97c203ed65da | 106 | KVAL_HOLD, |
Brid | 2:97c203ed65da | 107 | KVAL_RUN, |
Brid | 2:97c203ed65da | 108 | KVAL_ACC, |
Brid | 2:97c203ed65da | 109 | KVAL_DEC, |
Brid | 2:97c203ed65da | 110 | INT_SPD, |
Brid | 2:97c203ed65da | 111 | ST_SLP, |
Brid | 2:97c203ed65da | 112 | FN_SLP_ACC, |
Brid | 2:97c203ed65da | 113 | FN_SLP_DEC, |
Brid | 2:97c203ed65da | 114 | K_THERA, |
Brid | 2:97c203ed65da | 115 | ADC_OUT, |
Brid | 2:97c203ed65da | 116 | OCR_TH, |
Brid | 2:97c203ed65da | 117 | STALL_TH, |
Brid | 2:97c203ed65da | 118 | FS_SPD, |
Brid | 2:97c203ed65da | 119 | STEP_MODE, |
Brid | 2:97c203ed65da | 120 | ARARM_FN, |
Brid | 2:97c203ed65da | 121 | CONFIG, |
Brid | 2:97c203ed65da | 122 | STATUS |
Brid | 2:97c203ed65da | 123 | }; |
Brid | 0:26699d53cd2a | 124 | |
Brid | 0:26699d53cd2a | 125 | class L6470{ |
Brid | 0:26699d53cd2a | 126 | public: |
Brid | 0:26699d53cd2a | 127 | L6470(PinName mosi, PinName miso, PinName sclk, PinName cs); |
Brid | 0:26699d53cd2a | 128 | |
Brid | 0:26699d53cd2a | 129 | unsigned char send(unsigned char temp); |
Brid | 0:26699d53cd2a | 130 | void send_bytes(unsigned char temp[],int i); |
Brid | 0:26699d53cd2a | 131 | void NOP(); |
Brid | 2:97c203ed65da | 132 | void SetParam(L6470_Register param,int value); |
Brid | 2:97c203ed65da | 133 | int GetParam(L6470_Register param); |
Brid | 0:26699d53cd2a | 134 | void Run(unsigned char dir,int spd); |
Brid | 0:26699d53cd2a | 135 | void StepClock(unsigned char dir); |
Brid | 0:26699d53cd2a | 136 | void Move(unsigned char dir,int n_step); |
Brid | 0:26699d53cd2a | 137 | void GoTo(int abs_pos); |
Brid | 0:26699d53cd2a | 138 | void GoTo_DIR(unsigned char dir,int abs_pos); |
Brid | 0:26699d53cd2a | 139 | void GoUntil(unsigned char act,unsigned char dir,int spd); |
Brid | 0:26699d53cd2a | 140 | void ReleaseSW(unsigned char act,unsigned char dir); |
Brid | 0:26699d53cd2a | 141 | void GoHome(); |
Brid | 0:26699d53cd2a | 142 | void GoMark(); |
Brid | 0:26699d53cd2a | 143 | void ResetPos(); |
Brid | 0:26699d53cd2a | 144 | void ResetDevice(); |
Brid | 0:26699d53cd2a | 145 | void SoftStop(); |
Brid | 0:26699d53cd2a | 146 | void HardStop(); |
Brid | 0:26699d53cd2a | 147 | void SoftHiZ(); |
Brid | 0:26699d53cd2a | 148 | void HardHiZ(); |
Brid | 0:26699d53cd2a | 149 | void Resets(); |
Brid | 0:26699d53cd2a | 150 | |
Brid | 0:26699d53cd2a | 151 | private: |
Brid | 0:26699d53cd2a | 152 | SPI m_spi; |
Brid | 0:26699d53cd2a | 153 | DigitalOut m_cs; |
Brid | 0:26699d53cd2a | 154 | }; |
Brid | 0:26699d53cd2a | 155 | |
Brid | 0:26699d53cd2a | 156 | |
Brid | 0:26699d53cd2a | 157 | #endif |