|
| 1 | +EVAL-ADXL355-PMDZ no-OS Example Project |
| 2 | +======================================= |
| 3 | + |
| 4 | +.. contents:: |
| 5 | + :depth: 3 |
| 6 | + |
| 7 | +Supported Evaluation Boards |
| 8 | +--------------------------- |
| 9 | + |
| 10 | +- :adi:`EVAL-ADXL355-PMDZ` |
| 11 | + |
| 12 | +Overview |
| 13 | +-------- |
| 14 | + |
| 15 | +The EVAL-ADXL355-PMDZ is an accelerometer evaluation board designed for |
| 16 | +high precision and low power consumption in a 3-axis MEMS configuration. |
| 17 | +It offers selectable measurement ranges of ±2g, ±4g, and ±8g, catering |
| 18 | +to various applications including inertial measurement units and |
| 19 | +structural health monitoring. Powered by a 3.3V host board supply, it |
| 20 | +supports up to 100 mA current and offers interrupt management through |
| 21 | +programmable interrupt and data-ready pins connected via an SPI PMOD |
| 22 | +header. Compatible with both no-OS and Linux drivers, the board allows |
| 23 | +for flexible integration. It is designed for stability and reliability, |
| 24 | +featuring guaranteed temperature stability and hermetic packaging. |
| 25 | + |
| 26 | +Applications |
| 27 | +------------ |
| 28 | + |
| 29 | +- Inertial measurement units (IMUs)/attitude and heading reference |
| 30 | + systems (AHRSs) |
| 31 | +- Platform stabilization systems |
| 32 | +- Structural health monitoring |
| 33 | +- Seismic imaging |
| 34 | +- Tilt sensing |
| 35 | +- Robotics |
| 36 | +- Condition monitoring |
| 37 | + |
| 38 | +Hardware Specifications |
| 39 | +------------------------ |
| 40 | + |
| 41 | +Power Supply Requirements |
| 42 | +~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 43 | + |
| 44 | +The EVAL-ADXL355-PMDZ evaluation board operates with a power supply of |
| 45 | +3.3V from a host board, consuming up to 100 mA of current. This |
| 46 | +specification supports its functions as a precision 3-axis accelerometer |
| 47 | +with selectable measurement ranges of ±2g, ±4g, and ±8g. Adequate power |
| 48 | +management ensures its stability and reliability, important features |
| 49 | +given its usage in applications like inertial measurement units and |
| 50 | +structural health monitoring. |
| 51 | + |
| 52 | +Digital Communication Pins |
| 53 | +~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 54 | + |
| 55 | +========== =================== ======== |
| 56 | +Pin Number Pin Function Mnemonic |
| 57 | +1 Chip Select CS |
| 58 | +2 Master Out Slave In MOSI |
| 59 | +3 Master In Slave Out MISO |
| 60 | +4 Serial Clock SCLK |
| 61 | +5 Digital Ground DGND |
| 62 | +6 Digital Power VDD |
| 63 | +7 Interrupt 1 INT1 |
| 64 | +8 Not Connected NC |
| 65 | +9 Interrupt 2 INT2 |
| 66 | +10 Data Ready DRDY |
| 67 | +11 Digital Ground DGND |
| 68 | +12 Digital Power VDD |
| 69 | +========== =================== ======== |
| 70 | + |
| 71 | +No-OS Build Setup |
| 72 | +----------------- |
| 73 | + |
| 74 | +Please see: `https://wiki.analog.com/resources/no-os/build` |
| 75 | + |
| 76 | +No-OS Supported Examples |
| 77 | +------------------------ |
| 78 | + |
| 79 | +The EVAL-ADXL355-PMDZ no-OS project supports several examples tailored |
| 80 | +for different configurations and platforms. These include the |
| 81 | +“dummy_example” for basic continuous data reading from the ADXL355 |
| 82 | +sensor, the “iio_example” using the Industrial I/O (IIO) framework for |
| 83 | +standardized sensor interfacing, and the “iio_trigger_example” for |
| 84 | +triggered data acquisition. These examples are organized in sections |
| 85 | +within the ``builds.json`` file, supporting platforms like STM32, Maxim, |
| 86 | +Pico, and ADUCM3029. |
| 87 | + |
| 88 | +The initialization data used in the examples is taken out from the |
| 89 | +`Project Common Data Path <https://github.com/analogdevicesinc/no-OS/tree/main/projects/eval-adxl355-pmdz/src/common>`__ |
| 90 | + |
| 91 | +The macros used in Common Data are defined in platform specific files |
| 92 | +found in the |
| 93 | +`Project Platform Configuration Path <https://github.com/analogdevicesinc/no-OS/tree/main/projects/eval-adxl355-pmdz/src/platform>`__ |
| 94 | + |
| 95 | +Dummy example |
| 96 | +~~~~~~~~~~~~~~ |
| 97 | + |
| 98 | +The ``dummy_example`` code in the no-OS project for the EVAL-ADXL355-PMDZ |
| 99 | +evaluates the basic operation of the ADXL355 accelerometer. It |
| 100 | +initializes the UART interface and the ADXL355 sensor, setting the |
| 101 | +sensor to measurement mode with a defined output data rate. It |
| 102 | +continuously reads the x, y, and z axis accelerometer data, formats it, |
| 103 | +and outputs via UART. The example also periodically accesses the |
| 104 | +sensor’s FIFO buffer to gather multiple data sets in one cycle. This |
| 105 | +simple yet effective loop showcases real-time data capture without added |
| 106 | +complexity. |
| 107 | + |
| 108 | +In order to build the dummy example, make sure you have the following |
| 109 | +configuration in the Makefile: |
| 110 | + |
| 111 | +.. code-block:: bash |
| 112 | +
|
| 113 | + # Select the example you want to enable by choosing y for enabling and n for disabling |
| 114 | + DUMMY_EXAMPLE = y |
| 115 | + IIO_EXAMPLE = n |
| 116 | + IIO_TRIGGER_EXAMPLE = n |
| 117 | +
|
| 118 | +IIO example |
| 119 | +~~~~~~~~~~~~ |
| 120 | + |
| 121 | +The IIO example code for the EVAL-ADXL355-PMDZ integrates with the |
| 122 | +Industrial I/O (IIO) framework to manage sensor interfacing, enabling |
| 123 | +the setup of a generic IIO device service for the ADXL355 accelerometer. |
| 124 | +It initializes the sensor with relevant SPI and UART parameters, sets up |
| 125 | +data buffers, and configures hardware parameters to facilitate real-time |
| 126 | +data acquisition. The code includes initialization of the IIO |
| 127 | +application, device descriptors, and communication interfaces, launching |
| 128 | +the IIO application to allow user interaction via an IIO client. |
| 129 | + |
| 130 | +The IIO demo is a standard example, provided in most `no-OS |
| 131 | +projects <https://github.com/analogdevicesinc/no-OS/tree/main/projects>`__, |
| 132 | +that launches an IIOD server on the board so that the user may connect |
| 133 | +to it via an IIO client. Using the IIO Oscilloscope application, users |
| 134 | +can access device settings like sampling frequency, scaling, and offsets |
| 135 | +efficiently. |
| 136 | + |
| 137 | +If you are not familiar with ADI IIO Application, please take a look at: |
| 138 | +`IIO No-OS <https://wiki.analog.com/resources/tools-software/no-os-software/iio>`__. |
| 139 | + |
| 140 | +If you are not familiar with ADI IIO Oscilloscope Client, please take a |
| 141 | +look at: |
| 142 | +`IIO Oscilloscope <https://wiki.analog.com/resources/tools-software/linux-software/iio_oscilloscope>`__. |
| 143 | + |
| 144 | +To build the IIOD demo, add the following flag when invoking make. This |
| 145 | +will build the IIOD server and the IIO section of the driver: |
| 146 | + |
| 147 | +.. code-block:: bash |
| 148 | +
|
| 149 | + # Select the example you want to enable by choosing y for enabling and n for disabling |
| 150 | + DUMMY_EXAMPLE = n |
| 151 | + IIO_EXAMPLE = y |
| 152 | + IIO_TRIGGER_EXAMPLE = n |
| 153 | +
|
| 154 | +IIO Trigger Example |
| 155 | +~~~~~~~~~~~~~~~~~~~ |
| 156 | + |
| 157 | +The ``iio_trigger_example`` code demonstrates a triggered data |
| 158 | +acquisition using the IIO framework. It initializes the ADXL355 |
| 159 | +accelerometer, sets up an interrupt-driven GPIO trigger, and configures |
| 160 | +hardware components for data capture. The GPIO trigger is responsive to |
| 161 | +rising edge events, ensuring precise timing for data sampling when an |
| 162 | +interrupt signal occurs. This setup includes a list of IIO devices and |
| 163 | +triggers, which are initialized by the IIO application for continuous |
| 164 | +operation, resulting in efficient and consistent data acquisition. This |
| 165 | +method reduces power consumption by waking the system only when data is |
| 166 | +available, optimizing the data collection process. |
| 167 | + |
| 168 | +.. code-block:: bash |
| 169 | +
|
| 170 | + # Select the example you want to enable by choosing y for enabling and n for disabling |
| 171 | + DUMMY_EXAMPLE = n |
| 172 | + IIO_EXAMPLE = n |
| 173 | + IIO_TRIGGER_EXAMPLE = y |
| 174 | +
|
| 175 | +No-OS Supported Platforms |
| 176 | +------------------------- |
| 177 | + |
| 178 | +- ADuCM |
| 179 | +- Maxim |
| 180 | +- STM32 |
| 181 | +- Raspberry Pi Pico |
| 182 | + |
| 183 | +ADuCM Platform |
| 184 | +~~~~~~~~~~~~~~~ |
| 185 | + |
| 186 | +Hardware Used |
| 187 | +^^^^^^^^^^^^^ |
| 188 | + |
| 189 | +- :adi:`EVAL-ADXL355-PMDZ` |
| 190 | +- :adi:`EVAL-ADICUP3029` |
| 191 | + |
| 192 | +Build Command |
| 193 | +^^^^^^^^^^^^^ |
| 194 | + |
| 195 | +.. code-block:: bash |
| 196 | +
|
| 197 | + export PLATFORM=aducm3029 |
| 198 | + # to build the project |
| 199 | + make |
| 200 | + # to flash the code |
| 201 | + make run |
| 202 | +
|
| 203 | +Connections |
| 204 | +^^^^^^^^^^^ |
| 205 | + |
| 206 | +- The EVAL-ADICUP3029 has a PMOD interface, so simply connect the |
| 207 | + EVAL-ADXL355-PMDZ through the PMOD connector. |
| 208 | + |
| 209 | +Maxim Platform |
| 210 | +~~~~~~~~~~~~~~ |
| 211 | + |
| 212 | +Hardware Used |
| 213 | +^^^^^^^^^^^^^ |
| 214 | + |
| 215 | +- :adi:`EVAL-ADXL355-PMDZ` |
| 216 | +- :adi:`MAX32655FTHR` |
| 217 | + |
| 218 | +Connections |
| 219 | +^^^^^^^^^^^ |
| 220 | + |
| 221 | +For connecting the EVAL-ADXL355-PMDZ to the MAX32655 using Dupont |
| 222 | +male-female cables, the following pin configuration is critical for the |
| 223 | +SPI interface: |
| 224 | + |
| 225 | ++-----------------+-----------------+-----------------+-----------------+ |
| 226 | +| EVAL-ADXL355 | MAX32655FTHR | Function | Description | |
| 227 | ++-----------------+-----------------+-----------------+-----------------+ |
| 228 | +| Pin 1 | SS0 | Chip Select | Initiates | |
| 229 | +| | | (CS) | communication | |
| 230 | +| | | | with sensor | |
| 231 | ++-----------------+-----------------+-----------------+-----------------+ |
| 232 | +| Pin 2 | MOSI | Master Out | Transfers data | |
| 233 | +| | | Slave In (MOSI) | from MAX32655 | |
| 234 | +| | | | to ADXL355 | |
| 235 | ++-----------------+-----------------+-----------------+-----------------+ |
| 236 | +| Pin 3 | MISO | Master In Slave | Receives data | |
| 237 | +| | | Out (MISO) | from ADXL355 | |
| 238 | ++-----------------+-----------------+-----------------+-----------------+ |
| 239 | +| Pin 4 | SCLK | Serial Clock | Synchronizes | |
| 240 | +| | | (SCLK) | the data | |
| 241 | +| | | | transmission | |
| 242 | ++-----------------+-----------------+-----------------+-----------------+ |
| 243 | +| Pin 5 | GND | Digital Ground | Provides common | |
| 244 | +| | | (DGND) | ground | |
| 245 | +| | | | reference | |
| 246 | ++-----------------+-----------------+-----------------+-----------------+ |
| 247 | +| Pin 6 | POWER | 3.3V (VDD) | Supplies power | |
| 248 | +| | | | to the sensor | |
| 249 | ++-----------------+-----------------+-----------------+-----------------+ |
| 250 | +| Pin 10 | P1_9 | Data Ready | Indicates new | |
| 251 | +| | | (DRDY) | data is | |
| 252 | +| | | | available | |
| 253 | ++-----------------+-----------------+-----------------+-----------------+ |
| 254 | + |
| 255 | +STM32 Platform |
| 256 | +~~~~~~~~~~~~~~ |
| 257 | + |
| 258 | +Hardware Used |
| 259 | +^^^^^^^^^^^^^^ |
| 260 | + |
| 261 | +- :adi:`EVAL-ADXL355-PMDZ` |
| 262 | +- :adi:`SDP-K1` |
| 263 | +- STM32 debugger |
| 264 | + |
| 265 | +Connections |
| 266 | +^^^^^^^^^^^ |
| 267 | + |
| 268 | +To connect the EVAL-ADXL355-PMDZ accelerometer evaluation board with |
| 269 | +the SDP-K1, use Dupont male-female cables, given that the SDP-K1 does |
| 270 | +not come with a native PMOD interface. The table below details the |
| 271 | +specific pin connections required: |
| 272 | + |
| 273 | ++-----------------+-----------------+-----------------+-----------------+ |
| 274 | +| EVAL-ADXL355 | SDP-K1 Pin | Function | Mnemonic | |
| 275 | ++-----------------+-----------------+-----------------+-----------------+ |
| 276 | +| Pin 1 | DIGITAL 10 | Chip Select | CS | |
| 277 | ++-----------------+-----------------+-----------------+-----------------+ |
| 278 | +| Pin 2 | DIGITAL 11 | Master Out | MOSI | |
| 279 | +| | | Slave In | | |
| 280 | ++-----------------+-----------------+-----------------+-----------------+ |
| 281 | +| Pin 3 | DIGITAL 12 | Master In Slave | MISO | |
| 282 | +| | | Out | | |
| 283 | ++-----------------+-----------------+-----------------+-----------------+ |
| 284 | +| Pin 4 | DIGITAL 13 | Serial Clock | SCLK | |
| 285 | ++-----------------+-----------------+-----------------+-----------------+ |
| 286 | +| Pin 5 | DIGITAL GND | Digital Ground | DGND | |
| 287 | ++-----------------+-----------------+-----------------+-----------------+ |
| 288 | +| Pin 6 | POWER 3.3V | Digital Power | VDD | |
| 289 | ++-----------------+-----------------+-----------------+-----------------+ |
| 290 | +| Pin 10 | ANALOG IN A0 | Data Ready | DRDY | |
| 291 | ++-----------------+-----------------+-----------------+-----------------+ |
| 292 | + |
| 293 | +**Note:** It is crucial to set the ``VIO_ADJUST`` on the SDP-K1 to 3.3V |
| 294 | +to match the operating voltage of the EVAL-ADXL355-PMDZ board. |
| 295 | + |
| 296 | +-------------- |
| 297 | + |
| 298 | +Raspberry Pi Pico |
| 299 | +~~~~~~~~~~~~~~~~~ |
| 300 | + |
| 301 | +Hardware Used |
| 302 | +^^^^^^^^^^^^^ |
| 303 | + |
| 304 | +- EVAL-ADXL355-PMDZ |
| 305 | +- Raspberry Pi Pico |
| 306 | + |
| 307 | +Connections |
| 308 | +^^^^^^^^^^^ |
| 309 | + |
| 310 | +The following table provides pin connections when using Dupont cables to |
| 311 | +interface the EVAL-ADXL355-PMDZ evaluation board with a Raspberry Pi |
| 312 | +Pico: |
| 313 | + |
| 314 | ++------------------+------------------+------------------+----------+ |
| 315 | +| EVAL-ADXL355 | Raspberry Pico | Function | Mnemonic | |
| 316 | ++------------------+------------------+------------------+----------+ |
| 317 | +| Pin 1 | GP17 | Chip Select | CS | |
| 318 | ++------------------+------------------+------------------+----------+ |
| 319 | +| Pin 2 | GP19 | Master Out Slave | MOSI | |
| 320 | +| | | In (MOSI) | | |
| 321 | ++------------------+------------------+------------------+----------+ |
| 322 | +| Pin 3 | GP16 | Master In Slave | MISO | |
| 323 | +| | | Out (MISO) | | |
| 324 | ++------------------+------------------+------------------+----------+ |
| 325 | +| Pin 4 | GP18 | Serial Clock | SCLK | |
| 326 | ++------------------+------------------+------------------+----------+ |
| 327 | +| Pin 5 | GND | Digital Ground | DGND | |
| 328 | ++------------------+------------------+------------------+----------+ |
| 329 | +| Pin 6 | 3.3V | Digital Power | VDD | |
| 330 | ++------------------+------------------+------------------+----------+ |
| 331 | +| Pin 10 | GP20 | Data Ready | DRDY | |
| 332 | ++------------------+------------------+------------------+----------+ |
| 333 | + |
| 334 | +Ensure connections are accurately made to maintain the operational |
| 335 | +integrity of the accelerometer when interfaced with the Raspberry Pi |
| 336 | +Pico. |
| 337 | + |
| 338 | +Build Command |
| 339 | +^^^^^^^^^^^^^ |
| 340 | + |
| 341 | +**Note: When invoking the make command, ensure to specify the platform |
| 342 | +you are building the project for (e.g., make TARGET=Maxim)** |
| 343 | + |
| 344 | +.. code-block:: bash |
| 345 | +
|
| 346 | + # to delete current build |
| 347 | + make reset |
| 348 | + # to build the project |
| 349 | + make |
| 350 | + # to flash the code |
| 351 | + make run |
0 commit comments