Sunday, June 2, 2019

NCB48 2. Hardware

NCB48 je maličká a pomerne hutná doštička s MCU z rodiny MCS-48, periférnymi čipmi UART 8251, RIOT 8155 a ROM/RAM externou pamäťou programu. Môže byť použitá ako výukový, vývojový, ladiaci počítač, čo vyžaduje verziu MCU s internou EPROM, ale aj ako samostatne fungujúci počítač kde sa dajú s výhodou využiť verzie CPU bez EPROM. Pre prvé využitie je k dispozícii monitor MON48 s možnosťou nahratia programu cez sériový port, výpisu registrov, pamäti a spúšťania vlastných programov. Program nahraný do externej programovej pamäte RAM sa potom spustí z menu monitora ak sa jedná o program na adresách 400H alebo 800H. Alebo od adresy 000H stlačením druhého tlačítka RESET s preklopením EA pinu do externého módu. V internom móde EA pinu MCU plynule prechádza medzi internou ROM s monitorom a externou programovou pamäťou pri prechode cez adresu 400H alebo 800H, podľa použitého čipu. Pri prepnutí na externú pamäť máme pre vlastný program k dispozícii celý rozsah 4kB 000..FFFH v externej pamäti.



Ďalej doska obsahuje obvod 8155, ktorý pridáva 256 byte externej dátovej RAM, jeden 14 bitový čítač/časovač a tri paralelné brány. Vstup do timeru v 8155 je odvodený z oscilátora 74HCT4020 a má frekvenciu 76.8kHz. Pri režime 8155 timera kedy sa po dopočítaní generuje jeden impulz s periódou 1/f to zodpovedá cca 4.3 inštrukčnému cyklu pri kryštáli 4.9152MHz, 6.3 cyklu pri kryštáli 6.144MHz, a 11.3 cyklom pri kryštáli 11.0592MHz. Pri prerušení z timeru 8155 je jedna perióda dostatočne dlhá na to, aby interrupt bol vždy detektnutý a zároveň je dostatočne krátka na to, aby sa po návrate z prerušenia nevyvolalo hneď ďalšie. Pinom P2.4 MCU sa volí medzi IO a MEM v 8155.

Pre sériovú komunikáciu nezávislú od rýchlosti MCU tu je klasická 8251A so samostatným oscilátorom a voľbou prenosovej rýchlosti v rozmedzí 19200-1200 baud pomocou jumpera. Pre MCU sa môže použiť ľubovoľný kryštál 1-11MHz. Pre NMOS verzie max 6MHz. Na ukladanie programu je tu programová RAM. Prístup do nej je vďaka pomocnej logike možný nielen signálom PSEN, aby sa dal z nej spúšťať program ale aj signálmi RD a WR, aby sa dala modifikovať a prehliadať.

Pre nasadenie dosky ako samostatného počítača sa dajú použiť aj verzie MCU bez EPROM, čiže 8035/8048, 8039/8049 alebo 8040/8050. Vtedy je treba mať na pozícii externej pamäte programu EPROMku. Použiť sa dajú aj 24 pinové aj 28 pinové EPROM. Zlatá kombinácia 8050, 8251, 8155 a 2732 nám dáva riadiaci počítač s omračujúcimi hodnotami 4kB programovej pamäte, 512 byte RAM, dvomi timermi, sériovým portom a cez 30 IO pinov pri dych berúcej rýchlosti.

Zapojenie sa vyvíjalo a menilo. Prvá verzia bola s TTL logikou, ale súčiastok bolo už priveľa. Reset bol riešený s RC členom, tranzistorom a Schmitt hradlom. Celé sa to postupne zjednodušilo do výslednej podoby s jedným TTL oscilátorom, binárnou deličkou a jedným GAL. Súčasná podoba stále nie je 100%. Vynechanie Schmitt triggera sa prejavilo. RESET po zapnutí napájania nie je spoľahlivý. EA pin sa nastaví správne, ale MCU sa nie vždy rozbehne. Ručný RESET cez tlačítka je spoľahlivý. Prekvapivo ma najviac potrápil obvod UART 8251. Nenápadný vstup CLK, ktorý v NCB85 na seba žiadnym spôsobom neupozornil tu robil problémy. Nedá sa kŕmiť ani signálom ALE z CPU ani výstupom z 74HCT4060. Podarilo sa mi síce rozkmitať 74HCT4060 pri prihnutých hodnotách odporov aj s kryštálom 19.6608MHz, ale ani to nestačilo. UART potrebuje rýchle hodiny. S CPU síce UART komunikuje, ale piny Rx a Tx nereagujú. Preto tu je na rozdiel od NCB85, použitý 74HCT4020 a samostatný oscilátor. Z pomocných IC z prvej verzie neostal vo výslednej ani jeden jediný. Oscilátor funguje 4.9152MHz, ale aj 2.4576MHz. Podľa skúseností z NCB85 by mal fungovať aj oscilátor 9.8304MHz. Na doske sú vyznačené baud rates pre oscilátor 4.9152MHz.

Schéma je tu
GAL logika je tu

No comments:

Post a Comment