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 | ||||||||
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í
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
- Sharp EXIO na 8bity.cz
- http://home.zcu.cz/~dudacek/Simicos/SIMICOS.htm
- Rum 80 PC na valachnet.cz
- Archivovaná kopie. vencovo-bastleni.wz.cz [online]. [cit. 2013-07-04]. Dostupné v archivu pořízeném dne 2016-03-04.
Externí odkazy
- Z8430/Z80 CTC Timer/Counter Circuit datasheet na z80.info
- Stručně o CPU Z80 na zxmagazin.80.cz