29. 8. 2015

Proč nefungoval magetofon u PMD 85(-1)

U magnetofonů a jejich interfacingu s osmibity setrváme i u dnešního postu a povíme si, proč byly takové problémy s nahráváním na kasetu u PMD 85, najmě u prvního modelu, PMD 85-1. Tedy, máme-li být přesní, s nahráváním problém nebyl, to se zdařilo vždy, když se stroj nepřehřál nebo z jiné příčiny nezkolaboval, jen se záznam jaksi nedařilo dostat zpět do počítače.


Péčí autora stránek www.sapi.cz máme k disposici schema, a na něm je vše vidět zcela zřetelně: věčný pomník konstruktérské hlouposti a neumětelství.

První strašidelností je obvod Tesla MHB 9500, označený na schematu jako D18. Jde o specialisovaný telefonní IO, který je zde využíván pro generování vysílacích hodin. Frekvence se nastavovala odporovým trimrem R22, a jak lze vytušit, s ohledem na teplotní a časové kolísání kapacity kondensátoru C8 (pouhých 220 piko!) bylo vysílání PMDčka frekvenčně opřeno o kolo. Přítomnost propojky X1-X2-X3 arci naznačuje, že kohosi již během konstrukce napadlo, že je to nesmysl, máme-li ve stroji krystalem poháněný časovač 8253 (z něj vede signál OUT1). Jak byla tato propojka zapojena ve skutečných mikropočítačích, mi není známo (resp. za ty roky si to už nepamatuji), optimisticky proto věřme, že hodiny byly připojeny na OUT1.

Pojďme však dál. Seriová data vysílaná z USARTu 8251A se XORovala s hodinami, čímž se generoval Manchester kod (D19B). Způsob připojení k magnetofonu přes dělič a RC filtr je dosti primitivní, minimálně oddělovací kondensátor by zapojení slušel, ale budiž, z hlediska funkčnosti žádný problém.

Ve zpětném směru opět chybí oddělovací kondensátor a signál je přiveden přímo na vstup (bipolárního) operačního zesilovače Tesla MAA748 (D21). Ten slouží jako komparátor, avšak je zapojen chybně: resistor R72 má gigantickou hodnotu 1 MΩ, takže operační zesilovač pracuje téměř v režimu otevřené smyčky a generuje nemalé zkreslení, nehledě na to, že ani vstupní impedance 6k8 není podle normy. Proč nebyl použit komparátor, se mne, prosím, neptejte, nevím, faktem je, že u dalších modelů byl na tomto místě osazován resistor 100k. Následuje východoněmecký A301D, který je úplně zbytečný; také byl v další versi nahrazen transistorem.

Skutečné elektronické ohavnosti se arci začínají dít dále. Výstup signálu je třemi XOR hradly D19A,C,D zderivován a výstup triggeruje monostabilní klopný obvod MH74121 (D17). Pokud by tento puls měl délku 3/4 periody hodin, byla by, theoreticky, na jeho konci na vstupu klopného obvodu D1A platná data. Jenže tolerance je tu poměrně přísná: pokud to bude 1/2 periody nebo celá perioda, zapojení už nebude fungovat, a k tomu musíme ještě připočítat kolísání rychlosti posuvu pásku, nepřesnost vstupních hodin a deformaci signálu ve tvarovacích obvodech magnetofonu, takže reálně bych viděl požadovanou přesnost délky pulsu ±5 až 10 %. To potvrzují mé dávné zkušenosti: PMDčka loadovala jen tehdy, když se manuálně nastavila snímací hlava do určité polohy, čímž se nepřesnost délky pulsu kompensovala. Proč tento puls opět negenerovat s téměř absolutní přesností a bez jakéhokoli dalšího hardwaru pomocí obvodu 8253, fakt nechápu…

A na závěr to vůbec nejlepší: v obvodu není implementován reset dekoderu, takže výsledek závisí jak na správné polaritě signálu z magnetofonu (tu ale běžné magnetofony nezaručovaly, nemajíce k tomu důvod), tak na přesném průběhu nástupu zaváděcího tonu. Konstruktér, jmenovitě tedy Roman Kišš, tak efektivně negoval význam zaváděcího tonu, protože ten slouží k tomu, aby se obvody magnetofonu i interfacu ustálily a v době příchodu prvního datového bitu pracovaly v optimálních hodnotách. Kiššovo zapojení naopak vyžaduje naprostou přesnost zaváděcího tonu: pokud se nepřečte jeden jediný puls (resp. jejich libovolný lichý počet), budou výstupní data invertována a USART se může jít klouzat – a uživatel počítače spolu s ním, protože svůj program do počítače prostě nenačte.

Ve svém emulátoru jsem přes deklarovanou snahu o věrnost originálu podlehl a obvod dekoderu doplnil o resetovací čítač, který v případě, že se načítá nepřetržitý proud nulových dat, výstup invertuje. USART dostane krátký break, avšak z něj se sám zotaví a přijímat bude vždy data ve správné polaritě.

Mimochodem, v bratislavské inovované versi PMDčka (-2 a výš), která byla z hlediska kvality o třídu jinde, tyto problémy vyřešili softwarovým čtením dat z magnetofonu, která místo na datový vstup přivedli na pin DSR USARTu. Tím zároveň mohli zlikvidovat přepínač vstupu, umístěný u předchozího modelu mezi oběma konektory DIN na zadní stěně (na schematu PR2), protože pro proudovou smyčku se tak uvolnil RxD. Jak primitivní, ale jak účinné, řekl by klasik.

1 komentář:

  1. Vidíte, a tady Romana Kišše glorifikují:
    http://pctuning.tyden.cz/hardware/multimedia-zvuk-tv/26730-inspirujici-setkani-s-romanem-kissem-tvurcem-pmd-85
    Poté, co jsem přečetl Váš článek a prošel si schéma zapojení mě pobavila věta: "Kdo si PMD pamatuje, si jistě vybaví, že práce na něm nebyla zrovna pohodlná a počítač se přehříval. Ne proto, že by ho nešlo navrhnout lépe, ale jednoduše proto, že nebyly žádné lepší součástky."
    Je legrace jak nostalgie po letech zastírá historická fakta. Ještě že většinu věcí lze stále dohledat :-) To však udělá pouze ten kdo se o fakta zajímá, konzument nikoliv.
    jef111

    OdpovědětVymazat