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.

[参考译文] AM3359:无法通过 BeagleBone Black 上的 AM3359 SPI1与 W25Q512JV SPI 闪存通信

Guru**** 2470720 points
Other Parts Discussed in Thread: AM3359

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1468385/am3359-unable-to-communicate-with-w25q512jv-spi-flash-via-am3359-spi1-on-beaglebone-black

器件型号:AM3359

工具与软件:

e2e.ti.com/.../2541.spi_5F00_test.c

您好、TI 团队:

我正在处理一个项目、使用 AM3359 SPI1实例与通信 W25Q512JV 串行闪存 . 由于我的项目仍处于设计阶段、因此我使用的是 BeagleBone Black 开发板以进行概念验证。

硬件连接:

下面是之间的引脚连接 BeagleBone Black (BBB) W25Q512JV

BeagleBone Black (BBB) Winbond W25Q512JV 该设计的链接
P9_31 (SPI1_SCLK) 引脚6 (SCLK) SPI 时钟
P9_29 (SPI1_D0) 引脚2 (DO/MISO) SPI MISO
P9_30 (SPI1_D1) 引脚5 (DI/MOSI) SPI MOSI
P9_28 (SPI1_CS0) 引脚1 (CS#) SPI 片选(通过1KΩ Ω 上拉至 VCC)
P9_3 (3.3V) 引脚8 (VCC) 电源
P9_1 (GND) 引脚4 (GND) 接地
引脚3 (WP#) 连接到 VCC (3.3V)
引脚7 (HOLD#) 连接到 VCC (3.3V)

设备树配置:

我已更新了我的 器件树 如下:

&am33xx_pinmux{
 SPI1_PINS:SPI1_PINS{
  PINCTL-SINGLE、PINS =<
      0x190 0x33 /* SPI1_SCLK - P9_31 *
      0x194 0x33 /* SPI1_D0 (MISO)- P9_29 */
     0x198 0x33 /* SPI1_D1 (MOSI)- P9_30 */
     0x19C 0x33 /* SPI1_CS0 - P9_28 */
    >;
   };
};

&SPI1{
    状态="正常";
    pinctrl-names ="默认值";
    pinctrl-0 =<&SPI1_PINS>;

     #address-cells =<1>;
    #size-cells =<0>;
    CS-GPIO =<&GPIO3 17 0>;

    spidev0:spi@0{
       compatible ="spidev";
       REG =<0>;
       spi-max-frequency =<16000000>;/* 16 MHz *
       状态="正常";
     };
};

注意:由于 AM3359需要与进行通信 多个 Winbond 闪存芯片 、我尚未添加闪存芯片驱动程序详细信息。

面临的问题:

应用调用 Arago Linux 、我检查了是否创建了 SPI 设备:

LS /dev/spidev *
输出电容损耗:
/dev/spidev1.0

但是、当我尝试使用检测闪存芯片时 闪耀 、我收到一个错误:
sudo flashrom -p linux_spi:dev=/dev/spidev1.0、spispeed=8000

错误:
未找到 EEPROM 器件

我连接了 A 用于监控 SPI 信号并观察到以下情况的逻辑分析仪:

- CS 引脚在通信期间切换为低电平。
-  不生成时钟(SCLK)信号。






我还使用示例 SPI 测试程序测试了 SPI 通信、但未从闪存芯片接收到有效数据。

请您查看我的 设备树设置 并帮助确定 SPI 通信失败的根本原因? 我希望获得关于进一步调试此问题的任何指导。

我已附上我的 SPI 测试程序示例 非常有用。

感谢您的支持。

BR、
Paul Jins







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

    此外、我还想问一下、



    为什么控制模块寄存器表中缺少 SPI 偏移详细信息?

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

    请注意、

    我将 SPI 频率从进行了更改 1 MHz 至24 MHz 闪存芯片、但检测仍然失败。

    我注意到了 SPI1_CLK 始终为高电平、在内核启动后从不会变为低电平。

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

    您在使用哪款 TI SDK?

    另外、请留出几天的时间进行回复。 与此同时、我建议在此主题上进行一些互联网搜索、寻找已知良好的参考点、将 SPI 器件连接到 AM335x 应该是我认为很常见的做法。

    此致、Andreas

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

    您好、Andreas、

    TI SDK 版本:08.02.00.24。

    是的、我在互联网上对此主题进行了广泛的研究、甚至尝试向 ChatGPT 等 AI 工具寻求帮助、但似乎没有任何效果。


    我可以找到有关 SPI0的信息、但无法找到有关 am3359中 SPI1设置的信息。

    谢谢!
    Paul Jins