1 .. SPDX-License-Identifier: GPL-2.0 2 3 ================ 4 ADIS16475 driver 5 ================ 6 7 This driver supports Analog Device's IMUs on S 8 9 1. Supported devices 10 ==================== 11 12 * `ADIS16465 <https://www.analog.com/ADIS16465 13 * `ADIS16467 <https://www.analog.com/ADIS16467 14 * `ADIS16470 <https://www.analog.com/ADIS16470 15 * `ADIS16475 <https://www.analog.com/ADIS16475 16 * `ADIS16477 <https://www.analog.com/ADIS16477 17 * `ADIS16500 <https://www.analog.com/ADIS16500 18 * `ADIS16505 <https://www.analog.com/ADIS16505 19 * `ADIS16507 <https://www.analog.com/ADIS16507 20 21 Each supported device is a precision, miniatur 22 (MEMS) inertial measurement unit (IMU) that in 23 triaxial accelerometer. Each inertial sensor i 24 signal conditioning that optimizes dynamic per 25 characterizes each sensor for sensitivity, bia 26 (gyroscope bias), and point of percussion (acc 27 each sensor has dynamic compensation formulas 28 measurements over a broad set of conditions. 29 30 2. Device attributes 31 ==================== 32 33 Accelerometer, gyroscope measurements are alwa 34 driver offers the capability to retrieve the d 35 measurements computed by the device. 36 37 The delta angle measurements represent a calcu 38 between each sample update, while the delta ve 39 calculation of linear velocity change between 40 41 Finally, temperature data are provided which s 42 the temperature inside of the IMU device. This 43 monitoring relative changes in the thermal env 44 45 The signal chain of each inertial sensor (acce 46 includes the application of unique correction 47 extensive characterization of bias, sensitivit 48 acceleration (gyroscopes), and point of percus 49 over a temperature range of −40°C to +85°C 50 correction formulas are not accessible, but us 51 adjust the bias for each sensor individually t 52 53 Each IIO device, has a device folder under ``/ 54 where X is the IIO index of the device. Under 55 device files, depending on the characteristics 56 device in questions. These files are consisten 57 the IIO ABI documentation. 58 59 The following tables show the adis16475 relate 60 specific device folder path ``/sys/bus/iio/dev 61 62 +-------------------------------------------+- 63 | 3-Axis Accelerometer related device files | 64 +-------------------------------------------+- 65 | in_accel_scale | 66 +-------------------------------------------+- 67 | in_accel_x_calibbias | 68 +-------------------------------------------+- 69 | in_accel_x_raw | 70 +-------------------------------------------+- 71 | in_accel_y_calibbias | 72 +-------------------------------------------+- 73 | in_accel_y_raw | 74 +-------------------------------------------+- 75 | in_accel_z_calibbias | 76 +-------------------------------------------+- 77 | in_accel_z_raw | 78 +-------------------------------------------+- 79 | in_deltavelocity_scale | 80 +-------------------------------------------+- 81 | in_deltavelocity_x_raw | 82 +-------------------------------------------+- 83 | in_deltavelocity_y_raw | 84 +-------------------------------------------+- 85 | in_deltavelocity_z_raw | 86 +-------------------------------------------+- 87 88 +---------------------------------------+----- 89 | 3-Axis Gyroscope related device files | Desc 90 +---------------------------------------+----- 91 | in_anglvel_scale | Scal 92 +---------------------------------------+----- 93 | in_anglvel_x_calibbias | Cali 94 +---------------------------------------+----- 95 | in_anglvel_x_raw | Raw 96 +---------------------------------------+----- 97 | in_anglvel_y_calibbias | Cali 98 +---------------------------------------+----- 99 | in_anglvel_y_raw | Raw 100 +---------------------------------------+----- 101 | in_anglvel_z_calibbias | Cali 102 +---------------------------------------+----- 103 | in_anglvel_z_raw | Raw 104 +---------------------------------------+----- 105 | in_deltaangl_scale | Scal 106 +---------------------------------------+----- 107 | in_deltaangl_x_raw | Raw 108 +---------------------------------------+----- 109 | in_deltaangl_y_raw | Raw 110 +---------------------------------------+----- 111 | in_deltaangl_z_raw | Raw 112 +---------------------------------------+----- 113 114 +----------------------------------+---------- 115 | Temperature sensor related files | Descripti 116 +----------------------------------+---------- 117 | in_temp0_raw | Raw tempe 118 +----------------------------------+---------- 119 | in_temp0_scale | Scale for 120 +----------------------------------+---------- 121 122 +-------------------------------+------------- 123 | Miscellaneous device files | Description 124 +-------------------------------+------------- 125 | name | Name of the 126 +-------------------------------+------------- 127 | sampling_frequency | Currently se 128 +-------------------------------+------------- 129 | filter_low_pass_3db_frequency | Bandwidth fo 130 +-------------------------------+------------- 131 132 The following table shows the adis16475 relate 133 specific device debug folder path ``/sys/kerne 134 135 +----------------------+---------------------- 136 | Debugfs device files | Description 137 +----------------------+---------------------- 138 | serial_number | The serial number of 139 +----------------------+---------------------- 140 | product_id | Chip specific product 141 +----------------------+---------------------- 142 | flash_count | The number of flash w 143 +----------------------+---------------------- 144 | firmware_revision | String containing the 145 +----------------------+---------------------- 146 | firmware_date | String containing the 147 +----------------------+---------------------- 148 149 Channels processed values 150 ------------------------- 151 152 A channel value can be read from its _raw attr 153 raw value as reported by the devices. To get t 154 apply the following formula: 155 156 .. code-block:: bash 157 158 processed value = (_raw + _offset) * _ 159 160 Where _offset and _scale are device attributes 161 present, simply assume its value is 0. 162 163 The adis16475 driver offers data for 5 types o 164 the measurement units for the processed value, 165 framework: 166 167 +-------------------------------------+------- 168 | Channel type | Measur 169 +-------------------------------------+------- 170 | Acceleration on X, Y, and Z axis | Meters 171 +-------------------------------------+------- 172 | Angular velocity on X, Y and Z axis | Radian 173 +-------------------------------------+------- 174 | Delta velocity on X. Y, and Z axis | Meters 175 +-------------------------------------+------- 176 | Delta angle on X, Y, and Z axis | Radian 177 +-------------------------------------+------- 178 | Temperature | Millid 179 +-------------------------------------+------- 180 181 Usage examples 182 -------------- 183 184 Show device name: 185 186 .. code-block:: bash 187 188 root:/sys/bus/iio/devices/iio:device0> 189 adis16505-2 190 191 Show accelerometer channels value: 192 193 .. code-block:: bash 194 195 root:/sys/bus/iio/devices/iio:device0> 196 -275924 197 root:/sys/bus/iio/devices/iio:device0> 198 -30142222 199 root:/sys/bus/iio/devices/iio:device0> 200 261265769 201 root:/sys/bus/iio/devices/iio:device0> 202 0.000000037 203 204 - X-axis acceleration = in_accel_x_raw * in_ac 205 - Y-axis acceleration = in_accel_y_raw * in_ac 206 - Z-axis acceleration = in_accel_z_raw * in_ac 207 208 Show gyroscope channels value: 209 210 .. code-block:: bash 211 212 root:/sys/bus/iio/devices/iio:device0> 213 -3324626 214 root:/sys/bus/iio/devices/iio:device0> 215 1336980 216 root:/sys/bus/iio/devices/iio:device0> 217 -602983 218 root:/sys/bus/iio/devices/iio:device0> 219 0.000000006 220 221 - X-axis angular velocity = in_anglvel_x_raw * 222 - Y-axis angular velocity = in_anglvel_y_raw * 223 - Z-axis angular velocity = in_anglvel_z_raw * 224 225 Set calibration offset for accelerometer chann 226 227 .. code-block:: bash 228 229 root:/sys/bus/iio/devices/iio:device0> 230 0 231 232 root:/sys/bus/iio/devices/iio:device0> 233 root:/sys/bus/iio/devices/iio:device0> 234 5000 235 236 Set calibration offset for gyroscope channels: 237 238 .. code-block:: bash 239 240 root:/sys/bus/iio/devices/iio:device0> 241 0 242 243 root:/sys/bus/iio/devices/iio:device0> 244 root:/sys/bus/iio/devices/iio:device0> 245 -5000 246 247 Set sampling frequency: 248 249 .. code-block:: bash 250 251 root:/sys/bus/iio/devices/iio:device0> 252 2000.000000 253 254 root:/sys/bus/iio/devices/iio:device0> 255 1000.000000 256 257 Set bandwidth for accelerometer and gyroscope: 258 259 .. code-block:: bash 260 261 root:/sys/bus/iio/devices/iio:device0> 262 720 263 264 root:/sys/bus/iio/devices/iio:device0> 265 root:/sys/bus/iio/devices/iio:device0> 266 360 267 268 Show serial number: 269 270 .. code-block:: bash 271 272 root:/sys/kernel/debug/iio/iio:device0 273 0x04f9 274 275 Show product id: 276 277 .. code-block:: bash 278 279 root:/sys/kernel/debug/iio/iio:device0 280 16505 281 282 Show flash count: 283 284 .. code-block:: bash 285 286 root:/sys/kernel/debug/iio/iio:device0 287 150 288 289 Show firmware revision: 290 291 .. code-block:: bash 292 293 root:/sys/kernel/debug/iio/iio:device0 294 1.6 295 296 Show firmware date: 297 298 .. code-block:: bash 299 300 root:/sys/kernel/debug/iio/iio:device0 301 06-27-2019 302 303 3. Device buffers 304 ================= 305 306 This driver supports IIO buffers. 307 308 All devices support retrieving the raw acceler 309 measurements using buffers. 310 311 The following device families also support ret 312 angle and temperature measurements using buffe 313 314 - ADIS16477 315 - ADIS16500 316 - ADIS16505 317 - ADIS16507 318 319 However, when retrieving acceleration or gyros 320 readings will not be available and vice versa. 321 322 Usage examples 323 -------------- 324 325 Set device trigger in current_trigger, if not 326 327 .. code-block:: bash 328 329 root:/sys/bus/iio/devices/iio:device0> 330 331 root:/sys/bus/iio/devices/iio:device0> 332 root:/sys/bus/iio/devices/iio:device0> 333 adis16505-2-dev0 334 335 Select channels for buffer read: 336 337 .. code-block:: bash 338 339 root:/sys/bus/iio/devices/iio:device0> 340 root:/sys/bus/iio/devices/iio:device0> 341 root:/sys/bus/iio/devices/iio:device0> 342 root:/sys/bus/iio/devices/iio:device0> 343 344 Set the number of samples to be stored in the 345 346 .. code-block:: bash 347 348 root:/sys/bus/iio/devices/iio:device0> 349 350 Enable buffer readings: 351 352 .. code-block:: bash 353 354 root:/sys/bus/iio/devices/iio:device0> 355 356 Obtain buffered data: 357 358 .. code-block:: bash 359 360 root:/sys/bus/iio/devices/iio:device0> 361 ... 362 00001680 01 1f 00 00 ff ff fe ef 00 363 00001690 01 1f 00 00 ff ff ff d9 00 364 000016a0 01 1f 00 00 ff ff fe fc 00 365 000016b0 01 1f 00 00 ff ff fe 41 00 366 000016c0 01 1f 00 00 ff ff fe 37 00 367 000016d0 01 1d 00 00 ff ff fe 5a 00 368 000016e0 01 1b 00 00 ff ff fe fb 00 369 000016f0 01 1a 00 00 ff ff ff 17 00 370 00001700 01 1a 00 00 ff ff fe 59 00 371 00001710 01 1a 00 00 ff ff fe ae 00 372 00001720 01 1a 00 00 ff ff fe c5 00 373 00001730 01 1a 00 00 ff ff fe 55 00 374 00001740 01 1a 00 00 ff ff fe 31 00 375 ... 376 377 See ``Documentation/iio/iio_devbuf.rst`` for m 378 data is structured. 379 380 4. IIO Interfacing Tools 381 ======================== 382 383 See ``Documentation/iio/iio_tools.rst`` for th 384 interfacing tools.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.