ESCPI1-SPIDEV0-CLK_CS_MOSI_MISO pin voltage issue "Linux 3.14.52"

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ESCPI1-SPIDEV0-CLK_CS_MOSI_MISO pin voltage issue "Linux 3.14.52"

1,263 Views
vis
Contributor I

Hi IMx Friends,

I was trying to interface a transceiver module to the imx6 dual lite using the SPI protocol.

Here with the Pin mux Details:

From IOMUX Tool :

pastedImage_0.png

From my  imxqdl_my.dtsi file :

&ecspi1 {

        fsl,spi-num-chipselects = <1>;

        cs-gpios = <&gpio5 25 GPIO_ACTIVE_HIGH>;

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_ecspi1>;

        status = "okay";

        spidev@0 {

               compatible = "spidev";

               spi-max-frequency = <100000>;

               reg = <0>;

        };

};

pinctrl_ecspi1: ecspi1grp {

                        fsl,pins = <

                                MX6QDL_PAD_CSI0_DAT6__ECSPI1_MISO       0x100b1

                                MX6QDL_PAD_CSI0_DAT5__ECSPI1_MOSI       0x100b1

                                MX6QDL_PAD_CSI0_DAT4__ECSPI1_SCLK       0x100b1

                                /*MX6QDL_PAD_CSI0_DAT7__ECSPI1_SS0      0x100b1*/

                                MX6QDL_PAD_CSI0_DAT7__GPIO5_IO25        0x000b1

                        >;

                };

Note: The imx6dl works at 3.3volt and the transceiver works at 1.8 volts.

With the above setting when i run my SPI test application, here are the probe results of the SPI_MOSI , SPI_MISO, SPI_CLK , SPI_CS as attached below .

The problem is :

ECSPI_SS0 chip select never pulls down( its stays at 1.8 volts as shown in the attached SPI_CS figure) when the IMx6 assert the MOSI and MISO lines.

I only see my data of ECSPI_MOSI from imx6 to transceiver coming as shown in the SPI_MOSI figure.

I only see ECSPI_MISO line goes from 0 to 0.2 volt .

I only See ECSPI_SCLK clock only comes when i run the application that to the amplitude of the signal goes up to 0.4 volts .

Can anyone please guide me how to make my SPI Communication block working between iMx6dl to transceiver  and drive the SPI pins?

Thanks,

Vishal

Labels (3)
0 Kudos
2 Replies

775 Views
sharddhabhalera
Contributor I

Hello,

I have a similar situation as of Vishal.

Could you please post a bit detailed solution or something like a step by step process on how to use spi?

I am using a eeprom to test spi.

On command  "dmesg | grep -spi" i get ,

         spi_imx  2008000.ecspi : probes

         spi_imx : probe of 2018000.ecspi failed with error -22

         spidev spi 0.0 : setup unsupported mode bits 20

         spidev spi 0.0 : setup unsupported mode bits 20

         spidev spi 0.0 : setup unsupported mode bits 20

on command modprobe spidev i do not get any return not even an error

my dtsi file is as follows :

&ecspi1 {

        fsl,spi-num-chipselects = <0>;

        cs-gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_ecspi1>;

        status = "okay";

 

        spidev@0 {

               compatible = "spidev";

               spi-max-frequency = <20000000>;

               reg = <0>;

        };

}

Can anyone please guide me on what might be wrong or how to approach on debugging the spi problem.

Best Regards,

Shraddha

0 Kudos

775 Views
igorpadykov
NXP Employee
NXP Employee

Hi Vishal

for i.MX6DL it is necessary to use level shifter when peripheral chip is 1.8V

and processor gpio is powered with 3.3V. I am afraid there are no other options

and this can not be configured with software.

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos