Simulátor EPROM

Aktualizace 8.11.2016 - další úprava obslužného software

Aktualizace 13.9.2016 - menší úprava obslužného software.

Moderní zařízení s mikroprocesory mají řídicí program uložen v paměti typu Flash. Její obsah se obvykle dá změnit jednoduchým způsobem. Např. USB, JTAG, sériová linka apod.

Pokud jste však někdy potřebovali odladit program v paměti EPROM, nastává nekonečný kolotoč. Vyjmutí čipu, smazání UV zářením, programování, vložení čipu, ... Jedno takové kolečko zabere i půl hodiny.

Pro takové situace je velmi užitečným pomocníkem simulátor EPROM. Pro hostitelský systém se chová jako klasická paměť EPROM v režimu čtení, její obsah je však možno rychle a elegantně měnit z PC.

Když jsem si chtěl něco takového pořídit, tak jsem byl nemile překvapen. Nové simulátory už nikdo nevyrábí, ti co je mají, tak se jich zbavit nechtějí. Dobrá, nějaký si postavím. Jenže ouha. Všechny jsou na LPT, ten však už na počítačích není! Po dlouhém hledání jsem přece jen něco našel. Komunikace byla po sériové lince, jenže buď pouze jednosměrně, nebo obsahoval obtížně dostupné součástky. Co teď? Vlastní tvorba!

Zapojení je více méně klasické. Paměťový čip SRAM, oddělovače sběrnice, a pro komunikaci jednočip se sériovou linkou. Nakonec ještě jedna úprava. Paměti i MCU pracují od 3V, tak nebude problém s napájením z hostitelského systému. Akorát galvanické oddělení od PC muselo pryč. To je však možné připojit externě. A tady je schéma.


Při návrhu plošného spoje jsem vycházel z výkresu krabičky Z44. Velká chyba! Když krabička přišla, zjistil jsem, že uchycení desky má jinou rozteč. Sice jen o jeden milimetr, ale i tak je třeba otvory v desce propilovat. Výsledná deska má rozměr 138,4 x 67 mm. Strana součástek, strana spojů, osazovák.

Několik neosazených plošných spojů ještě mám, tak si o ně napište...

Součástky jsou běžného typu. Rezistory velikost 0207, keramické kondenzátory s roztečí vývodů 5 mm, elektrolytické kondenzátory s roztečí 2,5 mm a průměrem 5 mm. Dioda LED musí být nízkopříkonová. Signalizuje emulační režim. Je vhodné pod krystal použít izolační podložku.

Seznam součástek
R1 3k3
R2 1k5
RN1 8 x 10k
RN2 6 x 10k
C1, C2 22 pF
C3, C4, C5, C6, C7 1uF/50V
C8, C9, C10, C11, C12, C13 100nF/50V
D1, D2 1N5819
LED1 3mm, 2mA, zelená
OK1 PC815
Q1 11,0592 MHz
IC1 MAX232
IC2 AT89S52
IC3, IC4 62256-55
IC5, IC6, IC7 74HC541
IC8 74HC00
IC9 74HC32
J1 PSH02-02
JP1 neosazeno
SV1 KK28025C
X1 CAN9Z90

Firmware emulátoru je možné do procesoru nahrát obvyklým způsobem před jeho zapájením. Nebo můžete procesor programovat až po zapájení, např. pomocí programátoru Sprog. Připojuje se na konektor JP1.

S hostitelským systémem je simulátor propojen plochým kabelem, na obou koncích zakončeným samořeznou paticí 28 pinů. Délka kabelu by neměla přesáhnout 30 cm. Pro obvody s 24 vývody se použije další patice, nasazená na vývody 3 až 14 a 15 až 26.

Na konektoru J1 je k dispozici signál pro reset cílové aplikace. Připojuje se paralelně k reset tlačítku, nebo jiným rovnocenným způsobem. Je třeba věnovat pozornost polaritě připojovacích vodičů.

Simulátor podporuje následující typy EPROM:

  • 2716
  • 2732
  • 2764
  • 27128
  • 27256
  • 27512

Přepínání je čistě programové. S uvedenými obvody SRAM (doba přístupu 55 ns) je celková doba přístupu na emulační patici přibližně 90 ns. To by mělo stačit většině běžných systémů s vnitřním taktem do 10 MHz.

K ovládání simulátoru je určen obslužný program Esim1. Pro rychlejší komunikaci emulátoru s PC jsem zvolil přenosovou rychlost sériové linky 115 200 baudů a velmi jednoduchý binární protokol.

Verze 1.2 řeší situaci při spuštění programu na počítači s COM1 a současně některým dalším portem COM1x. Dále byla rozšířena kontrola chyb komunikace.

Ve verzi 1.1 byla přidána podpora sériových portů s číslem vyšším než 9. Dále se podařilo doladit komunikaci, takže přenos obsahu největší podporované EPROM trvá asi 8,5 sekund. (Předchozí verze potřebovala cca 20 sekund.)

Program pro mikroprocesor emulátoru ve formátu Intel-Hex a obslužný program můžete stahovat zde:

Obslužný program se neinstaluje, stačí nakopírovat do vhodného adresáře (např. C:\Esim).