UART s MHB1012 (AY-5-1012)



Tu situaci všichni známe. Poklidným rovnoměrným pohybem se pohybujete po té své trajektorii "nejmenšího odporu", když tu do vás někdo šťouchne a je vymalováno. Vychýlí vás to z trasy a máte co dělat, abyste se na ni zase vrátili a jeli dál svým stylem klídek, pohoda, smrádek, ale teploučko...:-) A když takový šťouch přijde 2x za sebou, je to fakt síla. Mě se to stalo. Nejprve dloub od Sillicona, který vyústil v Bastl Fest 2015 a během této akce zase šťouch od EC1045. To se vytvořila jakási skupinka diskutujících a probíraly se sériové porty, obvody 8251 a tak. Když tu najednou kolem plul EC1045 a jen tak do pléna prohodil, že klasický sériák je s MHB1012 a basta... Nevím jak u ostatních, ale u mě se v hlavě uhnízdil brouček a nedal pokoj, dokud jsem si s tím MHB1012 nepohrál...

Nějaké obvody tohoto typu mám, ale nikdy jsem jim nevěnoval pozornost. Přišly mi jako přiliš archaické a velmi složité na aplikaci. V podstatě jsem si dokázal vybavit jen jedno konkrétní zapojení a sice desku sériového modemu DSM-1 ze SAPI. Mlhavě jsem si vzpomínal na to, jak je ta deska složitá, a že s tím nechci nic mít. Přesto jsem si vzal do ruky starý teslácký katalog a na tu MHB1012 mrknul. A ejhle! Zas tak složité to není. Vlastně, když si s tím pohraju pomocí mého oblíbeného jednočipu 8051, bude to úplně jednoduché. Ale i přizpůsobení sběrnicovému systému klasických mikroprocesorů (8080, Z80, apod.) by se realizovat dalo, byť pro to tento obvod nebyl evidentně navržen. Přesto jsem zvolil ten jednočip (AT89S52) a postavil pokusné zapojení na nepájivém poli.

Á propos. Obvod Tesla MHB1012 je ekvivalentem AY-5-1012 od firmy General Semiconductor. Tato firma vyráběla i modifikované verze těchto obvodů, které si vystačily s jediným napájením +5V. Citelnou slabinou MHB1012 je totiž potřeba dvou napětí: +5V a -12V. Holt PMOS je PMOS... Ale existuje i ekvivalent v CMOS provedení pod označením TMS6011.

Připojení MHB1012 k plnotučnému (40 pinů) jednočipu řady x51 je velmi jednoduché. Datové vstupy a výstupy MHB1012 jsou propojené a přivedené na port P0 jednočipu (na P0 jsem dal pullupy 33K). Na konfigurační vstupy MHB1012 jsou natvrdo přivedeny odpovídající log. úrovně pro nastavené parametrů přenosu (bez parity, 1 stop bit). Stavové výstupy jsou přivedeny na piny portu P3 a řídící vstupy na piny portu P2. Stavové výstupy jsou trvale uvolněny připojením /SWE na GND. Konkrétní připojení jednotlivých pinů je patrné z výpisu programu (sekce definic EQU). Na P1.0 je připojen kontrolní LED, která ale není nutná. Jenže světýlka já rád:-)

Přenosová rychlost je automaticky dána kmitočtem přivedeným na vstupy hodin MHB1012. Tento kmitočet musí být 16x větší, než požadovaná přenosová rychlost. Zvolil jsem tedy 153,6 KHz, což po interním dělení 16 odpovídá rychlosti 9,6 KBd. Za tím účelem jsem sestavil jednoduchý krystalový oscilátor z hradel 74LS04 a krystalu 2,4576 MHz a kmitočet vydělil pomocí 74LS93 na požadovaných 153,6 KHz. Tyto hodiny jsem přivedl na oba hodinové vstupy MHB1012.

Pro připojení k terminálu jsem použil osvědčený levný čínský USB - UART TTL převodník s čipem PL2303, jehož signály Rx a Tx jsem přivedl přímo na SI a SO obvodu MHB1012. Tyto převodníky jsou sice napájené 3,3V, ale jejich vstupy jsou TTL kompatibilní a 5V tolerantní, takže pohoda.

Prográmek v jednočipu zajistí reset obvodu MHB1012, načtení konfigurace a následně odešle na terminál úvodní hlášku. Parametry přenosu jsou 9600-N-1. Následně program očekává znaky z terminálu (klávesnice), které vrací na terminál zabalené do hranatých závorek. Po odeslání znaku @ je vypsána závěrečná hláška a přenos končí, viz screenshot z Hyperterminálu.

    Software pro 8051 a MHB1012



Sériák s MHB1012 (AY-5-1012)
Pokusné zapojení s MHB1012
Sériák s MHB1012 (AY-5-1012)
Screenshot z Hyperterminálu


Suma sumárum, MHB1012 funguje jak má. A co se týká složitosti jeho zakomponování do sběrnicového systému klasického mikroprocesoru, tak to také nebude tak zlé. Pochopitelně to ale bude vždy složitější, než použití třeba 8251(A). Výhodou může být vyšší přenosová rychlost až 19,2 KBd oproti max. 9,6 KBd u 8251. Dovedl bych si představit třeba takovou přídavnou kartičku k PMI-80 právě s tímto obvodem. Obdoba mého minisériáku s 8251. Jen tak pro srandu, protože když retro, tak pořádný. Problémem ovšem zůstává potřeba napájení -12V, které třeba ani v PMI-80 a jiných běžných systémech s 8080 (o Z80 či 8085 nemluvě) nenajdeme. Jistou možností je použití měniče. U PMI-80 a systémů s 8080 by to konkrétně mohl být měnič z +12V na -12V typu ICL7660A. Pokud by se zároveň osazoval i převodník na RS232, třeba MAX232, je možné vytáhnout těch -12V z něj. Raději ale zůstanu u prověřeného 8251(A), avšak moc rád jsem si s MHB1012 pohrál. A až na něj zase při hledání nějakého švába ve svých zásobách narazím, už se na něj budu dívat jinak. S respektem, protože fakt něco umí...



Literatura:

[1] Konstrukční katalog číslicových integrovaných obvodů TESLA Eltos 1990
[2] Popis desky DSM-1 v AR B6/85 a na www.sapi.cz














RET



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