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/AM3358:无法使用 IOCTL 从 SPI 读取数据

Guru**** 2538930 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/757097/linux-am3358-unable-to-read-data-from-spi-using-ioctl

器件型号:AM3358

工具/软件:Linux

我尝试通过 SPI 1从 FRAM 读取数据。 我已将代码打印为相同代码。 我能够在 CRO 上获得正确的制造 ID、但无法从驱动程序和应用程序获取数据。 它始终显示0x00。  

下面是我的设备树。

AM33XX_IOPAD (0x190、PIN_INPUT_PULLUP | MUX_MODE3)/*(A13) McASP0_aclkx.SPI1_SCLK *
AM33XX_IOPAD (0x194、PIN_INPUT_PULLUP | MUX_MODE3)/*(B13) McASP0_FSX.SPI1_d0 *
AM33XX_IOPAD (0x198、PIN_OUTPUT | MUX_MODE3)/*(D12) McASP0_axr0.SPI1_D1 *
AM33XX_IOPAD (0x19c、PIN_OUTPUT | MUX_MODE3)/*(C12) McASP0_ahclkr.SPI1_cs0 *

下面是我用于读取制造商 ID 的代码。

UINT8 TXZ[1]={0};
uint8 rxz[1]={0};

memset (TXZ、0、sizeof TXZ);
memset (rxz,0,sizeof rxz);
memset (xfer,0,sizeof xfer);

TXZ[0]= RDID;

内转台;

Xfer[0].TX_BUf =(无符号长整型) TXZ;
Xfer[0].len = 1;
Xfer[1].delay_usecs = 500;

xfer[1].rx_buf =(无符号长整型) rxz;
Xfer[1].len = 1;
Xfer[1].delay_usecs = 500;
RET = ioctl (SPI_fb、SPI_IOC_MESSAGE (2)、xfer);
printf ("发送:%.2X\n"、TXZ[0]);
printf ("接收:%.2X\n"、rxz[0]);

放置("");

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

    您是否使用 AM335x TI 板(EVM、入门套件、ICE、BBB)或定制板?

    您是否使用 AM335x TI PSDK Linux? 如果是、是哪个版本? 最新版本可从以下链接获取:

    software-dl.ti.com/.../index_FDS.html

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

    你(们)好  

      我使用的是定制板。 我的引脚配置与 TI BBB 相同。 所有 SPI 引脚都相同。  

    TI 的 Linux 版本是4.10。 我正在 Bale 上接收 MISO 线路上的数据。 但该数据无法从驱动程序中读取。 我想这与引脚多路复用器上拉或下拉有关。  

    您能告诉我要使用的引脚多路复用器值吗?

    谢谢、

    Sarfaraz

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

    我看到您将此线程标记为已解决。 您能否分享根本原因和修复方法?

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Pavel、我的实现中 CS 引脚的 pinmux 不正确。 我已进行正确的 PINMUX 设置、代码工作正常。