O pino EA (External Access) na família 8051 (pino 31 no DIP-40) é uma strap de configuração hardware que determina se o processador busca código da ROM interna ou memória externa. É amostrado no reset e não pode ser alterado dinamicamente.
Função
| Estado Pino EA | Fonte Memória Programa | Comportamento PSEN |
| Alto (Lógica 1, VCC) | ROM/EPROM/Flash Interna (0x0000–0xFFFF ou limite dispositivo) | Inativo (alto) — sem buscas externas |
| Baixo (Lógica 0, GND) | Memória Externa (0x0000–0xFFFF) | Ativo — strobe baixo para cada busca externa |
Implicações Mapa Memória
- EA = 1: 8051 usa memória programa on-chip. Endereços além limite on-chip (ex.: >4KB para 8051, >8KB para 8052) inacessíveis a menos que EA=0.
- EA = 0: Todas buscas código de memória externa. ROM on-chip desabilitada. Requer ROM/EPROM/Flash externa + latch endereço (74HC373) + lógica decode.
- 8031/8032 (ROMless): EA deve ser aterrado. Não existe ROM interna.
Implementação Hardware
+5V | 10kΩ | EA (P31) --+---> Para VCC (Interno) ou GND (Externo) | [Chave/Jumper/Header Config]
- Resistor pull-up (10kΩ) garante estado definido se jumper aberto
- Jumper para GND = Modo externo. Jumper para VCC / aberto = Modo interno
- Deve ser estável na liberação do reset. Sem comutação dinâmica.
Interface Memória Externa (Quando EA=0)
- Porta 0: AD0–AD7 multiplexado (byte endereço baixo + dados)
- Porta 2: A8–A15 (byte endereço alto)
- ALE (Pino 30): Address Latch Enable — trava byte baixo de P0 para 74HC373
- PSEN (Pino 29): Program Store Enable — strobe leitura ativo-baixo para ROM externa
- WR (P3.6) / RD (P3.7): Escrita/leitura memória dados (XRAM)
Configurações Comuns
| Dispositivo | ROM Interna | EA=1 | EA=0 |
| 8051 (MCS-51) | 4KB | 0–4KB interno | 0–64KB externo |
| 8052 | 8KB | 0–8KB interno | 0–64KB externo |
| 8751 (EPROM) | 4KB EPROM | 0–4KB interno | 0–64KB externo |
| AT89C51 (Flash) | 4KB Flash | 0–4KB interno | 0–64KB externo |
| 8031/8032 | Nenhuma | Inválido | 0–64KB externo (obrigatório) |
Variantes Modernas (NXP, Silicon Labs, STC, etc.)
- Muitas têm >64KB Flash com bank switching / paging
- Pino EA pode selecionar fonte boot (Flash interno vs. SPI/paralelo externo)
- Algumas permitem controle software bancos memória após reset
- Verifique datasheet: seção "função pino EA"
Considerações Projeto
- Layout PCB: Mantenha traço EA curto, evite acoplamento ruído. É pino configuração reset.
- Programação Produção: EA=1 para programação in-circuit (ISP) via UART/USB. EA=0 para programador externo barramento paralelo.
- Debug: EA=0 + RAM externa permite visibilidade barramento completa com analisador lógico.
- Segurança: EA=0 com memória externa = código legível. EA=1 + lock bits = proteção IP.
O pino EA é um strap hardware estático, não controle runtime. Defina uma vez no projeto baseado na sua arquitetura memória. Para a maioria projetos 8051 modernos com Flash on-chip: ateie EA ao VCC.