Z80 CTC

© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
Z80 CTC
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čů

Čí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 obvodu

Nastavení režimu

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
bit76543210
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í

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í
bit76543210
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če0

Reference

  1. Sharp EXIO na 8bity.cz
  2. http://home.zcu.cz/~dudacek/Simicos/SIMICOS.htm
  3. Rum 80 PC na valachnet.cz
  4. Archivovaná kopie. vencovo-bastleni.wz.cz [online]. [cit. 2013-07-04]. Dostupné v archivu pořízeném dne 2016-03-04. 

Externí odkazy

Média použitá na této stránce

Z80 ctc.svg
Autor: Standazx, Licence: CC BY-SA 3.0
Rozložení pinů obvodu Z80 CTC
Basic Measuring Instruments - Math Processor 83002190 - Zilog Z80 CTC Z84C3008PEC-3918.jpg
© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
Basic Measuring Instruments - Math Processor 83002190 - Zilog Z80: peripheral part counter/timer channel (CTC) Z84C3008PEC