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.

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čů

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

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.