乐鑫技术交流
直播中

rosa

12年用户 1214经验值
私信 关注
[问答]

ESP32-PICO-KIT_V4.1外挂SPI RAM(PSRAM)出现test fail的原因?

我正在使用ESP32-PICO-KIT_V4.1 板子外挂8M的PSRAM,IO按参考设计接法如下:

psram_pin1(CS):-->esp32 gpio10
psram_pin2(SO/SIO1):-->esp32 gpio17
psram_pin3(SIO2):-->esp32 gpio7
psram_pin4:-->gnd
psram_pin5(SI/SIO0):-->esp32 gpio8
psram_pin6(SCLK):-->esp32 gpio6
psram_pin7(SIO3):-->esp32 gpio11

spiram_psram.c文件中修改引脚定义如下:

#define PSRAM_SPIQ_SD0_IO         17
#define PSRAM_SPID_SD1_IO          8
#define PSRAM_SPIWP_SD3_IO        7                                                                                   
#define PSRAM_SPIHD_SD2_IO        11

idf版本:
v3.3.2-270-gf4333c8e3

编译工程示例:hello_world

menuconfig 中打开SPI RAM 支持,配置CS为gpio10


出现的错误log如下:
I (221) boot: Loaded app from partition at offset 0x10000
I (221) boot: Disabling RNG early entropy source...
I (222) psram:This chip is ESP32-PICO
I (251) spiram: Found 64MBit SPI RAM device
I (259) spiram: SPI RAM mode: flash 40m sram 40m
I (265) spiram: PSRAM initialized, cache is in low/high (2-core) mode.
I (272) cpu_start: Pro cpu up.
I (276) cpu_start: Application information:
I (280) cpu_start: Project name:     esp-idf
I (285) cpu_start: App version:      1
I (290) cpu_start: Compile time:     Jul 13 2020 19:39:43
I (296) cpu_start: ELF file SHA256:  f4ac9b655859d1b3...
I (302) cpu_start: ESP-IDF:          v3.3.2-270-gf4333c8e3
I (308) cpu_start: Starting app cpu, entry point is 0x40081200
0x40081200: call_start_cpu1 at /home/szth/esp/esp-

idf/components/esp32/cpu_start.c:268

I (295) cpu_start: App cpu up.
E (1210) spiram: SPI SRAM memory test fail. 50461/131072 writes failed,

first @ 3F800040

E (1211) cpu_start: External RAM failed memory test!
abort() was called at PC 0x4008143a on core 0

看上去好像检测到psram了,但是为什么会出现test fail呢?各位帮忙看看,多谢!
                                                                                                                                                     

回帖(1)

李俊

2024-6-25 17:23:11
在分析ESP32-PICO-KIT_V4.1外挂SPI RAM(PSRAM)出现test fail的原因时,我们需要考虑以下几个方面:

1. **硬件连接**:首先,确保所有的硬件连接都是正确的。你已经提到了你的连接方式,但请再次检查是否有任何接触不良或错误连接的地方。特别是,确保CS(片选)信号正确连接,因为如果CS信号不稳定或连接错误,可能会导致测试失败。

2. **电源问题**:确保PSRAM模块的电源稳定且符合其工作电压要求。不稳定或不适当的电源可能会影响PSRAM的性能。

3. **SPI通信**:SPI通信的稳定性对于外挂PSRAM非常重要。检查SPI时钟速率是否设置得当,以及SPI通信的初始化是否正确。

4. **GPIO配置**:ESP32的GPIO需要正确配置为SPI功能。检查你的`spiram_psram.c`文件中的GPIO配置是否正确,以及是否与ESP32的硬件设计相匹配。

5. **代码问题**:检查`spiram_psram.c`文件中的代码是否有逻辑错误或配置错误。例如,你提到的宏定义`#define PSRAM_SPIQ_SD0_IO 17`,确保这个宏定义与你的硬件连接相匹配,并且没有遗漏其他必要的宏定义。

6. **固件/软件问题**:确保你使用的ESP32固件或软件库支持外挂PSRAM,并且已经正确配置。有时候,固件或软件库的版本不兼容或者存在bug也可能导致测试失败。

7. **PSRAM模块本身的问题**:如果以上所有检查都没有问题,那么可能是PSRAM模块本身存在问题。尝试更换一个新的PSRAM模块进行测试。

8. **测试程序问题**:最后,检查测试程序本身是否有问题。有时候,测试程序可能没有正确地检测到PSRAM的状态,或者测试逻辑存在问题。

综上所述,要解决ESP32-PICO-KIT_V4.1外挂SPI RAM(PSRAM)出现test fail的问题,需要从硬件连接、电源、SPI通信、GPIO配置、代码、固件/软件、PSRAM模块和测试程序等多个方面进行排查。希望这些信息能帮助你找到问题所在并解决它。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分