Pin READY (Pin 35) sul microprocessore Intel 8085: funzione e utilizzo
Il pin READY (Pin 35) sull'Intel 8085 è un input attivo alto che permette a memorie o dispositivi I/O esterni di richiedere stati di attesa, mettendo in pausa effettivamente la CPU fino a quando non sono pronti a completare un ciclo di lettura/scrittura.
Comportamento del segnale
- READY = 1 (Alto): Operazione normale. La CPU prosegue con il ciclo bus (T1–T3).
- READY = 0 (Basso): La CPU entra in stato di attesa (Tw) dopo T2. Mantiene indirizzo, dati e segnali di controllo (ALE, RD, WR, IO/M) stabili e inserisce ulteriori cicli di clock (Tw) finché READY non torna alto.
- Campionamento: READY viene campionato durante T2 (fronte di discesa di CLK). Se basso, vengono inseriti stati Tw. Viene ricampionato in ogni successivo Tw.
Funzioni chiave
- Accomodare memoria/I/O lenta: Permette a ROM, RAM, EEPROM lenti, o periferiche (ADC, UART, controller tastiera) tempo extra per mettere dati sul bus (lettura) o acquisire dati (scrittura).
- Rilascio bus durante attesa: In attesa, l'8085 non rilascia la proprietà del bus (HOLD/HLDA è separato). Mantiene il controllo ma mette in pausa. Il dispositivo esterno usa il tempo extra per completare il suo accesso interno.
- Sincronizzazione: Abilita handshake tra CPU e periferica lenta senza overhead complesso di DMA o interrupt.
- Single-stepping / Debugging: I debugger hardware possono tirare READY basso per congelare la CPU a ogni istruzione.
Circuito tipico
+5V | [R] (Pull-up, 4.7k–10k) | READY pin (35) ──────+──────► To CPU | [Uscita collettore aperto] di Memoria/I/O lenta | GND
Il dispositivo lento tira READY basso quando occupato (es. durante ciclo di scrittura interno), lo rilascia quando pronto.
Diagramma temporale (semplificato)
CLK: __/‾‾\_/‾‾\_/‾‾\_/‾‾\_/‾‾\_ T1 T2 Tw Tw T3 T1... READY: _____________/‾‾‾‾‾‾‾‾‾‾‾ ↑ ↑ campionato campionato (basso) (alto) → esci WAIT ALE: /‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ RD/WR: _________/‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ AD0-7:
Pin correlati
- HOLD (Pin 39) / HLDA (Pin 38): Per DMA – la CPU rilascia completamente il bus. READY non rilascia il bus.
- RESET IN (Pin 36): Reset asincrono.
- INTR (Pin 10) / INTA (Pin 11): Richiesta/acknowledge interrupt maskabile.
Considerazioni di design
- READY deve rispettare tempi di setup/hold rispetto a CLK (t_RY, t_YR ~ 50–100 ns).
- Non tenere READY basso eccessivamente (timeout watchdog, perdita refresh).
- Se non ci sono dispositivi lenti, collega READY permanentemente ALTO (a VCC tramite resistore).
- 8085AH/8085AH-2 hanno stessa tempistica READY.
Il pin READY è il meccanismo primario dell'8085 per la sincronizzazione bus asincrona con periferiche lente—critico per operazione affidabile con EPROM, EEPROM, RAM bufferizzata da batteria e hardware custom.