Communicate with IAI Robotnet linear actuators

Dependents:   IAILinearActuators

Committer:
henryeherman
Date:
Mon Feb 24 05:54:34 2014 +0000
Revision:
0:de88dc2515d3
Initial commit of IAI code to mbed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
henryeherman 0:de88dc2515d3 1 #ifndef LINACTREGDEF_H
henryeherman 0:de88dc2515d3 2 #define LINACTREGDEF_H
henryeherman 0:de88dc2515d3 3
henryeherman 0:de88dc2515d3 4 #define IS_MBED
henryeherman 0:de88dc2515d3 5 #ifdef IS_MBED
henryeherman 0:de88dc2515d3 6 #include "mbed.h"
henryeherman 0:de88dc2515d3 7 #endif
henryeherman 0:de88dc2515d3 8
henryeherman 0:de88dc2515d3 9 #define GWADDR 0x3f // 63 or 0x3f fixed slave address
henryeherman 0:de88dc2515d3 10 #define LINACT_READ_MULTI 0x03
henryeherman 0:de88dc2515d3 11 #define LINACT_WRITE 0x06
henryeherman 0:de88dc2515d3 12 #define LINACT_WRITE_MULTI 0x10
henryeherman 0:de88dc2515d3 13
henryeherman 0:de88dc2515d3 14 #define GWCTRL0 0xF600
henryeherman 0:de88dc2515d3 15 #define GWCTRL1 0xF601
henryeherman 0:de88dc2515d3 16
henryeherman 0:de88dc2515d3 17 #define GWCTRL_APP_SIG (1<<15)
henryeherman 0:de88dc2515d3 18
henryeherman 0:de88dc2515d3 19 #define AXIS0_BASE_WR 0xF608
henryeherman 0:de88dc2515d3 20 #define AXIS1_BASE_WR 0xF60C
henryeherman 0:de88dc2515d3 21 #define AXIS2_BASE_WR 0xF610
henryeherman 0:de88dc2515d3 22 #define AXIS3_BASE_WR 0xF614
henryeherman 0:de88dc2515d3 23 #define AXIS4_BASE_WR 0xF608
henryeherman 0:de88dc2515d3 24 #define AXIS5_BASE_WR 0xF61C
henryeherman 0:de88dc2515d3 25
henryeherman 0:de88dc2515d3 26 #define POS_SET_LO_OFFSET 0x0
henryeherman 0:de88dc2515d3 27
henryeherman 0:de88dc2515d3 28 #define AXIS0_POS_SET_LO (AXIS0_BASE_WR + POS_SET_LO_OFFSET)
henryeherman 0:de88dc2515d3 29 #define AXIS1_POS_SET_LO (AXIS1_BASE_WR + POS_SET_LO_OFFSET)
henryeherman 0:de88dc2515d3 30 #define AXIS2_POS_SET_LO (AXIS2_BASE_WR + POS_SET_LO_OFFSET)
henryeherman 0:de88dc2515d3 31 #define AXIS3_POS_SET_LO (AXIS3_BASE_WR + POS_SET_LO_OFFSET)
henryeherman 0:de88dc2515d3 32 #define AXIS4_POS_SET_LO (AXIS4_BASE_WR + POS_SET_LO_OFFSET)
henryeherman 0:de88dc2515d3 33
henryeherman 0:de88dc2515d3 34 #define POS_SET_HI_OFFSET 0x1
henryeherman 0:de88dc2515d3 35
henryeherman 0:de88dc2515d3 36 #define AXIS0_POS_SET_HI (AXIS0_BASE_WR + POS_SET_HI_OFFSET)
henryeherman 0:de88dc2515d3 37 #define AXIS1_POS_SET_HI (AXIS1_BASE_WR + POS_SET_HI_OFFSET)
henryeherman 0:de88dc2515d3 38 #define AXIS2_POS_SET_HI (AXIS2_BASE_WR + POS_SET_HI_OFFSET)
henryeherman 0:de88dc2515d3 39 #define AXIS3_POS_SET_HI (AXIS3_BASE_WR + POS_SET_HI_OFFSET)
henryeherman 0:de88dc2515d3 40 #define AXIS4_POS_SET_HI (AXIS4_BASE_WR + POS_SET_HI_OFFSET)
henryeherman 0:de88dc2515d3 41
henryeherman 0:de88dc2515d3 42 #define CMD_POS_SET_OFFSET 0x2
henryeherman 0:de88dc2515d3 43
henryeherman 0:de88dc2515d3 44 #define AXIS0_CMD_POS_SET (AXIS0_BASE_WR + CMD_POS_SET_OFFSET)
henryeherman 0:de88dc2515d3 45 #define AXIS1_CMD_POS_SET (AXIS1_BASE_WR + CMD_POS_SET_OFFSET)
henryeherman 0:de88dc2515d3 46 #define AXIS2_CMD_POS_SET (AXIS2_BASE_WR + CMD_POS_SET_OFFSET)
henryeherman 0:de88dc2515d3 47 #define AXIS3_CMD_POS_SET (AXIS3_BASE_WR + CMD_POS_SET_OFFSET)
henryeherman 0:de88dc2515d3 48 #define AXIS4_CMD_POS_SET (AXIS4_BASE_WR + CMD_POS_SET_OFFSET)
henryeherman 0:de88dc2515d3 49
henryeherman 0:de88dc2515d3 50 #define CNTRL_SIG_OFFSET 0x3
henryeherman 0:de88dc2515d3 51
henryeherman 0:de88dc2515d3 52 #define AXIS0_CTRL_SIG (AXIS0_BASE_WR + CNTRL_SIG_OFFSET)
henryeherman 0:de88dc2515d3 53 #define AXIS1_CTRL_SIG (AXIS1_BASE_WR + CNTRL_SIG_OFFSET)
henryeherman 0:de88dc2515d3 54 #define AXIS2_CTRL_SIG (AXIS2_BASE_WR + CNTRL_SIG_OFFSET)
henryeherman 0:de88dc2515d3 55 #define AXIS3_CTRL_SIG (AXIS3_BASE_WR + CNTRL_SIG_OFFSET)
henryeherman 0:de88dc2515d3 56 #define AXIS4_CTRL_SIG (AXIS4_BASE_WR + CNTRL_SIG_OFFSET)
henryeherman 0:de88dc2515d3 57
henryeherman 0:de88dc2515d3 58 #define AXIS_CTRL_BKRL (1<<15)
henryeherman 0:de88dc2515d3 59 #define AXIS_CTRL_MODE (1<<10)
henryeherman 0:de88dc2515d3 60 #define AXIS_CTRL_PWRT (1<<9)
henryeherman 0:de88dc2515d3 61 #define AXIS_CTRL_JOGP (1<<8)
henryeherman 0:de88dc2515d3 62 #define AXIS_CTRL_JOGN (1<<7)
henryeherman 0:de88dc2515d3 63 #define AXIS_CTRL_JVEL (1<<6)
henryeherman 0:de88dc2515d3 64 #define AXIS_CTRL_JISL (1<<5)
henryeherman 0:de88dc2515d3 65 #define AXIS_CTRL_SON (1<<4)
henryeherman 0:de88dc2515d3 66 #define AXIS_CTRL_RES (1<<3)
henryeherman 0:de88dc2515d3 67 #define AXIS_CTRL_STP (1<<2) // Pause command
henryeherman 0:de88dc2515d3 68 #define AXIS_CTRL_HOME (1<<1)
henryeherman 0:de88dc2515d3 69 #define AXIS_CTRL_CSTR (1<<0)
henryeherman 0:de88dc2515d3 70
henryeherman 0:de88dc2515d3 71 #define LINACT_GWSTATUS0 0xF700
henryeherman 0:de88dc2515d3 72 #define LINACT_GWSTATUS1 0xF701
henryeherman 0:de88dc2515d3 73
henryeherman 0:de88dc2515d3 74 #define GWSTATUS0_RUN (1<<15)
henryeherman 0:de88dc2515d3 75 #define GWSTATUS0_ERRT (1<<14)
henryeherman 0:de88dc2515d3 76 #define GWSTATUS0_MOD (1<<12)
henryeherman 0:de88dc2515d3 77 #define GWSTATUS0_W8B16 (1<<9)
henryeherman 0:de88dc2515d3 78 #define GWSTATUE0_W8B8 (1<<8)
henryeherman 0:de88dc2515d3 79 #define GWSTATUS0_W8B4 (1<<7)
henryeherman 0:de88dc2515d3 80 #define GWSTATUS0_W8B2 (1<<6)
henryeherman 0:de88dc2515d3 81 #define GWSTATUS0_W8B1 (1<<5)
henryeherman 0:de88dc2515d3 82 #define GWSTATUS0_W4B16 (1<<4)
henryeherman 0:de88dc2515d3 83 #define GWSTATUS0_W4B8 (1<<3)
henryeherman 0:de88dc2515d3 84 #define GWSTATUS0_W4B4 (1<<2)
henryeherman 0:de88dc2515d3 85 #define GWSTATUS0_W4B2 (1<<1)
henryeherman 0:de88dc2515d3 86 #define GWSTATUS0_W4B1 (1<<0)
henryeherman 0:de88dc2515d3 87
henryeherman 0:de88dc2515d3 88 #define GWSTATUS1_LNK15 (1<<15)
henryeherman 0:de88dc2515d3 89 #define GWSTATUS1_LNK14 (1<<14)
henryeherman 0:de88dc2515d3 90 #define GWSTATUS1_LNK13 (1<<13)
henryeherman 0:de88dc2515d3 91 #define GWSTATUS1_LNK12 (1<<12)
henryeherman 0:de88dc2515d3 92 #define GWSTATUS1_LNK11 (1<<11)
henryeherman 0:de88dc2515d3 93 #define GWSTATUS1_LNK10 (1<<10)
henryeherman 0:de88dc2515d3 94 #define GWSTATUS1_LNK9 (1<<9)
henryeherman 0:de88dc2515d3 95 #define GWSTATUS1_LNK8 (1<<8)
henryeherman 0:de88dc2515d3 96 #define GWSTATUS1_LNK7 (1<<7)
henryeherman 0:de88dc2515d3 97 #define GWSTATUS1_LNK6 (1<<6)
henryeherman 0:de88dc2515d3 98 #define GWSTATUS1_LNK5 (1<<5)
henryeherman 0:de88dc2515d3 99 #define GWSTATUS1_LNK4 (1<<4)
henryeherman 0:de88dc2515d3 100 #define GWSTATUS1_LNK3 (1<<3)
henryeherman 0:de88dc2515d3 101 #define GWSTATUS1_LNK2 (1<<2)
henryeherman 0:de88dc2515d3 102 #define GWSTATUS1_LNK1 (1<<1)
henryeherman 0:de88dc2515d3 103 #define GWSTATUS1_LNK0 (1<<0)
henryeherman 0:de88dc2515d3 104
henryeherman 0:de88dc2515d3 105
henryeherman 0:de88dc2515d3 106
henryeherman 0:de88dc2515d3 107 #define AXIS0_BASE_RD 0xF708
henryeherman 0:de88dc2515d3 108 #define AXIS1_BASE_RD 0xF70C
henryeherman 0:de88dc2515d3 109 #define AXIS2_BASE_RD 0xF710
henryeherman 0:de88dc2515d3 110 #define AXIS3_BASE_RD 0xF714
henryeherman 0:de88dc2515d3 111 #define AXIS4_BASE_RD 0xF718
henryeherman 0:de88dc2515d3 112
henryeherman 0:de88dc2515d3 113
henryeherman 0:de88dc2515d3 114 #define POS_GET_LO_OFFSET 0x0
henryeherman 0:de88dc2515d3 115
henryeherman 0:de88dc2515d3 116 #define AXIS0_POS_GET_LO (AXIS0_BASE_RD + POS_GET_LO_OFFSET)
henryeherman 0:de88dc2515d3 117 #define AXIS1_POS_GET_LO (AXIS1_BASE_RD + POS_GET_LO_OFFSET)
henryeherman 0:de88dc2515d3 118 #define AXIS2_POS_GET_LO (AXIS2_BASE_RD + POS_GET_LO_OFFSET)
henryeherman 0:de88dc2515d3 119 #define AXIS3_POS_GET_LO (AXIS3_BASE_RD + POS_GET_LO_OFFSET)
henryeherman 0:de88dc2515d3 120 #define AXIS4_POS_GET_LO (AXIS4_BASE_RD + POS_GET_LO_OFFSET)
henryeherman 0:de88dc2515d3 121
henryeherman 0:de88dc2515d3 122 #define POS_GET_HI_OFFSET 0x1
henryeherman 0:de88dc2515d3 123
henryeherman 0:de88dc2515d3 124 #define AXIS0_POS_GET_HI (AXIS0_BASE_RD + POS_GET_HI_OFFSET)
henryeherman 0:de88dc2515d3 125 #define AXIS1_POS_GET_HI (AXIS1_BASE_RD + POS_GET_HI_OFFSET)
henryeherman 0:de88dc2515d3 126 #define AXIS2_POS_GET_HI (AXIS2_BASE_RD + POS_GET_HI_OFFSET)
henryeherman 0:de88dc2515d3 127 #define AXIS3_POS_GET_HI (AXIS3_BASE_RD + POS_GET_HI_OFFSET)
henryeherman 0:de88dc2515d3 128 #define AXIS4_POS_GET_HI (AXIS4_BASE_RD + POS_GET_HI_OFFSET)
henryeherman 0:de88dc2515d3 129
henryeherman 0:de88dc2515d3 130 #define CMPLT_POS_OFFSET 0x2
henryeherman 0:de88dc2515d3 131
henryeherman 0:de88dc2515d3 132 #define AXIS0_CMPLT_POS (AXIS0_BASE_RD + CMPLT_POS_OFFSET)
henryeherman 0:de88dc2515d3 133 #define AXIS1_CMPLT_POS (AXIS1_BASE_RD + CMPLT_POS_OFFSET)
henryeherman 0:de88dc2515d3 134 #define AXIS2_CMPLT_POS (AXIS2_BASE_RD + CMPLT_POS_OFFSET)
henryeherman 0:de88dc2515d3 135 #define AXIS3_CMPLT_POS (AXIS3_BASE_RD + CMPLT_POS_OFFSET)
henryeherman 0:de88dc2515d3 136 #define AXIS4_CMPLT_POS (AXIS4_BASE_RD + CMPLT_POS_OFFSET)
henryeherman 0:de88dc2515d3 137
henryeherman 0:de88dc2515d3 138 #define STATUS_SIG_OFFSET 0x3
henryeherman 0:de88dc2515d3 139
henryeherman 0:de88dc2515d3 140 #define AXIS0_STATUS_SIG (AXIS0_BASE_RD + STATUS_SIG_OFFSET)
henryeherman 0:de88dc2515d3 141 #define AXIS1_STATUS_SIG (AXIS1_BASE_RD + STATUS_SIG_OFFSET)
henryeherman 0:de88dc2515d3 142 #define AXIS2_STATUS_SIG (AXIS2_BASE_RD + STATUS_SIG_OFFSET)
henryeherman 0:de88dc2515d3 143 #define AXIS3_STATUS_SIG (AXIS3_BASE_RD + STATUS_SIG_OFFSET)
henryeherman 0:de88dc2515d3 144 #define AXIS4_STATUS_SIG (AXIS4_BASE_RD + STATUS_SIG_OFFSET)
henryeherman 0:de88dc2515d3 145
henryeherman 0:de88dc2515d3 146 #define AXIS_STATUS_EMGS (1<<15)
henryeherman 0:de88dc2515d3 147 #define AXIS_STATUS_CRDY (1<<14)
henryeherman 0:de88dc2515d3 148 #define AXIS_STATUS_ZONE1 (1<<13)
henryeherman 0:de88dc2515d3 149 #define AXIS_STATUS_ZONE2 (1<<12)
henryeherman 0:de88dc2515d3 150 #define AXIS_STATUS_PZONE (1<<11)
henryeherman 0:de88dc2515d3 151 #define AXIS_STATUS_MODES (1<<10)
henryeherman 0:de88dc2515d3 152 #define AXIS_STATUS_WEND (1<<9)
henryeherman 0:de88dc2515d3 153 #define AXIS_STATUS_PSFL (1<<5)
henryeherman 0:de88dc2515d3 154 #define AXIS_STATUS_SV (1<<4)
henryeherman 0:de88dc2515d3 155 #define AXIS_STATUS_ALM (1<<3)
henryeherman 0:de88dc2515d3 156 #define AXIS_STATUS_MOVE (1<<2)
henryeherman 0:de88dc2515d3 157 #define AXIS_STATUS_HEND (1<<1)
henryeherman 0:de88dc2515d3 158 #define AXIS_STATUS_PEND (1<<0)
henryeherman 0:de88dc2515d3 159
henryeherman 0:de88dc2515d3 160 #define LINACT_BUFLEN (64)
henryeherman 0:de88dc2515d3 161
henryeherman 0:de88dc2515d3 162 #define TO_HEX(i) (i <= 9 : '0' + i ? 'A' - 10 + i)
henryeherman 0:de88dc2515d3 163
henryeherman 0:de88dc2515d3 164 #endif // end linactregdef