mirror of
https://github.com/github/awesome-copilot.git
synced 2026-05-05 22:52:11 +00:00
191 lines
4.6 KiB
Markdown
191 lines
4.6 KiB
Markdown
# AT28C256 256K (32K x 8) Parallel EEPROM Specification
|
|
|
|
## 1. Overview
|
|
|
|
The **AT28C256** is a non-volatile, electrically erasable and programmable read-only memory (EEPROM) manufactured by Atmel (now Microchip). It provides **256 Kbits** of storage organized as **32,768 x 8 bits** and is commonly used in 8-bit microprocessor systems such as those based on the **6502**, **Z80**, and similar CPUs.
|
|
|
|
The device supports byte-level write operations, fast read access, and software-controlled data protection.
|
|
|
|
---
|
|
|
|
## 2. General Characteristics
|
|
|
|
| Feature | Description |
|
|
| -------------- | ------------------------------ |
|
|
| Memory size | 256 Kbits (32 KB) |
|
|
| Organization | 32,768 x 8 bits |
|
|
| Data bus | 8-bit |
|
|
| Address bus | 15-bit (A0-A14) |
|
|
| Technology | EEPROM |
|
|
| Endurance | ≥ 100,000 write cycles |
|
|
| Data retention | ≥ 10 years |
|
|
| Access time | 150-250 ns (variant dependent) |
|
|
| Package types | DIP-28, PLCC-32, TSOP |
|
|
|
|
---
|
|
|
|
## 3. Pin Configuration (Logical)
|
|
|
|
### 3.1 Address Pins (A0-A14)
|
|
|
|
* Select one of 32,768 memory locations
|
|
|
|
### 3.2 Data Pins (I/O0-I/O7)
|
|
|
|
* Bidirectional tri-state data bus
|
|
* Outputs valid during read cycles
|
|
|
|
### 3.3 Control Pins
|
|
|
|
| Pin | Description |
|
|
| --- | -------------------------- |
|
|
| CE | Chip Enable (active low) |
|
|
| OE | Output Enable (active low) |
|
|
| WE | Write Enable (active low) |
|
|
| VCC | +5 V power supply |
|
|
| GND | Ground |
|
|
|
|
---
|
|
|
|
## 4. Memory Organization
|
|
|
|
* Linear address space from `$0000` to `$7FFF`
|
|
* Each address corresponds to one 8-bit byte
|
|
|
|
```text
|
|
Address Range: 0000h - 7FFFh
|
|
Data Width: 8 bits
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Read Operation
|
|
|
|
### 5.1 Read Cycle Conditions
|
|
|
|
| Signal | State |
|
|
| ------ | ----- |
|
|
| CE | LOW |
|
|
| OE | LOW |
|
|
| WE | HIGH |
|
|
|
|
* Data appears on I/O pins after access time
|
|
* Output remains valid while CE and OE are asserted
|
|
* Outputs are high-impedance when CE or OE is HIGH
|
|
|
|
---
|
|
|
|
## 6. Write Operation
|
|
|
|
### 6.1 Byte Write Cycle
|
|
|
|
| Signal | State |
|
|
| ------ | --------- |
|
|
| CE | LOW |
|
|
| OE | HIGH |
|
|
| WE | LOW pulse |
|
|
|
|
* Address and data must be stable during WE low pulse
|
|
* Internal write cycle time ≈ 10 ms (max)
|
|
* Device automatically handles erase-before-write
|
|
|
|
---
|
|
|
|
## 7. Software Data Protection (SDP)
|
|
|
|
The AT28C256 includes optional **Software Data Protection** to prevent accidental writes.
|
|
|
|
### 7.1 SDP Enable Sequence
|
|
|
|
```text
|
|
Write $AA to address $5555
|
|
Write $55 to address $2AAA
|
|
Write $A0 to address $5555
|
|
```
|
|
|
|
### 7.2 SDP Disable Sequence
|
|
|
|
```text
|
|
Write $AA to address $5555
|
|
Write $55 to address $2AAA
|
|
Write $80 to address $5555
|
|
Write $AA to address $5555
|
|
Write $55 to address $2AAA
|
|
Write $20 to address $5555
|
|
```
|
|
|
|
---
|
|
|
|
## 8. Write Cycle Timing Notes
|
|
|
|
* Writes are internally timed; no external polling required
|
|
* During write cycle, reads return undefined data
|
|
* Device ignores additional write attempts while busy
|
|
|
|
---
|
|
|
|
## 9. Data Polling (Optional)
|
|
|
|
* I/O7 may be monitored during write
|
|
* When I/O7 matches written data, write is complete
|
|
|
|
---
|
|
|
|
## 10. Reset and Power Behavior
|
|
|
|
* No explicit reset pin
|
|
* Writes inhibited during power-up and power-down
|
|
* Outputs default to high-impedance until CE and OE asserted
|
|
|
|
---
|
|
|
|
## 11. Typical System Integration (6502 Example)
|
|
|
|
```text
|
|
Address Range: $8000 - $FFFF
|
|
A15 used as chip select
|
|
OE R/W?
|
|
WE inverted R/W?
|
|
```
|
|
|
|
---
|
|
|
|
## 12. Absolute Maximum Ratings (Summary)
|
|
|
|
| Parameter | Rating |
|
|
| ------------- | --------------------- |
|
|
| VCC | -0.6 V to +6.25 V |
|
|
| Input voltage | -0.6 V to VCC + 0.6 V |
|
|
| Storage temp | -65 °C to +150 °C |
|
|
|
|
---
|
|
|
|
## 13. Variants and Compatible Devices
|
|
|
|
| Device | Notes |
|
|
| ---------------- | ---------------------------- |
|
|
| AT28C256 | Original Atmel |
|
|
| AT28C256F | Faster access time |
|
|
| SST28SF256 | Flash-compatible alternative |
|
|
| 28C256 (generic) | Common pin-compatible EEPROM |
|
|
|
|
---
|
|
|
|
## 14. Common Use Cases
|
|
|
|
* ROM replacement in retro systems
|
|
* Firmware storage
|
|
* Microcomputer monitors and BASIC ROMs
|
|
* Prototyping and hobbyist computers
|
|
|
|
---
|
|
|
|
## 15. References
|
|
|
|
* <https://www.utmel.com/components/at28bv256-eeproms-pinout-equivalent-and-datasheet?id=1019>
|
|
* <https://www.futurlec.com/Memory/28C256.shtml>
|
|
* <https://ww1.microchip.com/downloads/en/DeviceDoc/doc0006.pdf>
|
|
* <https://bread80.com/2020/08/10/the-ben-eater-eeprom-programmer-28c256-and-software-data-protection/>
|
|
|
|
---
|