Hi ESP32 community,
I am new with ESP32 (changing from STM32F7 / H7) and I am wondering if it is at all possible to run ESP32-D2WD at 240MHz. The data sheet specifies max 160MHz, but possibly this is only because of the embedded Flash?
I am thinking of "booting" at 160MHz, copying executable code from flash into on-board SRAM, and *afterwards* (when already executing code from SRAM) changing to 240MHz. Of course I will "never" touch the flash memory again.
Any thought? Any experience here?
I am asking, as for a current project I need to minimize the size of the chip (5x5mm with internal flash) and maximize CPU speed. So I can not afford using ESP32-D0WD (specified up to 240MHz) with external flash.
Thanks for comments! Jorg
running ESP32-D2WD at 240 MHz ??
Re: running ESP32-D2WD at 240 MHz ??
Why not use ESP32-PICO-D4? It is only slightly larger (7x7mm), but you can save some space because of the components integrated on it.
ESP32 always executes code from SPI-Flash (some code is transfered to IRAM).
ESP32 always executes code from SPI-Flash (some code is transfered to IRAM).
Re: running ESP32-D2WD at 240 MHz ??
Thank you for the fast response and your suggestion. Unfortunately, I absolutely need to save as much PCB space (footprint) as possible. ESP32-D2WD is 5x5 (so 25sqmm); whereas ESP32-PICO-D4 is 7x7 (so 49sqmm). It is double the space on a PCB (ok, *almost* double ). I don't need BT or WLAN functionality for this project, just computing power on tiny space. The overall size of the PCB I am looking for is expected to be about 5x7mm...
I was not aware that ESP32 always executes code from flash. That is too bad, as this will slow down execution a lot, wouldn't it? In STM32F/H7 devices (ARM Cortex M7), the I-cache helps, but copying a (small) program completely into ITC-RAM (up to 64KB!) is a performance boost! So just to be sure, this is NOT possible on ESP32? I can not just put a (small!) program in RAM and only run from there?
I am very surprised, as in the ESP32 Technical Reference Manual V4.0, pages 24ff, the document talks about "internal SRAM" on the instruction bus. Table 2 lists about 300 KB instruction memory (which is a lot!), starting at 0x4007_0000. What would that be used for, if not for executing code. Sorry, confused "newbie"
Thanks, Jörg
I was not aware that ESP32 always executes code from flash. That is too bad, as this will slow down execution a lot, wouldn't it? In STM32F/H7 devices (ARM Cortex M7), the I-cache helps, but copying a (small) program completely into ITC-RAM (up to 64KB!) is a performance boost! So just to be sure, this is NOT possible on ESP32? I can not just put a (small!) program in RAM and only run from there?
I am very surprised, as in the ESP32 Technical Reference Manual V4.0, pages 24ff, the document talks about "internal SRAM" on the instruction bus. Table 2 lists about 300 KB instruction memory (which is a lot!), starting at 0x4007_0000. What would that be used for, if not for executing code. Sorry, confused "newbie"
Thanks, Jörg
Re: running ESP32-D2WD at 240 MHz ??
You can put small programs wholly into iram, most people are using too big of a program to do that. pico D4 comes with passives and the crystal inside, which you would have to fit in that 24mm² including trace routing to come out even.
It is possible the reason for the 160mhz limitation is thermal considerations which may not be applicable if you are not using the flash and radio. But you should get an official answer on this.
It is possible the reason for the 160mhz limitation is thermal considerations which may not be applicable if you are not using the flash and radio. But you should get an official answer on this.
Who is online
Users browsing this forum: No registered users and 268 guests