This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5728:SPIDEV 测试失败

Guru**** 2544960 points
Other Parts Discussed in Thread: AM5728

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/600285/linux-am5728-spidev-test-fails

器件型号:AM5728

工具/软件:Linux

尊敬的 TI 专家:

我想测试 AM5728 IDK 板的 SPI 接口、我已经配置了 spidev 驱动程序、可以获取 SPI 器件。

详情如下:

在 am57xx-beagle-x15.dts 中:

cs3_pins_default:spi3_pins_default{
pinctrl-single、pins =<
0x2d4 (PIN_input | MUX_MODE3)/* mccspi3_SCLK_spiIO6_30 *
/ 0x2d8 (PIN_input | MUX_MODE3)/* mcspi3_SCLK/spi0* pio30* 0x3_mspi0_mspi0_mspi0_m3_mspi0_mspi0*
(PIN_mc3_mspi0_mspi0_m3_mspi0_mspi0_mspi0_m3_mspi0_mspi0_mspi0_mspi0_mspi0_mspi0_mspi0_m3*)/mspi0_mspi0_mspi_





状态="确定";
pinctrl-names ="默认值";
pinctrl-0 =<&spi3_pins_default>;
/*ti,pid-d1-in=<1>;*/
spidev@0 {
兼容="Rohm,dh2228fv";
SPI-max-frequency =<24000000>;
reg =<0>;
};
}; 

配置:

#
# SPI 协议主器
#
CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_TLE62X0未设置
# CONFIG_SPMI 未设置
# CONFIG_HSI 未设置 

测试期间:

root@am57xx-EVM:~/temp#./spidev_test -D /dev/spidev1.0
[ 85.502933] Nemo spidev_open
[ 85.505842] Nemo spidev_ioctl:cmd SPI_Ioc_WR_mode
[ 85.510893] Nemo spioctl:cmd SPI_Ioc_ioc_i_ev_i_ioctl:
0x5962_n_spi_spi_d_spioc_mode_bits



:0x524_d_e_d_e_e80_spi20_spi20_spi20_spi20_d_spi20_spi20_spi20_spi20_spi20_spi20_spi20_spi20_spi20_d_spi20_spi20_d_spi20_spi20_spi20_spi_
500000Hz (500KHz)
[85.532895] Nemo spiDEV_message
[85.541795] Nemo spiDEV TX_buffer:
[85.545297] Nemo spiDEV RX_buffer:
[85.548800] Nemo xfer len 32 Rx TX 8位0 usec 500000Hz
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | [85e

我已连接 mcspi3_miso 和 mcspi3_mosi、并使用 spidev_test 测试 spidev 驱动程序。 它不会从 up 测试结果中从 spidev 驱动程序获取任何数据。

问题是什么? 您能在这里提出一些建议吗?

非常感谢!

Nemo



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    在/dev/?中是否看到任何其它 spidev*节点? 内核文档显示/dev/spidevB.C、其中 B 是总线、C 是 Chipselect。 我假设您的案例是/dev/spidev3.x
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Dwarakesh、  

    我在/dev/dev 中看到了 spidev1.0。 我不确定 B 是总线。 例如、我使用了 mcspi3、 总线编号应该是3?

    对于我的设备树:

    mcspi3{(&M)
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&spi3_pins_default>;
    /*ti,pwindir-do-out-d1-in =<1>;*/
    spidev@0{
    兼容="Rohm、dh2228fv";
    SPI-max-frequency =<24000000>;
    reg =<0>;
    } 


    如何写入器件树以映射 SPI 总线3?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您的特定于 spidev 的设备树条目似乎没有问题。 您能否检查与 pinmux 相关的信息? 我是否可以知道正在连接什么 SPI 设备?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您使用的是哪个 SDK (内核)版本?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!

    我使用了最新的 SDK。 Linux 内核4.4.4.41。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    查看您正在配置的 dt 节点和注释、MOSI 作为输出、MISO 作为输入、在这种情况下、您还需要在 mcspi3节点中具有以下行、

    TI、pidd-d0-out-d1-in;

    此外,还可以对 clk 和数据引脚进行检查,看看是否有什么东西?

    谢谢、
    Prabhakar LAD
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、谢谢、
    我只是测试 SPI 本身、我连接了电路板中的 MOSI 和 MISO 引脚、结果显示为向上。 这就是我遇到的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    即使将引脚 MOSI 和 MISO 短接(/connect)、mcspi3节点中也应包含"ti、pid-d0-out-d1-in"。

    谢谢、
    Prabhakar LAD
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    好的、请检查 Prabhakar 的建议。

    此外、请确保 SPI3_D0和 SPI3_D1的焊球编号与您尝试配置的引脚相匹配。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prabhakar、您好!
    非常感谢您的反馈。 我之前已经测试过、但它不起作用。
    /*ti,pwindir-do-out-d1-in =<1>;*/
    然后我检查该注释、它应该是"ti、pidd-d0-out-d1-in"、我犯了一个错误"do"、而不是"d0"。
    是的、在方向设定后、它现在对我有效。
    root@am57xx-EVM:~/temp#./spidev_test
    [56.071108] Nemo spidev_open
    [56.074015] Nemo spidev_ioctl:cmd SPI_IOC_WR_MODE
    [56.080458] Nemo spidev_ioctl:cmd SPI_IOC_RD_MODE32
    [56.085445] Nemo spidev_ioctl:cmd SPI_IOC_WR_bits_per_word
    [56.102226] Nemo spidev_ioctl:cmd SPI_IOC_RD_bits_per_word
    [56.107824] Nemo spidev_ioctl:cmd SPI_IOC_WR_MAX_SPEED_Hz
    [56.114793] Nemo spidev_ioctl:cmd SPI_IOC_RD_MAX_SPED_Hz
    SPI 模式:0x0
    每字位数:8.
    最大速度:500000Hz (500KHz)
    RX | FF FF FF FF FF FF FF FF 40 00 00 00 95 FF FF FF FF FF FF FF FF FF fe