Skip to content

Commit 90c29ff

Browse files
committed
projects: eval-adxl355-pmdz: Added readme doc
Signed-off-by: Joyce Velasco <[email protected]>
1 parent 78703a5 commit 90c29ff

File tree

3 files changed

+360
-0
lines changed

3 files changed

+360
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.. include:: ../../../../../projects/eval-adxl355-pmdz/README.rst

doc/sphinx/source/projects_doc.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ ADC / DAC
2020

2121
projects/adc-dac/*
2222

23+
ACCELEROMETERS
24+
==============
25+
.. toctree::
26+
:maxdepth: 1
27+
:glob:
28+
29+
projects/accel/*
30+
2331
FREQUENCY GENERATORS
2432
====================
2533
.. toctree::
Lines changed: 351 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,351 @@
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

Comments
 (0)