MA35D1 SPI总线使用问题

cwlin0 |浏览112次
收藏|2023/12/22 13:36

需要使用spi2接ADXL345设备。不清楚驱动如何配置,应用程序如何调用驱动测试?

满意回答

2023/12/22 13:43

1、修改ma35d1-iot-512m.dts如下,增加spidev0的配置。

&spi2 {

    status = "okay";

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_spi2>;

    

    spidev2: spi@0 {

        compatible = "adi,adxl345";

        reg = <0>;

        spi-max-frequency = <5000000>;

    };

};

kernel menuconfig配置中再打开“User mode SPI device driver support ”,产生spidev0.0设备节点。

 Device Drivers > SPI support ><*> User mode SPI device driver support

2、使用buildroot中的spidev_test应用程序来测试。进入make menuconfig

Target packages → Debugging, profiling and benchmark → [*] spidev_test

3、短接SPI2的MOSI和MISO,测试结果TX和RX的数据一样。

# spidev_test -D /dev/spidev2.0 -v -p 1234

spi mode: 0x0

bits per word: 8

max speed: 500000 Hz (500 KHz)

TX | 31 32 33 34 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ | 1234

RX | 31 32 33 34 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ | 1234

#

4. 将MA35 SP2接上adxl345(三轴加速度传感器),MA35 spi2读到的数据不对,用逻辑分析仪分析,spi2配置的mode不对,adxl345协议使用的是spi mode3,spi2默认配置是mode0,如下修改ma35d1.dtsi,配置spi2为mode3,能与adxl345正常通信。

spi2: spi@40620000 {

   ...

   spimode = <3>;

   ...

};


nuvoton2022

其他回答(0)
0人关注该问题
+1
 加载中...