arduino-esp32 icon indicating copy to clipboard operation
arduino-esp32 copied to clipboard

Enable PSRAM ECC function in build flags

Open s54b32julian opened this issue 1 year ago • 5 comments

Related area

PSRAM

Hardware specification

ESP32-S3 Wroom N8 & N16

Is your feature request related to a problem?

On Page 3 of the ESP32 s3 wroom documentation is mentioned that the max ambient temp can be raised to 85°C, if the "PSRAM ECC function" is enabled. How can it be in the build accomplished, that the ECC function is enabled? https://www.espressif.com/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf

I found very few information about this function on esp32, but 65°C is very quickly reached if the board is exposed to the sun. Maybe the are the Fuses: EFUSE_FLASH_ECC_EN and EFUSE_FLASH_ECC_MODE

Many thanks in advance!

Describe the solution you'd like

set a build flag to enable ECC function on N8 and N16 variants

Describe alternatives you've considered

No response

Additional context

No response

I have checked existing list of Feature requests and the Contribution Guide

  • [X] I confirm I have checked existing list of Feature requests and Contribution Guide.

s54b32julian avatar Feb 22 '24 21:02 s54b32julian

This has to with PSRAM, not your regular flash, so the R number, not the N (or H). It also consumes 1/16 of your PSRAM for the ECC, and slows down every transaction. I don't think this should be a default setting. A more useful effort is to make the custom compilation process easier, as the Espressif team is doing

lbernstone avatar Feb 22 '24 22:02 lbernstone

I agree with @lbernstone. This is also going to be made easier by #9270.

lucasssvaz avatar Feb 22 '24 23:02 lucasssvaz

Thanks for fast response! I think the price you have to pay. Losing 1/16th of space and (also roughly 1/16th of the speed?) is a low price to pay, to gain such a huge bump in temperature stability imo) Especially for outdoor use or in car use. Even more in hot areas of the world.

Is there a way how I can activate this ECC function manually at the moment? I'm using platformIO.

s54b32julian avatar Feb 23 '24 09:02 s54b32julian

@s54b32julian You'll probably need to re-generate the static libs for your target. Check https://docs.espressif.com/projects/arduino-esp32/en/latest/lib_builder.html

Regarding the e-fuses you can burn them using the esptool.

lucasssvaz avatar Feb 23 '24 11:02 lucasssvaz

Have you tried setting your CPU speed to 80MHz? I rarely have temperature issues unless the cpu is overclocked.

lbernstone avatar Feb 23 '24 17:02 lbernstone