PC Loader pro PMI-80

- nahrávání přeložených programů z PC do PMI-80



Nejprve je nutno konstatovat, že autorem nápadu nahrávat programy do PMIčka z PC je pan Libor Pavlas. A nejde jen o nápad, ten může dostat kdekdo, ale pan Pavlas vytvořil i příslušný software pro PC i pro PMI a dal jej k dispozici na svých stránkách http://adoid.webzdarma.cz. Na jeho stránkách toho ovšem o PMI-80 naleznete mnohem více. Doporučuji!

Díky možnosti nahrávání přeložených programů z PC do PMI dostává práce s PMIčkem úplně nový rozměr a je potřeba za to vzdát díky. A protože dnes již jiným způsobem programy do originálních PMI ani do replik PMI nenahrávám, rozhodl jsem se toto komunikační prozhraní, které jsem si pro sebe nazval jako PC Loader, popsat zde na samostatné stránce. Je ovšem nutné přiznat, že začátky byly krušné. Prostě to nechodilo. Po mnoha marných pokusech jsem již autora podezíral z toho, že publikoval něco, co nefunguje. Dnes se za to podezírání dodatečně omlouvám:-)

Prvotní problémy

Zprvu se nahrávání vůbec nedařilo, program v PMI přijal správně jen pár bajtů a dál už to byly nesmysly. Zdálo se, že PMI prostě nestíhá. Tak jsem zkoušel různá nastavení COM portu, ale bezvýsledně. Pak jsem se zaměřil na komunikační program v PMI. Ukázalo se, že program navržený panem Pavlasem není příliš efektivní a dal by se zrychlit. A opravdu se mi podařilo napsat program nový a uspořit významný počet strojních cyklů. Jenže to nepomohlo. Sice se zvýšil počet správně přijatých bajtů, ale o nahrávání nějakých programů nemohla být řeč. Ze zoufalství jsem nakonec zkusil data posílat z notebooku přes převodník USB - COM. Notebook totiž vlastní COM nemá. Vůbec jsem tomu nevěřil, protože když byly neúspěšné pokusy na stolním PC se "skutečným" COM portem, tak proč by to mělo fungovat na nějaké náhražce... Jenže ono to šlo. A s defaultním nastavením portu. Nahrávání funguje pro libovolně dlouhý program či úsek dat. Bez jediné chybičky. Dosud nevím v čem byl problém, už jsem u toho noťase zůstal, ale ani jeden ze dvou portů PC s dvoujádrovým Intelem neposílal data správně. Přitom operační systém je shodný jako u toho noťase a porty jinak fungují (vyzkoušeno sériovou myší). Nakonec se ale problém vyřešil, viz. aktualizace pod schématem převodníku.

Zapojení kabelu PC Loaderu

Následuje schéma zapojení rozhraní (kabelu) pro nahrávání programů z PC do PMI-80. Základní zapojení se nijak neliší od původního návrhu autora tohoto nápadu. Pouze přibyl jeden tranzistor ovládající LED (světýlka já rád:-)). Ukázalo se to jako praktické. Při příjmu dat sice LED mžiká téměř neznatelně, ale na konci nahrávání viditelně problikne a tím signalizuje konec. Hodně se to osvědčilo v počátcích, kdy ne a ne do PMIčka cokoliv bezchybně nahrát... Volba tranzistorů není kritická. Vyhoví jakýkoliv univerzální spínací NPN tranzistor. Napájení +5V je vzato také z konektoru K2 na PMI-80 a sice z pinu 32. Ale jak bylo popsáno na stránce o úpravách PMI-80, muselo být nejprve na tento pin dodatečně přivedeno. Pro komunikaci jsou využity piny PB0 a PB1 portu PB ze služební 8255. Právě port PB je nevyužitý a je tak plně k dipozici uživateli. Výhodou je to, že PC loader funguje i na nerozšířeném PMI bez přídavné 8255 a v případě rozšíření o přídavnou 8255 je tato plně k dispozici uživateli.

Kabel pro nahrávání dat z PC do PMI-80

Aktualizace: červeně označené diody ve schématu jsou přidány nově. Dostal jsem totiž následující upozornění od Milana: Psal jsi, že ti to nefunguje z velkého PC, ale z redukce z notebooku ano. Když tak koukám na ty báze tranzistorů, jak jim tam nemilosrdně pouštíš -12V z RS232 a střídá se to hned s +12V, mohly by se při takovém šoku ocitnout i v lavinovém stavu a proto třeba "nezabraly". Nebo se spíš rozkmitaly. A ta redukce z notebooku asi dává menší napětí, než 12V, a proto to ty tranzistory skously. Zkus dát diody do báze - katodu na bázi, anodu na zem, aby se těch -12V ořízlo. 1N4148, a nebo ještě líp nějakou schottky BAT42/46. A pak to zkus nakonektit z PC... A já dodávám: zkusil jsem to, funguje to. Díky.

Původně bylo výše uvedené rozhraní osazeno přímo na desku programovacího přípravku pro EEPROM 28C64, který je jinak popsán na stránce o úpravách PMI-80. Jedná se o ty tři tranzistory, odpory a LED v popředí a konektor Canon 9 pin (ano, vím, že existují i provedení do DPS:-)):

deska programátoru EEPROM 28C64 obsahuje i rozhraní pro PC Loader

deska programátoru EEPROM 28C64 obsahuje i rozhraní pro PC Loader

Nahrávání dat z PC do PMI-80

nahrávání dat z PC do PMI-80

Aby nebylo nutné rozhraní stavět pořád dokola na přípravcích jiných a aby bylo možné využít PC Loader také v replikách PMI, vznikl nakonec klasický redukční kabel. Všechny součástky rozhraní jsou v krytce COM konektoru Canon 9 pin:

Kabel pro nahrávání dat z PC do PMI-80

jednoduchý PC loader cable

Nyní stačí jen na desku nově konstruovaného přípravku umístit příslušný 4-pinový konektor s vyvedeným napájením +5V, GND a signály PB0 a PB1. Je to dobře vidět třeba na terminálu k replikám PMI, nebo na (v době focení ještě nehotovém) přípravku pro programování klasických EPROM pomocí PMIčka:

terminál replik PMI-80
Společný terminál replik PMI s programovacím kabelem
úpravy mikropočítače PMI-80
budoucí přípravek pro pogramování EPROM s konektorem PC Loaderu


Software pro PC Loader

Pro odesílán dat z PC do PMI vytvořil (v Delphi) pan Pavlas jednoduchý komunikační prográmek, který si můžete stáhnout přímo z jeho stránek (i s programy pro PMI), nebo zde:

Komunikace PMI

Po spuštění programu, který se neinstaluje, se otevře následující okno:

okno programu PC Loaderu

okno programu PC Loaderu


Postup při nahrávání dat do PMI-80:

1) předpokladem je, že máte přeložený program, který chcete nahrát. Překlad musel proběhnout bez chyby a výsledkem překladu musí být soubor ve formátu Intel-HEX. Tento soubor může mít podle typu překladače koncovku OBJ (např. TASM), nebo HEX (např. XASM).

2) spusťe komunikační program na PC a zvolte COM port, na kterém máte připojené PMI

3) napište název souboru, který budete nahrávat do PMI a klikněte na OK

4) program vás vyzve, abyste spustili nahrávací program v PMI. Nejprve tedy připravte PMI na příjem dat a teprve poté klikněte na druhé OK v okně komunikačního programu. Nutno dodržet!

5) komunikační program nyní odesílá data do PMI.

Původním autorem navržené programy pro příjem dat v PMI-80 předpokládaly, že před jejich spuštěním vložíte na konkrétní adresy v PMI jednak počáteční adresu nahrávání, ale hlavně délku nahrávaného programu (počet bajtů). To se mi nezdálo moc praktické, po každé úpravě v programu, který právě ladím, zkoumat kolik bajtů po překladu má. Proto jsem navrhl program jiný, který automaticky ukončí nahrávání po přijetí 3 po sobě jdoucích kódů 76h. Tento kód patří instrukci HALT. Takže na konec překládaného programu stačí napsat 3x HALT a je to. Nemusíte se starat o to, jak je výsledný program dlouhý. A pokud byste náhodou potřebovali mít v programu v nějaké tabulce dat 3x hodnotu 76h, tak není problém program upravit, třeba na jiný kód, nebo na jiný počet přijatých kódů 76h.

Níže je ke stažení výpis jednoduchého programu pro příjem dat z PC a jejich ukládání do PMI. Jedná se o tzv. listing file, tedy přeložený kód doplněný o zdrojový program. Právě listingy jsou ideální pro ruční ťukání programů do PMIčka. Jedná se o vlastní odzkoušený a 100% funkční program. Data jsou ukládána od adresy 1D00h a jejich příjem končí po přijetí 3 instrukcí HALT (76h), takže je nezapomeňte přidat vždy na konec vašeho vlastního překládaného programu (či dat), který chcete do PMI nahrát. K odesílání dat je nutné použít výše zmíněný program od pana Pavlase. Posílá se vždy přeložený Intel-HEX soubor (koncovky OBJ, nebo HEX).

PMI PC Loader 1

Program má 51 bajtů. Změnu počáteční adresy nahrávání lze provést úpravou hodnot na adresách 1C01h (low byte) a 1C02h (high byte). Jen pro zajímavost: nahrání 512 bajtů trvá 1 minutu a 5 sekund:-) Po úspěšném přijetí 3 po sobě jdoucích instrukčních kódů 76h příjem dak končí, program předává řízení zpět monitoru a to od adresy 0000h. Ukončení nahrávání je tedy ukončeno obligátní hláškou "PMI-80". Nyní můžete příkazem EX nahraný program spustit od zvolené adresy (defaultně 1D00h).

V paměti EEPROM na přídavné kartě k PMI-80 (viz. stránka o úpravách PMI-80) mám uložen program PC Loader 2, který je již komfortnější. Po jeho spuštění je totiž možné jednoduše zadat adresu v RAM, od které má program přijímaná data ukládat. Je pochopitelně možné ukládat i do rozšířené RAM. Pro zadání adresy program využívá podprogramu MODAD z monitoru. Příjem dat opět končí po přijetí tří po sobě jdoucích instrukcí HALT.

Nahrávání dat je v době psaní tohoto článku prováděno pomocí notebooku HP s procesorem SEMPRON 1800 a převodníhu kabelu USB-RS232 (noťas nemá vlastní COM port). Operační systém je Windows XP Pro SP2. Nejsou nutné žádné změny v nastavení COM portu. Pouze je nutné se nejprve podívat, jaké číslo COM wokna připojenému převodníku přidělily.


*** Aktualizace ***

Jelikož jsem dotáhl nový přípravek pro programování EPROM do stavu, kdy jsem schopen programovat i EPROM 8708 (viz. stránka o úpravách PMI-80), mám nyní program pro příjem dat z PC (PC Loader 2) v této paměti přímo na desce PMI-80 a nemusím už používat rozšiřující kartu. Pohoda to je:-)

Přídavná EPROM 8708

přídavná EPROM 8708 s PC Loaderem 2


RET



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