JetsonNano开发板ADXL357关于SPI、I2C、GPIO的使用记录

购买了ADI的ADXL357测试板,用于采集X/Y/X三轴的加速度。

ADXL357特性如下:

  1. 支持I2C,SPI协议;
  2. 其它见文档;

一、I2C

Jenson Nano板卡上有两个I2C总线,将SDA,SCL直接连线后,通过jetson nano中自带的i2cdetect/i2cdump/i2cget/i2cset即可检测到ADXL357的设备ID是0x01。

然后按照datesheet,将其init至测量模式后,即可然后按照正常操作读取数据结果。

参考连接:

https://github.com/linux-downey/jetson_nano_demo_kit_example/blob/master/grove_3_axis_accelerometer_adxl372.py  下载:jetson-nano-demo-kit-example-master

https://ez.analog.com/cn/mems/f/q-a/99023/adxl357

优点:连线简单、但速度上限仅3Mb/S左右,上限传输速度决定仅能在一个I2C总线上挂在3个ADXL357传感器;(3路20位ADC)

二、SPI

Jetson Nano上自带两个SPI总线,但Jetson默认未将Linux Kernal中的DTS设备树种挂在SPI总线,因此需要手动使能SPI总线。

使能SPI总线后,即可在/dev/分区下看到总线号与设备号。

后将SCL/MOSI/MISO/CS1连接至Jetson Nano 对应GPIO口。

使用Python的spcdev包连接SPI总线后,可以正常读取到x/y/z三轴的及速度,并且经过测试每秒可以读取10K次,且数据不重复,完全达到了ADXL采样率的上限。

参考连接:

《JetsonNano使用DC电源接口》:https://devtalk.nvidia.com/default/topic/1048640/jetson-nano/power-supply-considerations-for-jetson-nano-developer-kit/

《JetsonNano使能SPI总线》:https://github.com/rt-net/JetsonNano_DT_SPI

《使用python连接adxl345》:https://github.com/pimoroni/adxl345-python  下载连接:adxl345-python-master

《raspberrypi-adxl345》:https://github.com/nuclearfutureslab/adxl355-pi  下载连接:adxl355-pi-master

《树莓派2B调试SPI接口》:https://www.mobibrw.com/2018/13291

《Raspberry Pi 筆記(20):MCP3008 讀取類比訊號測溫度與光度》:https://atceiling.blogspot.com/2014/04/raspberry-pi-mcp3008.html#.Ve01WXvG6JU

优点:传输速度快,ADXL357最大速度为10Mb/s。

缺点:接线复杂,多个传感器时需要物理CS片选;

三、GPIO

使用python3 Jetson.GPIO库之后,可以正常操作GPIO满足正常需求。

参考连接:

https://github.com/NVIDIA/jetson-gpio

四、ADXL357

已知经验如下:

  1. 通讯正常时,z方向有1g的默认加速度,当转动adxl357传感器时,会将加速度分担之x,y轴向;
  2. 若加速度传感器完全静止,则可以根据x,y,z三轴的加速度解出其x,y,z三轴的角度姿态;

4人评论了“JetsonNano开发板ADXL357关于SPI、I2C、GPIO的使用记录”

    1. 我收到的数据是正常的,Z方向会有1G的标准加速度,其它都比较正常。

  1. 抱歉我沒有說清楚,我的意思是透過spidev去調整max_speed_Hz確實可以提高讀取速率。
    但是她取樣頻率上升並沒有與max_speed_Hz設定的數值成比例。
    且想請問一下,您收到的數值是否會突然變高或變低。
    謝謝

评论区已关闭。