Jste zde

PSEN trochu jinak

Kde vzít 33. drát na x51 procesoru když už opravdu není kde brát. Speciální využití pinu PSEN tak

jak je neznáte.

Každý konstruktér s mikroprocesorem už někdy stál před  problémem nedostatku vodičů. Mně se tohle stalo v aplikaci, kde si zákazník po 3 měsících vzpomněl, že „nutně potřebuje“ startovat nějakou událost pulsem z mikropočítače. Přišel jsem tedy ke svému programu, o kterém jsem již zapomněl, co se dalo, a zjistil jsem, že jsem klasicky spotřeboval absolutně všechny vývody, kterými 89c52 disponovala.
 
 


Zbývaly dvě možnosti :
  1. najít logický stav, v němž se výstupy nemohly nacházet, a použít nějakou logickou detekci. Pomalu na další procesor...
  2. pověsit na I2C nebo na RS232 další procesorem řízené zařízení, vrtat se půl dne v mém někdejším softwaru, aby to nekolidovalo

Nakonec jsem použil vývod PSEN :

V x51 je tento vodič použit na selekci vnější EPROM, pracujete-li v aplikaci s vnější pamětí programu. Pokud však používáte pouze vnitřní programovou paměť, je tento vývod nevyužít. 


Jak vidno z časového diagramu PSEN, x51 generuje impulsy při použití instrukce MOVC a MOVX. Použít MOVX nelze, protože při čtení se porty X51 nastaví do log. 1, a tím pádem přijdete o data na výstupu. Lze ale použít instrukci MOVC. 


Pro vygenerování pulsu na pinu PSEN je tedy potřeba udělat následující :
 

  • Přečtěte P0 a P2 pomocí přímého přístupu a zapište jej do registru
  • Vymaskujte oba tyto registry tak, aby tam, kde používáte pin jako vstupní, figurovala log. 1 (tím zajistíte, že i při změně stavu výstupu po dobu generování pulsu na PSEN nepůjdou proti sobě dva výstupy – viz. zapojení výstupů x51). 
  • Uložte registry do DPTR a proveďte instrukci MOVC. 

Provedením instrukce MOVC vygenerujete na pinu PSEN sekvenci čtyř po sobě jdoucích impulsů. 
Jejich zpracování je na vás – já jsem použil obvod 4518 – 2x 4-bitový desítkový BCD čítač, nulovaný přímo z RESETu pro procesor. Výstup Q3 lze použít rovnou pro zapínání i vypínání jakéhokoli spotřebiče. Po prvním zpracování instrukce MOVC spotřebič zapne, po dalším zpracování vypne.

Závěr :
Netradiční způsob, jak si pomoci v nejvyšší nouzi. Vzhledem k celkem velkému omezení ovládání pinu PSEN díky  nutnosti zachování stavu portů v předešlém stavu je však tento postup použitelný asi opravdu pouze v nouzi největší... 

 


Jan Řehák - 06 / 1999

 

Hodnocení článku: