Code for the mbed NXP LPC1768 To be used on The Robot Studio Slave Boards License : Simplified BSD

Dependencies:   mbed

Committer:
therobotstudio
Date:
Wed Feb 11 16:18:15 2015 +0000
Revision:
6:8a0250a4877a
Parent:
4:396433e30e64
v1.0.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
therobotstudio 6:8a0250a4877a 1 /*
therobotstudio 6:8a0250a4877a 2 * Copyright (c) 2013, The Robot Studio
therobotstudio 6:8a0250a4877a 3 * All rights reserved.
therobotstudio 6:8a0250a4877a 4 *
therobotstudio 6:8a0250a4877a 5 * Redistribution and use in source and binary forms, with or without
therobotstudio 6:8a0250a4877a 6 * modification, are permitted provided that the following conditions are met:
therobotstudio 6:8a0250a4877a 7 *
therobotstudio 6:8a0250a4877a 8 * * Redistributions of source code must retain the above copyright notice, this
therobotstudio 6:8a0250a4877a 9 * list of conditions and the following disclaimer.
therobotstudio 6:8a0250a4877a 10 *
therobotstudio 6:8a0250a4877a 11 * * Redistributions in binary form must reproduce the above copyright notice,
therobotstudio 6:8a0250a4877a 12 * this list of conditions and the following disclaimer in the documentation
therobotstudio 6:8a0250a4877a 13 * and/or other materials provided with the distribution.
therobotstudio 6:8a0250a4877a 14 *
therobotstudio 6:8a0250a4877a 15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
therobotstudio 6:8a0250a4877a 16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
therobotstudio 6:8a0250a4877a 17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
therobotstudio 6:8a0250a4877a 18 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
therobotstudio 6:8a0250a4877a 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
therobotstudio 6:8a0250a4877a 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
therobotstudio 6:8a0250a4877a 21 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
therobotstudio 6:8a0250a4877a 22 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
therobotstudio 6:8a0250a4877a 23 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
therobotstudio 6:8a0250a4877a 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
therobotstudio 6:8a0250a4877a 25 *
therobotstudio 6:8a0250a4877a 26 * Created on: Feb 27, 2013
therobotstudio 6:8a0250a4877a 27 * Author: Cyril Jourdan (cyril.jourdan@therobotstudio.com)
therobotstudio 6:8a0250a4877a 28 */
therobotstudio 6:8a0250a4877a 29
rrknight 0:18d7499b82f3 30 #ifndef REGISTERS_H
rrknight 0:18d7499b82f3 31 #define REGISTERS_H
rrknight 0:18d7499b82f3 32
rrknight 0:18d7499b82f3 33 //Registers file based on MAXON EPOS2 Firmware Specification
rrknight 0:18d7499b82f3 34
rrknight 0:18d7499b82f3 35 /*** Communication ***/
rrknight 0:18d7499b82f3 36 //Node IDs (FS 7.1)
rrknight 0:18d7499b82f3 37 #define NODE_ID_BROADCAST 0x00
rrknight 0:18d7499b82f3 38
rrknight 0:18d7499b82f3 39 //Network Management (FS 7.3)
rrknight 0:18d7499b82f3 40 #define CAN_NMT_ID 0x00
rrknight 0:18d7499b82f3 41 #define CS_ENTER_PRE_OPERATIONAL 0x80
rrknight 0:18d7499b82f3 42 #define CS_RESET_COMMUNICATION 0x82
rrknight 0:18d7499b82f3 43 #define CS_RESET_NODE 0x81
rrknight 0:18d7499b82f3 44 #define CS_START_REMOTE_NODE 0x01
rrknight 0:18d7499b82f3 45 #define CS_STOP_REMOTE_NODE 0x02
rrknight 0:18d7499b82f3 46
rrknight 0:18d7499b82f3 47 //Application Notes 10.4.1 Expedited SDO Protocol
rrknight 0:18d7499b82f3 48 //Writing Object Table 10-141
rrknight 0:18d7499b82f3 49 #define WRITING_OBJECT_1_BYTE 0x2F
rrknight 0:18d7499b82f3 50 #define WRITING_OBJECT_2_BYTE 0x2B
rrknight 0:18d7499b82f3 51 #define WRITING_OBJECT_4_BYTE 0x23
rrknight 0:18d7499b82f3 52 #define WRITING_OBJECT_NOT_DEFINED 0x22
rrknight 0:18d7499b82f3 53
rrknight 0:18d7499b82f3 54 //COB-ID of Emergency Object (FS 8.2.12)
rrknight 0:18d7499b82f3 55 #define COB_ID_EMCY_INDEX 0x1014
rrknight 0:18d7499b82f3 56 #define COB_ID_EMCY_SUBINDEX 0x00
rrknight 0:18d7499b82f3 57 #define COB_ID_EMCY_DEFAULT 0x00000080
rrknight 0:18d7499b82f3 58
rrknight 0:18d7499b82f3 59 //SDO Server Parameter (FS 8.2.17)
rrknight 0:18d7499b82f3 60 #define COB_ID_SDO_INDEX 0x1200
rrknight 0:18d7499b82f3 61 #define COB_ID_SDO_CLIENT_TO_SERVER_SUBINDEX 0x01
rrknight 0:18d7499b82f3 62 #define COB_ID_SDO_CLIENT_TO_SERVER_DEFAULT 0x00000600
rrknight 0:18d7499b82f3 63 #define COB_ID_SDO_SERVER_TO_CLIENT_SUBINDEX 0x02
rrknight 0:18d7499b82f3 64 #define COB_ID_SDO_SERVER_TO_CLIENT_DEFAULT 0x00000580
rrknight 0:18d7499b82f3 65
rrknight 0:18d7499b82f3 66 //PDOs
rrknight 0:18d7499b82f3 67 //Receive PDO 1 Parameter (FS 8.2.18)
rrknight 0:18d7499b82f3 68 #define RECEIVE_PDO_1_PARAMETER_INDEX 0x1400
rrknight 0:18d7499b82f3 69 #define COB_ID_RECEIVE_PDO_1_SUBINDEX 0x01
rrknight 0:18d7499b82f3 70 #define COB_ID_RECEIVE_PDO_1_ENABLE 0x00000200
rrknight 0:18d7499b82f3 71 #define COB_ID_RECEIVE_PDO_1_DISABLE 0xC0000200
rrknight 0:18d7499b82f3 72 #define TRANSMISSION_TYPE_RECEIVE_PDO_1_SUBINDEX 0x02
rrknight 0:18d7499b82f3 73
rrknight 0:18d7499b82f3 74 //Receive PDO 2 Parameter (FS 8.2.19)
rrknight 0:18d7499b82f3 75 #define RECEIVE_PDO_2_PARAMETER_INDEX 0x1401
rrknight 0:18d7499b82f3 76 #define COB_ID_RECEIVE_PDO_2_SUBINDEX 0x01
rrknight 0:18d7499b82f3 77 #define COB_ID_RECEIVE_PDO_2_ENABLE 0x00000300
rrknight 0:18d7499b82f3 78 #define COB_ID_RECEIVE_PDO_2_DISABLE 0xC0000300
rrknight 0:18d7499b82f3 79 #define TRANSMISSION_TYPE_RECEIVE_PDO_2_SUBINDEX 0x02
rrknight 0:18d7499b82f3 80
rrknight 0:18d7499b82f3 81 //Receive PDO 3 Parameter (FS 8.2.20)
rrknight 0:18d7499b82f3 82 #define RECEIVE_PDO_3_PARAMETER_INDEX 0x1402
rrknight 0:18d7499b82f3 83 #define COB_ID_RECEIVE_PDO_3_SUBINDEX 0x01
rrknight 0:18d7499b82f3 84 #define COB_ID_RECEIVE_PDO_3_ENABLE 0x00000400
rrknight 0:18d7499b82f3 85 #define COB_ID_RECEIVE_PDO_3_DISABLE 0xC0000400
rrknight 0:18d7499b82f3 86 #define TRANSMISSION_TYPE_RECEIVE_PDO_3_SUBINDEX 0x02
rrknight 0:18d7499b82f3 87
rrknight 0:18d7499b82f3 88 //Receive PDO 4 Parameter (FS 8.2.21)
rrknight 0:18d7499b82f3 89 #define RECEIVE_PDO_4_PARAMETER_INDEX 0x1403
rrknight 0:18d7499b82f3 90 #define COB_ID_RECEIVE_PDO_4_SUBINDEX 0x01
rrknight 0:18d7499b82f3 91 #define COB_ID_RECEIVE_PDO_4_ENABLE 0x00000500
rrknight 0:18d7499b82f3 92 #define COB_ID_RECEIVE_PDO_4_DISABLE 0xC0000500
rrknight 0:18d7499b82f3 93 #define TRANSMISSION_TYPE_RECEIVE_PDO_4_SUBINDEX 0x02
rrknight 0:18d7499b82f3 94
rrknight 0:18d7499b82f3 95 //Receive PDO 1 Mapping (FS 8.2.22)
rrknight 0:18d7499b82f3 96 #define MAPPED_OBJECT_RECEIVE_PDO_1_INDEX 0x1600
rrknight 0:18d7499b82f3 97
rrknight 0:18d7499b82f3 98 //Receive PDO 2 Mapping (FS 8.2.23)
rrknight 0:18d7499b82f3 99 #define MAPPED_OBJECT_RECEIVE_PDO_2_INDEX 0x1601
rrknight 0:18d7499b82f3 100
rrknight 0:18d7499b82f3 101 //Receive PDO 3 Mapping (FS 8.2.24)
rrknight 0:18d7499b82f3 102 #define MAPPED_OBJECT_RECEIVE_PDO_3_INDEX 0x1602
rrknight 0:18d7499b82f3 103
rrknight 0:18d7499b82f3 104 //Receive PDO 4 Mapping (FS 8.2.25)
rrknight 0:18d7499b82f3 105 #define MAPPED_OBJECT_RECEIVE_PDO_4_INDEX 0x1603
rrknight 0:18d7499b82f3 106
rrknight 0:18d7499b82f3 107 #define NUMBER_OBJECTS_RECEIVE_PDO_SUBINDEX 0x00
rrknight 0:18d7499b82f3 108 #define MAPPED_OBJECT_1_RECEIVE_PDO_SUBINDEX 0x01
rrknight 0:18d7499b82f3 109 #define MAPPED_OBJECT_2_RECEIVE_PDO_SUBINDEX 0x02
rrknight 0:18d7499b82f3 110 #define MAPPED_OBJECT_3_RECEIVE_PDO_SUBINDEX 0x03
rrknight 0:18d7499b82f3 111 #define MAPPED_OBJECT_4_RECEIVE_PDO_SUBINDEX 0x04
rrknight 0:18d7499b82f3 112 #define MAPPED_OBJECT_5_RECEIVE_PDO_SUBINDEX 0x05
rrknight 0:18d7499b82f3 113 #define MAPPED_OBJECT_6_RECEIVE_PDO_SUBINDEX 0x06
rrknight 0:18d7499b82f3 114 #define MAPPED_OBJECT_7_RECEIVE_PDO_SUBINDEX 0x07
rrknight 0:18d7499b82f3 115 #define MAPPED_OBJECT_8_RECEIVE_PDO_SUBINDEX 0x08
rrknight 0:18d7499b82f3 116
rrknight 0:18d7499b82f3 117 //Receive PDO Mapping Objects (FS 8.2.22)
rrknight 0:18d7499b82f3 118 #define OBJECT_MOTOR_TYPE 0x64020010
rrknight 0:18d7499b82f3 119 #define OBJECT_POLE_PAIR_NUMBER 0x64100308
rrknight 0:18d7499b82f3 120 #define OBJECT_MAXIMAL_MOTOR_SPEED 0x64100420
rrknight 0:18d7499b82f3 121 #define OBJECT_MAXIMAL_PROFILE_VELOCITY 0x607F0020
rrknight 0:18d7499b82f3 122 #define OBJECT_MAXIMAL_ACCELERATION 0x60C50020
rrknight 0:18d7499b82f3 123 #define OBJECT_THERMAL_TIME_CONSTANT_WINDING 0x64100510
rrknight 0:18d7499b82f3 124 #define OBJECT_CURRENT_MODE_SETTING_VALUE 0x20300010
rrknight 0:18d7499b82f3 125 #define OBJECT_POSITION_MODE_SETTING_VALUE 0x20620020
rrknight 0:18d7499b82f3 126 #define OBJECT_VELOCITY_MODE_SETTING_VALUE 0x206B0020
rrknight 0:18d7499b82f3 127 #define OBJECT_TARGET_POSITION 0x607A0020
rrknight 0:18d7499b82f3 128 #define OBJECT_CONTROLWORD 0x60400010
rrknight 0:18d7499b82f3 129 #define OBJECT_MODE_OF_OPERATION 0x60600008
rrknight 0:18d7499b82f3 130 #define OBJECT_MAXIMAL_FOLLOWING_ERROR 0x60650020
rrknight 0:18d7499b82f3 131 #define OBJECT_PROFILE_VELOCITY 0x60810020
rrknight 0:18d7499b82f3 132 #define OBJECT_PROFILE_ACCELERATION 0x60830020
rrknight 0:18d7499b82f3 133 #define OBJECT_PROFILE_DECELERATION 0x60840020
rrknight 0:18d7499b82f3 134 #define OBJECT_QUICKSTOP_DECELERATION 0x60850020
rrknight 0:18d7499b82f3 135 #define OBJECT_MOTION_PROFILE_TYPE 0x60860010
rrknight 0:18d7499b82f3 136 #define OBJECT_MISCELLANEOUS_CONFIGURATION 0x20080010
rrknight 0:18d7499b82f3 137 #define OBJECT_STORE_PARAMETERS 0x10100120
rrknight 0:18d7499b82f3 138
rrknight 0:18d7499b82f3 139 //Objects values
rrknight 0:18d7499b82f3 140 #define BRUSHED_DC_MOTOR 0x0001
rrknight 0:18d7499b82f3 141 #define SAVE_ALL 0x65766173
rrknight 0:18d7499b82f3 142
rrknight 0:18d7499b82f3 143 //Transmit PDO 1 Parameter (FS 8.2.26)
rrknight 0:18d7499b82f3 144 #define TRANSMIT_PDO_1_PARAMETER_INDEX 0x1800
rrknight 0:18d7499b82f3 145 #define COB_ID_TRANSMIT_PDO_1_SUBINDEX 0x01
rrknight 0:18d7499b82f3 146 #define COB_ID_TRANSMIT_PDO_1_ENABLE 0x00000180
rrknight 0:18d7499b82f3 147 #define COB_ID_TRANSMIT_PDO_1_DISABLE 0xC0000180
rrknight 0:18d7499b82f3 148 #define TRANSMISSION_TYPE_TRANSMIT_PDO_1_SUBINDEX 0x02
rrknight 0:18d7499b82f3 149 #define INHIBIT_TIME_TRANSMIT_PDO_1_SUBINDEX 0x03
rrknight 0:18d7499b82f3 150
rrknight 0:18d7499b82f3 151 //Transmit PDO 2 Parameter (FS 8.2.27)
rrknight 0:18d7499b82f3 152 #define TRANSMIT_PDO_2_PARAMETER_INDEX 0x1801
rrknight 0:18d7499b82f3 153 #define COB_ID_TRANSMIT_PDO_2_SUBINDEX 0x01
rrknight 0:18d7499b82f3 154 #define COB_ID_TRANSMIT_PDO_2_ENABLE 0x00000280
rrknight 0:18d7499b82f3 155 #define COB_ID_TRANSMIT_PDO_2_DISABLE 0xC0000280
rrknight 0:18d7499b82f3 156 #define TRANSMISSION_TYPE_TRANSMIT_PDO_2_SUBINDEX 0x02
rrknight 0:18d7499b82f3 157 #define INHIBIT_TIME_TRANSMIT_PDO_2_SUBINDEX 0x03
rrknight 0:18d7499b82f3 158
rrknight 0:18d7499b82f3 159 //Transmit PDO 3 Parameter (FS 8.2.28)
rrknight 0:18d7499b82f3 160 #define TRANSMIT_PDO_3_PARAMETER_INDEX 0x1802
rrknight 0:18d7499b82f3 161 #define COB_ID_TRANSMIT_PDO_3_SUBINDEX 0x01
rrknight 0:18d7499b82f3 162 #define COB_ID_TRANSMIT_PDO_3_ENABLE 0x00000380
rrknight 0:18d7499b82f3 163 #define COB_ID_TRANSMIT_PDO_3_DISABLE 0xC0000380
rrknight 0:18d7499b82f3 164 #define TRANSMISSION_TYPE_TRANSMIT_PDO_3_SUBINDEX 0x02
rrknight 0:18d7499b82f3 165 #define INHIBIT_TIME_TRANSMIT_PDO_3_SUBINDEX 0x03
rrknight 0:18d7499b82f3 166
rrknight 0:18d7499b82f3 167 //Transmit PDO 4 Parameter (FS 8.2.29)
rrknight 0:18d7499b82f3 168 #define TRANSMIT_PDO_4_PARAMETER_INDEX 0x1803
rrknight 0:18d7499b82f3 169 #define COB_ID_TRANSMIT_PDO_4_SUBINDEX 0x01
rrknight 0:18d7499b82f3 170 #define COB_ID_TRANSMIT_PDO_4_ENABLE 0x00000480
rrknight 0:18d7499b82f3 171 #define COB_ID_TRANSMIT_PDO_4_DISABLE 0xC0000480
rrknight 0:18d7499b82f3 172 #define TRANSMISSION_TYPE_TRANSMIT_PDO_4_SUBINDEX 0x02
rrknight 0:18d7499b82f3 173 #define INHIBIT_TIME_TRANSMIT_PDO_4_SUBINDEX 0x03
rrknight 0:18d7499b82f3 174
rrknight 0:18d7499b82f3 175 //Transmit parameter values
rrknight 0:18d7499b82f3 176 #define PARAM_TRANSMISSION_TYPE_SYNC 0x01
rrknight 0:18d7499b82f3 177 #define PARAM_TRANSMISSION_TYPE_RTR 0xFD
rrknight 0:18d7499b82f3 178 #define PARAM_TRANSMISSION_TYPE_ASYNC 0xFF
rrknight 0:18d7499b82f3 179
rrknight 0:18d7499b82f3 180 //Transmit PDO 1 Mapping (FS 8.2.30)
rrknight 0:18d7499b82f3 181 #define MAPPED_OBJECT_TRANSMIT_PDO_1_INDEX 0x1A00
rrknight 0:18d7499b82f3 182
rrknight 0:18d7499b82f3 183 //Transmit PDO 2 Mapping (FS 8.2.31)
rrknight 0:18d7499b82f3 184 #define MAPPED_OBJECT_TRANSMIT_PDO_2_INDEX 0x1A01
rrknight 0:18d7499b82f3 185
rrknight 0:18d7499b82f3 186 //Transmit PDO 3 Mapping (FS 8.2.32)
rrknight 0:18d7499b82f3 187 #define MAPPED_OBJECT_TRANSMIT_PDO_3_INDEX 0x1A02
rrknight 0:18d7499b82f3 188
rrknight 0:18d7499b82f3 189 //Transmit PDO 4 Mapping (FS 8.2.33)
rrknight 0:18d7499b82f3 190 #define MAPPED_OBJECT_TRANSMIT_PDO_4_INDEX 0x1A03
rrknight 0:18d7499b82f3 191
rrknight 0:18d7499b82f3 192 #define NUMBER_OBJECTS_TRANSMIT_PDO_SUBINDEX 0x00
rrknight 0:18d7499b82f3 193 #define MAPPED_OBJECT_1_TRANSMIT_PDO_SUBINDEX 0x01
rrknight 0:18d7499b82f3 194 #define MAPPED_OBJECT_2_TRANSMIT_PDO_SUBINDEX 0x02
rrknight 0:18d7499b82f3 195 #define MAPPED_OBJECT_3_TRANSMIT_PDO_SUBINDEX 0x03
rrknight 0:18d7499b82f3 196 #define MAPPED_OBJECT_4_TRANSMIT_PDO_SUBINDEX 0x04
rrknight 0:18d7499b82f3 197 #define MAPPED_OBJECT_5_TRANSMIT_PDO_SUBINDEX 0x05
rrknight 0:18d7499b82f3 198 #define MAPPED_OBJECT_6_TRANSMIT_PDO_SUBINDEX 0x06
rrknight 0:18d7499b82f3 199 #define MAPPED_OBJECT_7_TRANSMIT_PDO_SUBINDEX 0x07
rrknight 0:18d7499b82f3 200 #define MAPPED_OBJECT_8_TRANSMIT_PDO_SUBINDEX 0x08
rrknight 0:18d7499b82f3 201
rrknight 0:18d7499b82f3 202 //Transmit PDO Mapping Objects (FS 8.2.30)
rrknight 0:18d7499b82f3 203 #define OBJECT_INC_ENCODER1_COUNTER_INDEX_PULSE 0x20210010
rrknight 0:18d7499b82f3 204 #define OBJECT_POSITION_ACTUAL_VALUE 0x60640020
rrknight 0:18d7499b82f3 205 #define OBJECT_VELOCITY_ACTUAL_VALUE 0x606C0020
rrknight 0:18d7499b82f3 206 #define OBJECT_CURRENT_ACTUAL_VALUE 0x60780010
rrknight 0:18d7499b82f3 207 #define OBJECT_VELOCITY_ACTUAL_VALUE_AVERAGED 0x20280020
rrknight 0:18d7499b82f3 208 #define OBJECT_CURRENT_ACTUAL_VALUE_AVERAGED 0x20270010
rrknight 0:18d7499b82f3 209 #define OBJECT_ANALOG_INPUT_1 0x207C0110
rrknight 0:18d7499b82f3 210 #define OBJECT_STATUSWORD 0x60410010
rrknight 4:396433e30e64 211 #define OBJECT_HOME_POSITION 0x20810020
rrknight 0:18d7499b82f3 212
rrknight 0:18d7499b82f3 213 //OTHER OBJECTS INDEXES
rrknight 0:18d7499b82f3 214 #define OBJECT_MODE_OF_OPERATION_INDEX 0x6060
rrknight 0:18d7499b82f3 215 #define OBJECT_MODE_OF_OPERATION_SUBINDEX 0x00
rrknight 0:18d7499b82f3 216 #define VALUE_PROFILE_POSITION_MODE 0x01
rrknight 0:18d7499b82f3 217 #define VALUE_POSITION_MODE 0xFF
rrknight 0:18d7499b82f3 218 #define VALUE_VELOCITY_MODE 0xFE
rrknight 0:18d7499b82f3 219 #define VALUE_CURRENT_MODE 0xFD
rrknight 0:18d7499b82f3 220
rrknight 0:18d7499b82f3 221
rrknight 0:18d7499b82f3 222 #endif //REGISTERS_H