HW násobička Tesla MH102



Již mnohokrát jsem na těchto stránkách konstatoval, že si moc rád hraju se starými integrovanými obvody, zejména pokud se vyznačují nějakou zvláštní funkcí. Nepotřebuju z nich stavět nic konkrétního, prostě si jen rád ověřím jejich funkcionalitu. Zkrátka kdo si hraje, nezlobí:-)

Jedním z obvodů, na které jsem měl již delší dobu zálusk, je hardwarová násobička MH102 z produkce bývalé československé Tesly. A tak, když jsem jednou cosi nakupoval v eshopu zabývajícím se i staršími součástkami, zkusil jsem "čeknout", jestli MH102 nemají. Měli a za pár korun. Dva kousky hned putovaly do košíku a já začal připravovat svůj násobící experiment.


Tesla MH102


MH102 je ve starém tesláckém katalogu, který sice někde mám, ale hlavně je naskenovaný na netu, tak proč ho hledat. Stránku jsem si vytiskl, zběžně prohlédl a jal se chystat testovací prográmek. Jak se později ukázalo, to zběžné prohlédnutí katalogového listu byla chyba, která mě stála spoustu času a málem i jeden MH102. A přitom už jsem se několikrát podobně spálil a sliboval si, že ty "datašíty" budu číst pomalu a pořádně!

Násobička umí násobit dvě čísla. Čísla mohou být buď 8-bitová bez znaménka (unsigned), nebo 7-bitová se znaménkem (signed), kde znaménko je na osmém bitu. Výsledek je vždy 16-bitový se znaménkem, nebo bez. Volba signed/unsigned se řídí log. úrovní na vstupu FR obvodu. V režimu signed umí násobička ještě zaokrouhlovat, ale tuto funkci jsem nezkoušel, ani se jí nijak blíže nevěnoval (páč jsem ji asi ani nepochopil:-))

Jako obvykle jsem k testování zvolil jednočip 8051, přesněji své udělátko DUINO52. Jakmile dorazila násobička, zadrátoval jsem to na nepájivém poli a naprgal jednočip. Nefungovalo to. A co víc. MH102 topil jako blázen! Jak se později ukázalo, obvod to naštěstí přežil a funguje správně. Ihned jsem to vypnul a začal pátrat po příčině. A při té příležitosti nahlédnul do toho katalogového listu znovu a pořádně...

A najednou se začalo ukazovat, že si hraju s něčím, o čem vůbec nic nevím. Obvod není vyroben technologií TTL, jak jsem předpokládal, ale I2L (co to proboha je?). Označení Icc u napájecího pinu v pinoutu nebyla tisková chyba a opravdu to není Ucc. A kompatibilita s úrovněmi TTL? Žádná není. Tedy co se výstupů týká.

Tak tedy obvody I2L je nutné napájet trochu jinak. Zjednodušeně řečeno se nenapájí napětím, ale proudem:-) MH102 vyžaduje napájecí proud 80-160 mA, ideálně někde okolo 120 mA. Tedy napájecí pin Icc přivést na +5V nikoliv přímo, ale přes odpor cca 33R/0,5W. Tím je zajištěno správné napájení. Napětí na napájecím pinu je pak ale jen okolo 1,3V a je tedy jasné, že o TTL úrovních na výstupech z obvodu nemůže být řeči. Takže pullupy na DATA... OK. Jenže ono to nefungovalo ani pak. Zpomalil jsem tedy proces násobení dvou čístel tak, abych mohl testovat signály logickou sondou a ejhle! 8051 nedokáže vybudit ani řídící vstupy MH102 na log. H. Takže i tam putovaly pullupy a zdálo se to být v pořádku. Ale ještě nebylo. Násobička sice začala násobit, ale pak najednou hodila chybu. Bylo to u čísla 8, které je první z čísel s nastaveným 8. bitem. Odhalení příčiny bylo snadné. Měl jsem MH102 nakonfigurovaný na násobení 7-bitových čísel se znaménkem (signed). Ono je to totiž v tom katalogu v popisu vývodů špatně. Ale ve funkční tabulce je to správně (FR = Low = Unsigned 8 bit). Jenže já to zapojoval podle toho popisu a měl jsem FR = High. Po opravě se násobička konečně rozjela a násobila jako víno:-)

Testovací prográmek pro 8051 přikládám. Není to nic světoborného. Procesor nejprve do MH102 zapíše jedno a druhé číslo k násobení a následně si stáhne výsledek (2 bajty) a uloží pro kontrolu. Poté stejná čísla vynásobí svou instrukcí MUL AB a výsledek porovná s výsledkem z MH102. Násobí se dvě unsigned čísla v rozmezí 0-255 stylem každý s každým. Začíná se 0x0. Poté je první číslo inkrementováno a pokud přeteče, je inkrementováno i druhé číslo. Jakmile přeteče i druhé číslo, je pokus ukončen a blikáním kontrolní LED oznámen úspěch. Pokud se dioda rozsvítí natrvalo, došlo k chybě při porovnání výsledku z MH102 a z kontrolního násobení uvnitř procesoru (instrukcí MUL AB). Vše je patrné z programu.

    Software pro 8051 a MH102


Vyzkoušel jsem i několik násobení čísel se znaménkem a i zde bylo vše OK (ale toto není v testovacím programu). Na následujících obrázcích je fotografie z průběhu testu a náčrt připojení MH102 k 8051:


Test MH102
Test MH102 s 8051
Test MH102
Připojení MH102 k 8051


Pochopitelně nemá smysl násobičku připojovat k procesorům, které ji už uvnitř mají. Což je i případ 8051, ale zde je to zase praktické pro ověřování výsledků. Nicméně u procesorů bez vnitřní HW násobičky (8080, Z80, apod.) může její připojení výrazně zvýšit výpočetní výkon při násobení. A to se vyplatí:-)


MH102 v počítači SMEP PP-01 Color

Suma sumárum je MH102 zajímavý obvod, který ale asi nebyl moc využíván. Jedinou mě známou aplikací je jeho zakreslení ve schématu počítače SMEP PP-01. Ovšem v technickém popisu k PP-01 je uvedeno, že MH102 nebyl standardně osazován. Nedalo mi to a rozdělal jsem své PP-01, které jsem však ještě nikdy neměl puštěné, a které zkrátka čeká na své zprovoznění. A opravdu jsem záhy našel pozici pro MH102. Je na základní desce vpravo nad obvodem 8255. Já tam nemám ani patici, ale je zřejmé, že se jedná o pozici pro MH102. Dokonce je osazený i napájecí odpor 33R. Zkusmo jsem proměřil některé signály a sedí to. Tam má být MH102! Až budu to své PP zprovozňovat, určitě patici s násobičkou přidám. V příručce jsou uvedeny její příslušné adresy, takže by neměl být problém si to vyzkoušet i v BASICu. A naopak kdybych někdy zprovozňoval nefunkční PP-01 a byla by tam MH102, nejprve bych to vyzkoušel bez ní, než se bezhlavě pouštět do "větších akcí". Je to žrout:-)


MH102 v PP-01
MH102 v PP-01
MH102 v PP-01
MH102 v PP-01


MH102 v počítači IQ-151

Násobičku MH102 a dokonce i CRC kontrolér MH101 lze prý také přidat do IQ-151. Což jsem se dozvěděl nedávno. Pokud by někdo byl ochoten poskytnout bližší informace a nebo nafotit pozice pro tyto obvody na desce, budu rád a přidám to sem. Já s IQ-151 nechci nic mít. Je mi od samého počátku odporný. První československý počítač a vlastně i první opravdový počítač vůbec, se kterým jsem měl možnost se seznámit byl elegantní PMD-85 (-1). A jistě uznáte, že oproti němu bylo IQ-151 synonymem hnusu...

Prosba byla vyslyšena a tak mohu prezentovat následující obrázky. První dva obrázky nafotil na svém IQ-151 Sillicon a pozice pro MH101 a MH102 identifikoval Petr (EC1045). O napájecích rezistorech a softwarové obsluze těchto obvodů v IQ-151 mi však není nic známo.


MH101 a MH 102 v IQ-151
MH101 a MH 102 v IQ-151
MH101 a MH 102 v IQ-151
MH101 a MH 102 v IQ-151


Petr ještě poslal svou překreslenou desku IQ-151 revize G, která vypadá trochu jinak. Oba obvody jsou na desce zakresleny, viz. detail dole uprostřed:


MH101 a MH 102 v IQ-151 rev.G
MH101 a MH 102 v IQ-151 rev.G
MH101 a MH 102 v IQ-151 rev.G
MH101 a MH 102 v IQ-151 rev.G


MH102 v literatuře

Obvod MH102 a jeho použití je také dobře popsáno v zelené "ročence" amára Mikroelektronika 1990 na straně 44. Popis je směrován pro připojení k jednodeskáči PMI-80 (dal by se "fláknout" na Unikartu), ale může sloužit i obecně. Ale toto jsem se dozvěděl až poté, co jsem si na to všechno musel přijít sám, což je ostatně mým zvykem...:-) Přesto bych rád poděkoval za správné nasměrování konkrétně Romanu Bórikovi, EC1045 a Danhardovi. Díky!


Další obvody I2L?

I2L je zajímavá technologie, a proto se v nejbližší době hodlám pustit do testování obvodů MH112 (programovatelný dělič kmitočtu) a MH1KK1 kodér klávesnice. Případně i dalších, co se mi dostanou pod ruku. Tesla jich měla docela dost typů.



Literatura:

[1] Mikroelektronika (zelená ročenka AR) 1990, str. 44
[2] Schéma zapojení a technický popis SMEP PP-01 Color
[3] Katalogový list Tesla MH102



RET



Odladěno na MS IE 8.0 a Firefoxu při rozlišení min. 1024 x 768 pixelů
www.NOSTALCOMP.cz    2010  -  2017