M95640-RMB3TG
AI

The **M95640-RMB3TG** is a high-performance, electrically erasable programmable read-only memory (EEPROM) manufactured by STMicroelectronics. It is widely used in automotive and industrial applications due to its reliability and low power consumption.
---
### ## 1. Technical Specifications
The following table summarizes the key electrical and physical characteristics of the M95640-RMB3TG:
| Feature | Specification |
| :--- | :--- |
| **Memory Size** | 64 Kbit (8,192 x 8 bits) |
| **Interface** | SPI (Serial Peripheral Interface) |
| **Max Clock Frequency** | 20 MHz (at 4.5V - 5.5V) |
| **Supply Voltage (Vcc)** | 1.8V to 5.5V |
| **Operating Temperature** | -40°C to +125°C |
| **Package Type** | UFDFPN8 (Ultra-thin Fine pitch Dual Flat No-lead) |
| **Endurance** | 4 million write cycles |
| **Data Retention** | 200 years |
---
### ## 2. Core Features
* **SPI Protocol Modes:** Supports SPI Bus Modes 0 and 3.
* **Write Protection:** Includes a hardware Write Protect (`/WP`) pin and software programmable write-protection for specific blocks of memory.
* **Byte and Page Write:** Allows writing a single byte or a full page (up to 32 bytes) in a single instruction cycle.
* **Low Power Consumption:**
* Active Read Current: < 2 mA (at 5 MHz).
* Standby Current: < 1 µA (at 1.8V).
* **Self-Timed Write Cycle:** The internal write cycle is self-timed, typically completing within 5ms.
---
### ## 3. Pin Configuration
The device is typically housed in an 8-pin package with the following functional layout:
| Pin | Designation | Description |
| :--- | :--- | :--- |
| 1 | **S#** | Chip Select (Active Low) |
| 2 | **Q** | Serial Data Output |
| 3 | **W#** | Write Protect |
| 4 | **Vss** | Ground |
| 5 | **D** | Serial Data Input |
| 6 | **C** | Serial Clock |
| 7 | **HOLD#** | Pause Serial Communication |
| 8 | **Vcc** | Supply Voltage |
---
### ## 4. Code Implementation (Example)
To communicate with the M95640 using an Arduino or similar microcontroller, you would typically use the `SPI.h` library. Below is a conceptual example of how to read the Status Register:
```cpp
#include
const int chipSelectPin = 10;
const byte READ_STATUS = 0x05; // Instruction code
void setup() {
pinMode(chipSelectPin, OUTPUT);
SPI.begin();
digitalWrite(chipSelectPin, LOW);
SPI.transfer(READ_STATUS);
byte status = SPI.transfer(0); // Read incoming byte
digitalWrite(chipSelectPin, HIGH);
Serial.print("Status Register: ");
Serial.println(status, BIN);
}
void loop() {}
```
---
### ## 5. Typical Applications
* **Automotive:** Storing calibration data, odometer readings, and error logs in ECUs.
* **Industrial:** Configuration settings for PLCs and sensors.
* **Consumer Electronics:** Firmware storage and user preference settings.
- ⤷
What is the difference between the 'R' and 'W' voltage variants in ST EEPROMs?
- ⤷ How does the 'HOLD' pin function during a data transfer?
- ⤷ What are the PCB layout considerations for the UFDFPN8 package?