Z80 CTC

integrovaný obvod

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.

Z80 CTC
Rozložení pinů obvodu Z80 CTC

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 obvodu

editovat

Nastavení režimu

editovat

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

Reference

editovat
  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

editovat