Spi@c260000 slave not working on jetson agx orin

I want to use spi1 as a slave but, it was not working.

Here is my spi@c260000 configuration and pinmux


This is “dmesg | grep spi”
image

lastly, The full dmesg content is as follows.
dmesg.txt (71.1 KB)

Please, tell me your solution.
Thank you :)

Hi lewis15,

Are you using the devkit or custom board for AGX Orin?
What’s your Jetpack version in use?

For SPI slave, could you configure the pinmux as following?

spi2_sck_pcc0 {
    nvidia,pins = "spi2_sck_pcc0";
    nvidia,function = "spi2";
    nvidia,pull = <TEGRA_PIN_PULL_NONE>;
    nvidia,tristate = <TEGRA_PIN_ENABLE>;
    nvidia,enable-input = <TEGRA_PIN_ENABLE>;
    nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
    nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

spi2_miso_pcc1 {
    nvidia,pins = "spi2_miso_pcc1";
    nvidia,function = "spi2";
    nvidia,pull = <TEGRA_PIN_PULL_NONE>;
    nvidia,tristate = <TEGRA_PIN_DISABLE>;
    nvidia,enable-input = <TEGRA_PIN_DISABLE>;
    nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
    nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

spi2_mosi_pcc2 {
    nvidia,pins = "spi2_mosi_pcc2";
    nvidia,function = "spi2";
    nvidia,pull = <TEGRA_PIN_PULL_NONE>;
    nvidia,tristate = <TEGRA_PIN_ENABLE>;
    nvidia,enable-input = <TEGRA_PIN_ENABLE>;
    nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
    nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

spi2_cs0_pcc3 {
    nvidia,pins = "spi2_cs0_pcc3";
    nvidia,function = "spi2";
    nvidia,pull = <TEGRA_PIN_PULL_NONE>;
    nvidia,tristate = <TEGRA_PIN_ENABLE>;
    nvidia,enable-input = <TEGRA_PIN_ENABLE>;
    nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
    nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

May I also know how do you verify SPI slave for SPI2?
(i.e. what’s your SPI master? how do you connect them?)

Hi Kevin,

Are you using the devkit or custom board for AGX Orin?
What’s your Jetpack version in use?

  • I’m using for custom board. also I’m using Jetpack version in 5.1.2.

May I also know how do you verify SPI slave for SPI2?
(i.e. what’s your SPI master? how do you connect them?)

  • My SPI master is MCU. They connect they connect by pass the Level Shifter.
    Pin connect is MCU SCK ↔ AP SCK, MCU MISO ↔ AP MISO, MCU MOSI ↔ AP MOSI, MCU CS0 ↔ AP CS0
  • Here is my circuit diagram

-Level Shifter


-AP

-MCU
image

Hi kevin,

I modified pinmux as you suggested. but, SPI isn’t working.

It seems your SPI master at MCU side using 3.3V but the default level for SPI2 is 1.8V.
Please also add a level shift for SPI2 for 3.3V SPI signal.

The level shift is two-way, so it doesn’t matter.

I will suggest you confirming you use the same level for both SPI master and slave.
Does your SPI2 still not work as slave?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.