seonroz wrote:
..So what ram is that?
Seon, in this i used Lyontek LY68L6400SL (64Mbit / 3.3V )
the
IPUS must work too cause it is the same silicon and only repacked. if i find a time window this week, i will repeat the doing with IPUS, not sure i can do this this week but will try.
so i did on sunday that you have it on monday morning
for a better week start
btw:
the psram is very stable and sturdy.
so I have the 1.8v psram several times on 3.3v "accidentally" in operation, it had taken no damage. In the long run you should not do that.
You have a nice adapter for the IPUS, try on the back of the Pico board for experimental purposes, a socket and hold the wires short, so short it works.
don't forget to edit the esp-idf spiram_psram.c file
you can create a Kconfig file and put it in the main folder:
menuconfig then select the Pico-D4-Board, and the config choice will setup the right pins
in spiram_psram.c
Kconfig example:
Code: Select all
menuconfig PSRAMMODULES
bool "PSRAMMODUL"
default n
help
Select this option to enable a PSRAMMODUL.
choice PSRAMMODUL_SELECT
prompt "Select the ESP_PSRAM_MODUL you want used for PSRAM"
default CONFIG_PSRAM_PICO_D4_V4
depends on PSRAMMODULES
help
PSRAM_WROVER Wrover Modul (all)
PSRAM_PICO_D4_V4 PICO D4 V4 Modul
You can select here a Modul you want use for PSRAM.
config PSRAM_WROVER
bool "WROVER Modul (all)"
help
Select this: Wrover Modul (all)
config PSRAM_PICO_D4_V4
bool "PICO D4 V4"
help
Select this: PICO D4 V4 Modul
endchoice
example change in spiram_psram.c
Code: Select all
// PICOD4 Support by custom change
// see customer rudi 29.August 2017
// https://www.esp32.com/viewtopic.php?f=2&t=2713&start=30#p13380
// proposal to do:
// change for menuconfig work later to set the right esp32 modul
// or let it do this auto mode by chip package identify
// comes later as patch
#ifdef CONFIG_PSRAM_PICO_D4_V4
#define PICO 1
#endif
#ifdef CONFIG_PSRAM_WROVER
#define WROVER 1
#endif
#ifdef PICO
#define FLASH_CLK_IO 6 //Psram clock is a delayed version of this in 40MHz mode
#define FLASH_CS_IO 16 // 11
#define PSRAM_CLK_IO 10 // 17
#define PSRAM_CS_IO 9 // 16
#define PSRAM_SPIQ_IO 17 // 7
#define PSRAM_SPID_IO 8
#define PSRAM_SPIWP_IO 7 // 10
#define PSRAM_SPIHD_IO 11 // 9
#endif
#ifdef WROVER
#define FLASH_CLK_IO 6 //Psram clock is a delayed version of this in 40MHz mode
#define FLASH_CS_IO 11
#define PSRAM_CLK_IO 17
#define PSRAM_CS_IO 16
#define PSRAM_SPIQ_IO 7
#define PSRAM_SPID_IO 8
#define PSRAM_SPIWP_IO 10
#define PSRAM_SPIHD_IO 9
#endif
and last but not least,
edit the chippack check
Code: Select all
//psram gpio init , different working frequency we have different solutions
esp_err_t IRAM_ATTR psram_enable(psram_cache_mode_t mode, psram_vaddr_mode_t vaddrmode) //psram init
{
uint32_t chip_ver = REG_GET_FIELD(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_PKG);
uint32_t pkg_ver = chip_ver & 0x7;
if (pkg_ver == EFUSE_RD_CHIP_VER_PKG_ESP32D2WDQ5) {
ESP_EARLY_LOGE(TAG, "ESP32D2WD do not support psram yet");
return ESP_FAIL;
} else if (pkg_ver == EFUSE_RD_CHIP_VER_PKG_ESP32PICOD2) {
ESP_EARLY_LOGE(TAG, "ESP32PICOD2 do not support psram yet");
return ESP_FAIL;
} else if (pkg_ver == EFUSE_RD_CHIP_VER_PKG_ESP32PICOD4) {
// ESP_EARLY_LOGE(TAG, "ESP32PICOD4 do not support psram yet");
ESP_EARLY_LOGE(TAG, "ESP32PICOD4 Nice to see this here now Yeah ;-)");
// return ESP_FAIL;
}
( i thinked i did create this post - but i think - did forget to send it )
best wishes
rudi
now 11:55 PM here
good night