mirror of
https://github.com/github/awesome-copilot.git
synced 2026-02-22 19:35:13 +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/>
|
||
|
||
---
|