54zw 发表于 2017-5-6 18:29:16

Firefly_RK3399 W25Q128FV SPI 驱动

本帖最后由 54zw 于 2017-5-23 13:11 编辑

之前发过一片文章W25Q128FV SPI 读ID不稳定

后来发现是由于没有将HOLD拉高导致,所以需要将HOLD拉高即可,这点在官网wiki中没有提到

不过在调试过程中发现官网wiki写的不是太理想,重新写了一个(关键地方有说明,其它看firefly wiki即可),地址在这里rk3399 spi porting

其中对两个地方解释下,firefly的代码也能使用,但是配置的bus number不是太合适,导致内核看到的信息和实际的不一致

一个是bus_num的配置

一个是reg片选的配置


LZD 发表于 2017-9-11 20:50:02

楼主,我使用3399 7.1系统,然后直接使用spidev_test 测试,硬件上直接短接spi1的tx和rx。测试结果发现接收的全是0。dtsi里面根据你说的修改后的&spi1 {
        status = "okay";
        max-freq = <48000000>;
        dev-port = <1>;

        spidev0: spidev@10 {
                status = "okay";
                compatible = "linux,spidev";
                reg = <0x00>;
                spi-max-frequency = <48000000>;
        };
};
短接spi1测试,结果还是不正常。 显示如下:
# ./test_spi -D /dev/spidev0.0                                                   <
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 KHz)
RX | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00| ................................

不知道哪里没注意到,还请赐教。。。

54zw 发表于 2017-9-12 20:13:21

LZD 发表于 2017-9-11 20:50
楼主,我使用3399 7.1系统,然后直接使用spidev_test 测试,硬件上直接短接spi1的tx和rx。测试结果发现接收 ...

如果没有接实际设备,可以用示波器抓下信号,把CS也抓下

LZD 发表于 2017-9-13 13:40:32

54zw 发表于 2017-9-12 20:13
如果没有接实际设备,可以用示波器抓下信号,把CS也抓下

嗯,谢谢,已找到原因。spi1 和 uart4 复用了。之前没注意到。
页: [1]
查看完整版本: Firefly_RK3399 W25Q128FV SPI 驱动