| "Descrizione" by Radar (1933 pt) | 2026-Jan-29 15:21 |
| Evaluation | N. Experts | Evaluation | N. Experts |
|---|---|---|---|
| 1 | 6 | ||
| 2 | 7 | ||
| 3 | 8 | ||
| 4 | 9 | ||
| 5 | 10 |
Zilog Z0843006 appartiene alla famiglia Z80 CTC e viene comunemente usato per creare tick periodici, misurare frequenze o eventi, generare baud-rate e sincronizzare periferiche senza dover occupare la CPU con cicli di polling. Lo Z80 CTC (counter timer circuit) è un circuito integrato di supporto per sistemi basati su Z80 che fornisce 4 canali indipendenti di timer/contatore, ognuno in grado di generare interrupt, segnali di uscita temporizzati e funzioni tipiche di “time base” per il sistema.

Funzioni
Un CTC serve a spostare su hardware ciò che in software sarebbe costoso o impreciso, in particolare:
Generazione di interrupt periodici (es. tick di sistema, scheduler, timeouts).
Misura/conta eventi esterni (impulsi da sensori, encoder, contatori di produzione).
Generazione di onde quadre e segnali di timing verso periferiche.
Baud rate generation o clock di servizio per interfacce seriali (in molte architetture Z80 è un uso tipico).
Sincronizzazione deterministica con trigger esterni, riducendo jitter software.
Architettura funzionale: 4 canali indipendenti
Il CTC integra 4 canali numerati (spesso 0–3). Ogni canale dispone di:
Un ingresso CLK/TRG che può funzionare come clock esterno (counter) oppure come trigger/clock a seconda della modalità.
Un registro di time constant (valore di conteggio) che determina quando scatta l’evento.
Logica di prescaler per derivare temporizzazioni dall’orologio di sistema.
Un’uscita ZC/TO (zero count / timeout) che può generare un impulso o un’onda quadra (dipende dalla configurazione).
Un meccanismo di interrupt con priorità deterministica tramite daisy chain tipica delle periferiche Zilog Z80.
Modalità operative
Ogni canale si configura tipicamente come:
Timer mode: il canale conta cicli derivati dal clock di sistema tramite prescaler, e genera un evento quando il contatore arriva a zero.
Counter mode: il canale conta impulsi esterni sul pin CLK/TRG, utile per misurare frequenze o contare eventi.
Trigger: in molte configurazioni si può avviare il conteggio su un fronte di trigger, utile per temporizzazioni “a richiesta”.
Waveform/timeout output: l’uscita ZC/TO può fornire un segnale periodico o un impulso in corrispondenza dell’evento, usabile come clock o strobe per altra logica.
Prescaler e time constant (come si ottiene il periodo)
Il principio operativo è:
La CPU programma un control word (modo, prescaler, abilita interrupt, comportamento uscita).
La CPU carica un time constant (N).
Il canale conta a una frequenza derivata dal clock (timer) o da impulsi esterni (counter).
Quando il conteggio raggiunge zero, il canale può: aggiornare l’uscita ZC/TO, richiedere interrupt, e ripartire secondo la modalità.
Nel caso timer, in pratica il periodo dipende da clock, prescaler e time constant, con comportamento preciso definito dalla modalità selezionata.
Interfaccia con la CPU Z80 (bus e registri)
Lo Z80 CTC si collega al bus come periferica I/O:
DATA0–DATA7 per dati e parole di controllo.
Segnali /IORQ, /RD, /WR per cicli di I/O.
Selezione chip /CE dal decoder di indirizzi.
Linee di selezione canale (tipicamente A0/A1 o equivalenti) per indirizzare uno dei 4 canali.
Linee interrupt con daisy chain (IEI/IEO) e uscita /INT verso la CPU.
La CPU scrive parole di controllo e costanti, poi legge eventuali stati secondo la mappa I/O della scheda.
Schizzo dei collegamenti più importanti
┌───────────────────────────┐ │ CPU Z80 │ │ DATA[0..7] /IORQ /RD /WR │ │ A0..A1 /INT /M1 │ └──────────────┬────────────┘ │ (bus + decode /CE) ▼ ┌──────────────────┐ │ Z80 CTC │ (Z0843006-type) │ 4× timer/counter │ │ IEI/IEO daisy │ └───┬────┬────┬────┘ │ │ │ CH0 CLK/TRG ◄────────┘ │ └────────► CH3 ZC/TO (clock/strobe) CH0 ZC/TO ───────────────┘ CH1 CLK/TRG ◄──────────────────────────► segnali esterni (eventi/clock) CH1 ZC/TO ───────────────────────────► periferiche / logica CH2 CLK/TRG ◄──────────────────────────► sensori / encoder / clock CH2 ZC/TO ───────────────────────────► tick / baud / trigger CH3 CLK/TRG ◄──────────────────────────► trigger esterno / chaining
Casi d’uso tipici
Tick di sistema periodico per timeouts e scheduling.
Baud-rate clock per una UART o per sincronizzare una seriale.
Misura frequenza contando impulsi in una finestra temporale.
Conta eventi (encoder, impulsi da sensori, contatori di produzione).
Catene di timing usando ZC/TO di un canale per alimentare il CLK/TRG di un altro canale.
Tabella 1 – Dati di identificazione e specifiche
| Caratteristica | Valore indicativo |
|---|---|
| Dispositivo | Z80 CTC (famiglia), es. Z0843006 |
| Funzione | 4 canali timer/contatore programmabili |
| Canali | 4 indipendenti |
| Ingressi per canale | CLK/TRG (clock esterno o trigger, secondo modo) |
| Uscite per canale | ZC/TO (zero count / timeout, impulso o onda quadra in base alla config) |
| Prescaler | Derivazione del clock per uso timer (valori dipendono dalla variante) |
| Interrupt | Interrupt per canale con priorità deterministica via IEI/IEO |
| Package tipico | DIP 28 (frequente per la famiglia; dipende dalla variante) |
| Speed grade | Il suffisso “06” spesso indica una classe di velocità; verificare la marcatura completa del componente |
Tabella 2 – Canali e funzioni operative (italiano)
| Aspetto | Significato pratico |
|---|---|
| Timer mode | Conteggio da clock di sistema (con prescaler) fino a zero, genera evento periodico |
| Counter mode | Conteggio impulsi esterni su CLK/TRG, utile per eventi e frequenza |
| Triggered start | Avvio conteggio su fronte trigger, utile per temporizzazioni “on demand” |
| ZC/TO output | Uscita di “evento” per strobe/clock, o onda quadra in modalità dedicate |
| Chaining | Uscita ZC/TO di un canale può pilotare l’ingresso CLK/TRG di un altro |
| IRQ daisy chain | Più periferiche Z80 possono condividere /INT con priorità deterministica |
| Evaluate |