Firefly开源社区

标题: PX3SE开发板SPI不能收发数据 [打印本页]

作者: caolingfeng    时间: 2018-6-26 11:47
标题: PX3SE开发板SPI不能收发数据
我用的是PX3SE开发板,按照开发资料所写配置DTS,如下:在DTS中添加SPI驱动结点描述,如下所示: kernel/arch/arm/boot/dts/rk3128-fireprime.dts
&spi0 {
         status = "okay";                                                                                                   
         max-freq = <24000000>;
         spidev@01 {                                                                                                         
                 compatible = "rockchip,spi_firefly";
                 reg = <0x01>;
                 spi-max-frequency = <14000000>;
                 spi-cpha = <1>;
                 spi-cpol = <1>;
         };
};
配置为片选CS1,SPI_MODE3,参考kernel/drivers/spi/spidev.c 及网页上的驱动代码编写驱动,编译成功程序成功进入probe函数,/dev目录下可看到创建的设备节点,但运行spidev_test.c测试程序,无法收发数据,劳烦帮忙,看是什么问题
作者: Livvol    时间: 2018-6-26 14:32
多看看datasheet和原理图。
spi和uart1是复用,要把uart1关掉。
spi时钟和片选脚分别被蓝牙和WiFi复用,软硬件都需要做处理,可暂时关掉。
作者: caolingfeng    时间: 2018-6-26 15:55
Livvol 发表于 2018-6-26 14:32
多看看datasheet和原理图。
spi和uart1是复用,要把uart1关掉。
spi时钟和片选脚分别被蓝牙和WiFi复用, ...

还有一个问题想请教一下,&spi0表示引用节点spi0,不知spi0节点在那个文件中有定义,请多指教
作者: caolingfeng    时间: 2018-6-26 15:56
Livvol 发表于 2018-6-26 14:32
多看看datasheet和原理图。
spi和uart1是复用,要把uart1关掉。
spi时钟和片选脚分别被蓝牙和WiFi复用, ...

还有一个问题想请教一下,&spi0表示引用节点spi0,不知spi0节点在那个文件中有定义,请多指教
作者: caolingfeng    时间: 2018-6-26 15:57
Livvol 发表于 2018-6-26 14:32
多看看datasheet和原理图。
spi和uart1是复用,要把uart1关掉。
spi时钟和片选脚分别被蓝牙和WiFi复用, ...

还有一个问题想请教一下,&spi0表示引用节点spi0,不知spi0节点在那个文件中有定义,请多指教
作者: caolingfeng    时间: 2018-6-26 15:57
Livvol 发表于 2018-6-26 14:32
多看看datasheet和原理图。
spi和uart1是复用,要把uart1关掉。
spi时钟和片选脚分别被蓝牙和WiFi复用, ...

还有一个问题想请教一下,&spi0表示引用节点spi0,不知spi0节点在那个文件中有定义,请多指教
作者: Livvol    时间: 2018-6-26 16:37
caolingfeng 发表于 2018-6-26 15:57
还有一个问题想请教一下,&spi0表示引用节点spi0,不知spi0节点在那个文件中有定义,请多指教

rk312x.dtsi
作者: Livvol    时间: 2018-6-26 16:39
caolingfeng 发表于 2018-6-26 15:57
还有一个问题想请教一下,&spi0表示引用节点spi0,不知spi0节点在那个文件中有定义,请多指教

kernel/arch/arm/boot/dts/rk312x.dtsi
作者: caolingfeng    时间: 2018-6-26 16:49
Livvol 发表于 2018-6-26 16:39
kernel/arch/arm/boot/dts/rk312x.dtsi

多谢了!
作者: caolingfeng    时间: 2018-6-26 16:50
Livvol 发表于 2018-6-26 16:39
kernel/arch/arm/boot/dts/rk312x.dtsi

多谢了
作者: caolingfeng    时间: 2018-6-26 16:51
Livvol 发表于 2018-6-26 16:39
kernel/arch/arm/boot/dts/rk312x.dtsi

多谢了
作者: caolingfeng    时间: 2018-6-28 12:22
我t-firefly的网上只找到核心板的原理图,没有整个主板的原理图,麻烦能不能提供一下主板的原理图,以便实现SPI数据通信,
我用的是spi0--mux0,片选:CS1,gpio口分别为:SPI_CLK--->GPIO1_B0,SPI_TXD--->GPIO1_B1,SPI_RXD--->GPIO1_B2,SPI_CSN1--->GPIO1_B4
gpio1_spi0 {
                        spi0_txd_mux0:spi0-txd-mux0 {
                                rockchip,pins = <SPI0_TXD_MUX0>;
                                rockchip,pull = <VALUE_PULL_DEFAULT>;
                               
                        };



                        spi0_rxd_mux0:spi0-rxd-mux0 {
                                rockchip,pins = <SPI0_RXD_MUX0>;
                                rockchip,pull = <VALUE_PULL_DEFAULT>;
                               
                        };

                        spi0_clk_mux0:spi0-clk-mux0 {
                                rockchip,pins = <SPI0_CLK_MUX0>;
                                rockchip,pull = <VALUE_PULL_DEFAULT>;
                               
                        };

                       
                        spi0_cs1_mux0:spi0-cs1-mux0 {
                                rockchip,pins = <SPI0_CS1_MUX0>;
                                rockchip,pull = <VALUE_PULL_DEFAULT>;
                               
                        };
在arch\arm\boot\dts\pxpx3se-fireprime.dts文件中发现,spi0的TXD和RXD和蓝牙有复用,BT,wake_gpio = <&gpio1 GPIO_B2 GPIO_ACTIVE_HIGH>;
                BT,wake_host_irq = <&gpio1 GPIO_B1 GPIO_ACTIVE_HIGH>;wifi暂时还没发现有复用的引脚如下所示:
wireless-bluetooth {
                compatible = "bluetooth-platdata";
                //wifi-bt-power-toggle;
                //keep_bt_power_on;
                uart_rts_gpios = <&gpio0 GPIO_C1 GPIO_ACTIVE_LOW>;
                pinctrl-names = "default","rts_gpio";
                pinctrl-0 = <&uart0_rts>;
                pinctrl-1 = <&uart0_rts_gpio>;
                //BT,power_gpio = <&gpio1 GPIO_B3 GPIO_ACTIVE_HIGH>;
                BT,reset_gpio = <&gpio1 GPIO_A3 GPIO_ACTIVE_HIGH>;
                BT,wake_gpio = <&gpio1 GPIO_B2 GPIO_ACTIVE_HIGH>;
                BT,wake_host_irq = <&gpio1 GPIO_B1 GPIO_ACTIVE_HIGH>;
                status = "okay";
        };

wireless-wlan {
                compatible = "wlan-platdata";

                wifi_chip_type = "bcmwifi";
                sdio_vref = <3300>; /*1800mv or 3300mv*/
                /* WIFI_HOST_WAKE = GPIO0_A2 */
                WIFI,host_wake_irq = <&gpio0 GPIO_A2 GPIO_ACTIVE_HIGH>;
                /* WIFI_REG_ON  = GPIO1_B3 */
                WIFI,poweren_gpio  = <&gpio1 GPIO_B3 GPIO_ACTIVE_HIGH>;

                status = "okay";
        };
麻烦帮忙确认一下软件部分是不是,把蓝牙和wifi功能禁用就可以了,还需提供一下主板原理图以便修改硬件部分,多谢了!
作者: Livvol    时间: 2018-7-2 09:35
caolingfeng 发表于 2018-6-28 12:22
我t-firefly的网上只找到核心板的原理图,没有整个主板的原理图,麻烦能不能提供一下主板的原理图,以便实 ...

官网已经更新了原理图。




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1