When we make a robotic sketch we have the need to store it in the Arduino memory. At the same time, when we run this program, it also generates data that we must store to be utilised when we need it.
In this article, we are going to review the different types of Arduino memory: semiconductor and magnetic.
Arduino memory is the part of the system that stores binary data in large quantities. Semiconductor memories are made up of arrays of storage elements that can be latches or capacitors.
Random Access Volatile Arduino RAM or Memory
RAM is an Arduino read-write memory in which data can be written or read to any selected address in any order. When data is written to a certain address in RAM, previously stored data is replaced by the new data unit.
When a data unit is read from a certain address in RAM, the data from that address remains stored and is not destroyed by the read operation. This non-destructive read operation can be understood as a copy of the content of an address, leaving said content intact. RAM is commonly used for short-term data storage, as it cannot preserve stored data when power is turned off, it is volatile memory.
Within these memories we have two categories:
Static RAM (SRAM): They use flip-flops as storage elements and therefore can store data indefinitely as long as continuous power is applied. It is the fastest option to read the data.
Dynamic RAM (DRAM): They use capacitors as a storage element and cannot keep data for long without recharging capacitors through the refresh process. It can store much more data than SRAMs for physical size and cost since each cell is much simpler and therefore can include more cells in the same size as an SRAM.
Both types of memories will lose the data when they let go of continuous power, unlike the following types of memory that we are going to see.
ROM or Arduino memory read-only
It is important to mention that a ROM permanently or semi-permanently memory maintains the stored data, which can be read, but either cannot be changed at all, or a piece of special equipment is required for it. It stores data that is repeatedly used in applications as programmed instructions for system initialization and operation.
A ROM keeps data stored when power is turned off. This type of memory can be classified into several sub-categories:
–Original ROM: Data is permanently stored in memory during the manufacturing process to provide standard extended-use features.
–PROM or programmable ROM: The user, with the help of specialized equipment, electronically stores the data. Some kind of casting mechanism is used to store bits, where a memory thread blows or remains intact to represent a 0 or a 1. The casting process is irreversible, once a PROM has been programmed it cannot be changed.
–EPROM or erasable PROM: It is a PROM memory but erasable. This type of memory can be reprogrammed if the existing program is deleted before. It stores electrical charges in its cells for an indefinite period of time. The presence or absence of this load represents the data bits. The two fundamental types of these memories are UV EPROM and EEPROM:
–UV EPROM: This type of memory can be erased by applying an ultraviolet light exposure over a period of several minutes.
–EEPROM or electronically erasable PROM: Unlike the previous one, it can be erased in a few milliseconds. It is done through electrical impulses and can be reprogrammed within the final circuit itself, allowing any system to be reconfigured.
Arduino Flash memory
The ideal memory should have a high storage capacity, be non-volatile, have read and write capacity in the system itself, have a comparatively fast operating speed and be cost-effective.
Traditional memory storage technologies, like the ones we’ve seen above, have some of these characteristics, but none have all of them except flash memory.
Flash memories are high-density read / write memories (high storage capacity in a small space) and are non-volatile. This high density is achieved with a storage cell made up of a single floating gate MOS transistor.
The data bit is stored as a load or an absence of load on the floating door, depending on whether you want to store a 0 or a 1.