Z80 CTC

integrovaný obvod
Rozložení pinů obvodu Z80 CTC

Z80 CTC (Z80 Counter/Timer Circuit) je integrovaný obvod z rodiny procesoru Z80. Jedná se obvod poskytující čtyři nezávislé čítače/časovače. Protože se jedná o obvod z rodiny procesoru Z80, umožňuje plně využívat možnosti přerušovacího systému procesoru Z80. Podobný obvod v rodině procesoru Intel je obvod Intel 8253.

Obvod je navržen tak, aby byl snadno použitelný pro generování přenosové rychlosti pro obvod Z80 SIO.

Obvod je použit např. společně s obvody WD2797, Z80 PIO a Z80 SIO v univerzální I/O kartě EXIO k počítačům Sharp.[1] Je také součástí cvičného modulu Z80 používaném k výuce na Západočeské univerzitě.[2] Společně s obvodem 8255 je použit v počítači Rum 80 PC.[3]

Analogickými obvody jsou obvody UA857D, UB857D a VB857D.[4]

Režimy čítačů/časovačůEditovat

Čítače/časovače mohou pracovat v následujících režimech:

  • čítač,
  • periodicky spouštěný časovač,
  • časovač spouštěný vnějším impulsem.

Pro dosažení větších rozsahů časování a čítání je možné čítače/časovače zapojit do kaskády. Z důvodů omezení počtem pinů pouzdra mají pouze tři čítače/časovače výstupní signál signalizující dosažení předepsané hodnoty, čtvrtý čítač/časovač může pouze generovat přerušení.

Konfigurace obvoduEditovat

Nastavení režimuEditovat

Jednotlivé čítače/časovače se nastavují nezávisle pomocí svých konfiguračních registrů. Podle toho, zda je či není měněna časová konstanta, je nutno do konfiguračního registru příslušného čítače/časovače zapsat dvě nebo jednu hodnotu.

Nastavení režimu
bit 7 6 5 4 3 2 1 0
povolení přerušení 0 - časovač dělitel hodinového kmitočtu pro časovač
0 - 16
1 - 256
vnější spouštění čítaní/časování
0 - sestupnou hranou
1 - vzestupnou hranou
spouštění časování
0 - automaticky
1 - vnějším signálem
0 - nastavená časová konstanta nebude měněna
1 - bude změněna časová konstanta (obvod očekává další byte s časovou konstantou)
0 - nové nastavení bude aplikováno po dokončení stávajícího cyklu
1 - stávající cyklus bude přerušen, nové nastavení bude aplikováno ihned
1
1 - čítač    

Nastavení vektoru přerušeníEditovat

Než je povoleno generování přerušení, je nutné nastavit vektor přerušení, který bude odesílán procesoru. Vektor přerušení se nastavuje pro všechny čtyři čítače/časovače společně. Nastavuje se společná část vektoru přerušení, dva bity vektoru přerušení jsou generovány v závislosti na tom, který čítač/časovač přerušení vyvolal.

Vektor přerušení
bit 7 6 5 4 3 2 1 0
nastavení vektoru přerušení vektor přerušení     0
generovaný vektor přerušení vektor přerušení (programovaná část) číslo čítače/časovače 0

ReferenceEditovat

Externí odkazyEditovat