bitluni / ESP32Lib

http://bitluni.net/esp32-vga/
441 stars 78 forks source link

[Question] ESP32-WROVER PSRAM #27

Open YordanYanakiev opened 5 years ago

YordanYanakiev commented 5 years ago

Since the VGA is using practically the whole amount of ram on a high resolutions I wonder if the lib can utilize the WROVER additional PSRAM which it have, instead of using the normal RAM?

DaniloSakovic commented 3 years ago

I tried, without success on esp32 cam with 4mb /8mb psram, getting corrupt psram after few seconds . I assume it's interrupts... Or cache bug... Or both.

Also psram can't be used for framebuffer because it's not dma capable.

On the other hand, in this library, dma allocating is done separately for line buffers to be written to pins using dma capable flag , so my approach was to create just backbuffer in the psram, still no success.

Even if I create some "BMP" images in psram memory they got coruoted...

For now I gave up us using psram. Instead I free some memory disabling bt wifi... Using 2 buffers on 576x448 with 3bit palete (8 colors ) and defining custom 16 color palete to be used when ignoring alfa bit.

That's enaug for me. Still have 89kb free sram

Martin-Laclaustra commented 3 years ago

Are you using "development" branch? Try with that branch with a mode without capital "I" in the name. Those do not use interrupts at all. Please report back. I think exploring the use of psram is interesting. Even for the interrupt modes (if you want much higher resolutions), an intermediate "buffer" could be created and refill outside of the ISR function (from the main loop). (if you can cope with occasional "glitches" when the main loop is late for that refill.