Naar aanleiding van mijn experimenten met de CH32v003 en het probleem van het beperkte geheugen waar ik tegen aanliep hier maar even een overzicht v.w.b. het geheugen van de microcontrollers die ik zoal gebruik. Wat zegt @Gemini over dat microcontrollergeheugen?
De meeste microcontrollers beschikken over verschillende soorten geheugen, elk met een specifieke functie:
1. Flash-geheugen (Programmageheugen):
- Functie: Dit niet-vluchtige geheugen dient voornamelijk voor de opslag van het programma (de instructies die de microcontroller moet uitvoeren) en constante data. De inhoud blijft behouden, zelfs wanneer de stroom wordt uitgeschakeld.
2. RAM (Random Access Memory) – Werkgeheugen:
- Functie: Dit vluchtige geheugen is het werkgebied van de microcontroller. Het wordt gebruikt om tijdelijke data op te slaan, zoals variabelen, de stack (voor functieaanroepen en lokale variabelen) en de heap (voor dynamische geheugentoewijzing).
- Kenmerken: RAM is sneller dan flash-geheugen voor zowel lezen als schrijven. Er zijn verschillende types RAM, zoals SRAM (Static RAM) en DRAM (Dynamic RAM). De data in RAM gaat verloren wanneer de stroom wordt uitgeschakeld.
3. EEPROM (Electrically Erasable Programmable Read-Only Memory) – Niet-vluchtig dataopslag:
Functie: Dit is een niet-vluchtig geheugen dat gebruikt wordt om kleine hoeveelheden data op te slaan die ook na het uitschakelen van de stroom behouden moeten blijven, zoals configuratie-instellingen, kalibratiewaarden of laatst gemeten waarden.
Een overzicht (dynamisch) van een aantal door door mij gebruikte controllers.
Microcontroller | Flash (KB) | SRAM (KB) | EPROM (byte) | Opmerkingen |
---|---|---|---|---|
CH32v003 | 16 | 2 | ||
ATmega328 | 32 | 2 | 1024 | UNO/ Nano |
ATmega2560 | 256 | 8 | 4096 | Mega2560 |
ATtiny85 | 8 | 0,5 | 512 | |
ESP32 C3 | 4096 | 400 | Super mini | |
ESP8266 | 1024 | 512 | ESP-01, 12E, | |
Nog een handig overzicht van de verschillende ESP32 varianten.
