Il pin EA sui microcontrollori 8051: controllo accesso esterno
Il pin EA (External Access) sulla famiglia 8051 (pin 31 su 40-DIP) è un cinghia di configurazione hardware che determina se il processore preleva il codice dalla ROM interna o dalla memoria esterna. Viene campionato al reset e non può essere modificato dinamicamente.
Funzione
| Stato pin EA | Origine memoria programma | Comportamento PSEN |
|---|---|---|
| Alto (Logica 1, VCC) | ROM/EPROM/Flash interna (0x0000–0xFFFF o limite dispositivo) | Inattivo (alto) — nessun fetch esterno |
| Basso (Logica 0, GND) | Memoria esterna (0x0000–0xFFFF) | Attivo — stroba basso per ogni fetch esterno |
Implicazioni mappa di memoria
- EA = 1: L'8051 usa la memoria programma on-chip. Indirizzi oltre il limite on-chip (es. >4KB per 8051, >8KB per 8052) sono inaccessibili a meno che EA=0.
- EA = 0: Tutti i fetch di codice dalla memoria esterna. ROM on-chip disabilitata. Richiede ROM/EPROM/Flash esterno + latch indirizzo (74HC373) + logica decodifica.
- 8031/8032 (senza ROM): EA deve essere collegato a basso. Non esiste ROM interna.
Implementazione hardware
+5V | 10kΩ | EA (P31) --+---> A VCC (interno) o GND (esterno) | [Interruttore/Jump/Header configurazione]
- Resistenza di pull-up (10kΩ) assicura stato definito se jumper aperto
- Jumper a GND = Modalità esterna. Jumper a VCC / aperto = Modalità interna
- Deve essere stabile al rilascio del reset. Nessun commutamento dinamico.
Interfaccia memoria esterna (quando EA=0)
- Porta 0: AD0–AD7 multiplexato (byte basso indirizzo + dati)
- Porta 2: A8–A15 (byte alto indirizzo)
- ALE (Pin 30): Address Latch Enable — blocca byte basso da P0 a 74HC373
- PSEN (Pin 29): Program Store Enable — stroboscopio di lettura attivo-basso per ROM esterno
- WR (P3.6) / RD (P3.7): Scrittura/Lettura memoria dati (XRAM)
Configurazioni comuni
| Dispositivo | ROM interna | EA=1 | EA=0 |
|---|---|---|---|
| 8051 (MCS-51) | 4KB | 0–4KB interno | 0–64KB esterno |
| 8052 | 8KB | 0–8KB interno | 0–64KB esterno |
| 8751 (EPROM) | 4KB EPROM | 0–4KB interno | 0–64KB esterno |
| AT89C51 (Flash) | 4KB Flash | 0–4KB interno | 0–64KB esterno |
| 8031/8032 | Nessuna | Non valido | 0–64KB esterno (richiesto) |
Varianti moderne (NXP, Silicon Labs, STC, ecc.)
- Molte hanno >64KB Flash con commutazione banchi / paging
- Il pin EA può selezionare sorgente di avvio (Flash interno vs SPI/parallelo esterno)
- Alcuni permettono controllo software della gestione memoria dopo il reset
- Controlla il datasheet: sezione "funzione pin EA"
Considerazioni di progettazione
- Layout PCB: Mantieni traccia EA corta, evita accoppiamento rumore. È un pin di configurazione al reset.
- Programmazione produzione: EA=1 per programmazione in circuito (ISP) via UART/USB. EA=0 per programmatore esterno su bus parallelo.
- Debug: EA=0 + RAM esterna permette visibilità completa del bus con analizzatore logico.
- Sicurezza: EA=0 con memoria esterna = codice leggibile. EA=1 + lock bits = protezione IP.
Il pin EA è una cinghia hardware statica, non un controllo in runtime. Impostala una volta in fase di progettazione in base alla tua architettura di memoria. Per la maggior parte dei progetti 8051 moderni con Flash on-chip: collega EA a VCC.