工具与软件:
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
