SBC6502 - 50 - PROM 74188 - najnovší (new) program v.1.04g

By Administrator at May 09, 2021 06:44
Filed Under: SBC6502

 

Stále si musím pripomínať že úpravu programového vybavenia pre programátor 74188 už nebudem prevádzať - človek mieni, život mení. Napaľoval som jednu PROM 74188 a (konečne !) sa objavila jedna chyba - nešiel napáliť jeden jediný bitík. Nepomohlo ani nové spustenie programu, dĺžka PGM pulzu =17ms proste bola krátka pre túto konkrétnu PROM, odolávala zmene obsahu v tomto mieste naozaj bohatiersky. Pomohlo až dodatočné predĺženie programovacieho pulzu =50msec. Toto som si ako autor programu pre tento prípad upravil naozaj jednoducho, ale nebolo by to asi jednoduché pre normálneho usera - a to už bolo len krok od toho aby som prekopal doterajší program ešte viac k obrazu svojmu a pridal tam (mimo iného ) aj možnosť zmeny dĺžky PGM pulzu. A vďaka tejto úprave mám naďalej čisté konto napálených PROM - ani jedna doteraz nebola taká že by mi nešla nakoniec správne napáliť.

 

 

Len dodám že všetky PROM 74188 čo používam a teda čo som napaľoval sú iba z produkcie firmy TESLA. A toto bol prvý kus (po cca 50-tich), kde sa objavil problém. PROM 74188 od iného výrobcu nemám k dispozícii.

 

Autor nenesie žiadnu zodpovednosť za škodu ktorá vznikne

zničením PROM pri nesprávnom použití programátoru !

 

 

Zmeny oproti verzii V.1.04e:


- "medzistupňová" verzia 1.04f zostáva neverejná, postupne som ale v nej prevádzal úpravy ktoré sú už aplikované do uverejnenej verzie 1.04g  

 

- pri spustení sa objavuje logo SBC6502, RAM je na to dostatočne veľká (a voľná), nasleduje aj úprava vzhľadu hlavného menu, nakoniec som sa vrátil k pôvodnému konzervatívnemu vzhľadu, zvýšila sa celková "blbyvzdornosť" programu pri jeho ovládaní

 

- našiel som bug pri manuálnom vstupe dát v dec tvare, ak sa zadali chybné vstupné údaje a vypísala sa chyba, prejavila sa tak že podprogram po načítaní 32byte dát obsahu budúcej PROM neukončil načítanie dát z klávesnice, ale pokračovalo sa v čítaní dát ďalej. Problém bol v použití rovnakej premennej ktorá bola volaná aj iným podprogramom, t.j. prišlo k prepísaniu pôvodne nastavenej hodnoty ktorá čítala potrebný počet bytov. Uvedená chyba je už v programe odstránená.

 

- všetky údaje pre konkrétnu verziu podľa rýchlosti taktu x-talu sa nachádzajú na začiatku programu už iba v 3 riadkoch 10021004, t.j. tu sú sústredené všetky potrebné hodnoty pre konkrétnu danú verziu, nie je to "rozťahané" po celom programe, pričom platí:


  U -  konštanta pre prepočet rýchlosti ktorá platí pre hodnotu dĺžku pulzu =1msec,

       (platí vždy pre konkrétny použitý x-tal), využíva sa pri voľbe (L)

DV - konštanta, ktorá prepočítava všetky čakacie programové slučky (okrem vlastného PGM pulzu),

       ktoré sa nachádzajú sa v programových riadkoch 2000÷2100, (zase platí pre konkrétny použitý

       x-tal)

PP - premenná, ktorá nastavuje štandartne dĺžku PGM pulzu na 17ms (vzorec: PP=17*U)

       (platí vždy pre konkrétny použitý x-tal)

LG - premenná, (new PGM pulse) ktorá určuje dĺžku PGM pulzu pre druhé kolo programovania, je to

       výsledok PP=PP*LG, t.j. ak je LG=2 potom je dĺžka dvojnásobná, ak je LG=1.5, tak v druhom

       kole bude výsledný PGM pulz 1.5x dlhší atď. (štandartná hodnota je nastavená na = 1.5, mala

       by sa pohybovať medzi číslom 1÷2, krok je povolený v desatinách, toto sú všetky povolené

       hodnoty pre LG: 1, 1.1. 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2  - žiadne iné hodnoty nie sú

       akceptované ! /kontroluje sa to/

       Ak je LG=1 tak potom je dĺžka PGM pulzu v druhom kole totožná s prvým kolom, nepredlžuje sa !

 

Skúsenejší si môžu východiskové nastavenie parametrov nastaviť sami:

(uvedené príklady platia pre x-tal = 4.000MHz)


    príklad nastavenia priamo v programe 1:

   17msec pulz, PGM pulz pre druhé kolo =1.5 násobok 17msec, t.j. =25.5msec

   1002 U=2.53:DV=5:PP=17*U:LG=1.5:Z$="ver.1.04g
   (toto je štandartné nastavenie programu verzie 1.04g)


   príklad nastavenia priamo v programe 2:

   15msec pulz, PGM pulz pre druhé kolo =1.4 násobok 15msec, t.j. =21msec

   1002 U=2.53:DV=5:PP=15*U:LG=1.4:Z$="ver.1.04g


   príklad nastavenia priamo v programe 3:

   10msec pulz, PGM pulz pre druhé kolo =2 násobok 10msec, t.j. =20msec

   1002 U=2.53:DV=5:PP=10*U:LG=2:Z$="ver.1.04g

     

- do hlavného menu pribudla nová položka (L), tu je možné manuálne zmeniť vlastnú dĺžku programovacieho pulzu v rozmedzí 1-100ms, pozor, táto zmena je funkčná v programe až do jeho nového spustenia, po novom spustení programu (príkazom RUN) sa vždy nastaví východzia hodnota daná uloženými údajmi v riadku 1002, údaj o dĺžke nastaveného pulzu sa zobrazuje v hlavnom menu (práve toto pokrýva tú možnosť ak niektorá PROM 74188 nejde bezchybne naprogramovať pomocou krátkeho PGM pulzu), datasheet definuje dĺžku PGM pulzu na hodnotu  v rozmedzí 1÷20ms

 

- ďalšia zmena nastáva pri programovaní, t.j. ak nezbehne bezchybne prvé kolo naprogramovania tak sa dĺžka programovacieho pulzu automaticky predlžuje na hodnotu rovnú 1.5 násobku pôvodne nastavenej hodnoty, potom sa spustí druhé kolo naprogramovania PROM. Ak nezbehne bezchybne napálenie ani po tomto predĺžení programovacieho pulzu v druhom kole programovania tak je PROM vyhodnotená ako zlá (toto zostalo tak ako doteraz) a program sa ukončí


- pribudla možnosť priamo v riadku 1002 si zadefinovať o aký násobok pôvodnej hodnoty PGM pulzu sa predĺži v druhom kole programovania samotný PGM pulz (premenná LG). Toto som nezaradil do menu, pretože s týmto by mal manipulovať len ten čo vie čo robí. Násobok hodnoty je uložený priamo v programe, t.j. po novom reštarte programu nastavená hodnota sa nemení. Výsledná hodnota nastavenia PGM pulzu pre druhé kolo programovania sa zobrazuje priamo v menu. Ak zadáme správne číslo v povolenom rozsahu zobrazí sa programové menu a môžeme pokračovať.

Pridaná úplná kontrola nastavenia konštanty LG pre prepočet dĺžky druhého PGM pulzu, kontroluje sa či je použitý rozsah hodnôt od 12 v rozostupe desatinných čísel (iné údaje tu nie je možné použiť, iné údaje spôsobia že program končí svoju činnosť a upozorní na chybu, viď vlastný popis LG, pridané do programu 18.05.2021)

 

- ujednotená chybová hláška, doteraz boli samostatné hlášky pre dec a hex vstup a tiež pre vlastnú dĺžku PGM pulzu, teraz už toto spracováva iba jedna rutina, predtým toto bola daň za snahu o samostatné modulové riešenia na začiatku tvorby programu (platilo to ešte vo verzii 1.04f)

 

- oneskorovacie slučky (tie mimo PGM pulzu) v programe boli tak isto ujednotené, ich ovládanie sa teraz už prevádza len cez jednu premennú (DV)

 

- hidden voľba (I) - zrýchlený vstup do Backdoor helperu, umiestnenie (I) v menu bolo presunuté teraz vpravo nahor

 

- pridaná nová, ďalšia hidden voľba (G), umiestnenie (G) je vpravo hore pod voľbou (I), voľba zobrazí v menu číselné hodnoty: U, DV, PP a LG 

   Túto voľbu je možné vyvolať kedykoľvek z menu, výpis potom v menu zostáva aktívny až do nového príkazu RUN, neovplyvňuje žiadne parametre vlastného programu (pridané do programu 18.05.2021)

 

Zobrazené obsahy U, DV, PP, LG priamo v menu po stlačení (G)

 

- pridaná kontrola nastavenia konštanty LG pre prepočet dĺžky druhého PGM pulzu, kontroluje či je použitý rozsah hodnôt od 12 v rozostupe desatinných čísel v tomto rozsahu (iné údaje tu nie je možné použiť, spôsobia že program končí svoju činnosť a upozorní na chybu, viď vlastný popis LG, pridané do programu 18.05.2021)

 
- informácie o nastavenej dĺžke PGM pulzu + predĺžený PGM pulz pre druhé kolo sa zobrazujú priamo v menu programu, tieto informácie sa zobrazia tiež v prvom kole a tak isto aj v druhom kole programovania


- vďaka všetkým možným úpravám sa dĺžka programu pohybuje okolo cca 19.818 byte (x-tal = 4.000MHz), miesta je pritom stále dosť pretože sa ukladá tokenizovane, program reálne v pamäti SBC6502 zaberá o cca 4.5kByte miesta menej

 


Použitie nastavenia hodnoty väčšej ako 20msec. je už na Vašom zvážení a Vašom riziku !

(Program na toto upozorní), nastavená hodnota 17msec. vyhovuje vo väčšine prípadov.

(napríklad: nastavíme trvale novú hodnotu =20msec, zapíšeme PP=20*U)

 

Tu je už len paradoxom väčšie použité číslo na naprogramovanie (t.j. dlhší PGM pulz), pretože ak obsah nebude v poriadku do pulzu =20msec tak máte tri možnosti:

 

a. - PROM vyhodiť

 

b. - predsa len skúsiť predĺžiť PGM pulz, pretože ak to neskúsite zostáva už iba možnosť a. (...)

 

c. - ak použijete programovací pulz dlhší ako 10ms tak v druhom kole (teda - ak nastavíme PG=2) už zaručene idete nad limit 20ms, čiže celé je to potom taká malá hlava XXII priamo v praxi (mne to obsah PROM nepokazilo ani pri PGM pulze =50msec a zachránilo PROM pre jej ďalšie použitie, zbehlo to potom priamo bez chýb už v prvom kole)

 

Ak natrafíte na PROM 74188 ktorá z interných príčin čipu odoláva správnemu naprogramovaniu aj pri nastavenom 20msec pulze tak nejaký veľkú možnosť výberu nemáte, len naozaj skúsiť pulz predĺžiť (možnosť b.), pritom určite je problém priamo v PROM a nie v samotnom programátore.

 

P.S.: tieto fotky vznikli vďaka mojim vnúčatám,

ktoré "vylepšovalli" čo sa dalo (a na čo mali dosah).

WinkLaughingTongue out

 

Nejaké tie printscreeny programu:

 

Obrazovka po stlačení (L) - zmena dĺžky programovacieho pulzu.

 

Zmena dĺžky programovacieho pulzu na hodnotu =25msec spolu s upozornením

na prekročenie dĺžky pulzu oproti údajom v datasheete .

 

Ukážka prvého programovacieho kola (PGM pulz nastavený na 25msec).

Nasimulovaná chyba programovania - aby sa spustilo 2 kolo.

 

Druhé kolo, PGM pulz automaticky = 1.5 násobok 25ms, t.j. =37.5msec.

Nasimulovaná chyba programovania.


Takto vyzerá bitová analýza ak je zlý obsah PROM, nepríde k jej správnemu naprogramovaniu 

(nasimulované) a tým pádom príde k ukončeniu programu.

 

Takže som zase sedel u programu nejaký čas, samého ma prekvapuje kam sa to postupne uberá, ale tie pridané funkcie sú skutočne dobre použiteľné. A postupne to pekne bobtná a bobtná a priberá na váhe (aj na dĺžke). No a čo na záver ? Odporúčam používať túto najnovšiu verziu programového vybavenia. Pomaly začínam chápať prečo TESLA považuje číslo 90% správne napálených čipov za dobré a 10% čipov za odpad pri normálnom napaľovaní za prijateľné, proste rozptyl pri výrobe sa prejavuje tým, že niektoré PROM 74188 potrebujú o poriadny kus väčší napäťový a prúdový "šťuchanec" do svojej štruktúry aby prepálili nami požadovanú prepojku. Záverom len skonštatujem - ešteže sa napokon štatistika prejavila - i keď omnoho neskôr ako som čakal (a v podstatne menšej miere), ale nakoniec aj toto sa dalo zvládnuť. (Už mi to začínalo byť naozaj divné, že mne neblbne ani jedna PROMka, teraz som už spokojný.)Laughing

 

Program, verzia 1.04g :

74188 programmer 1_8432MHz_v104g.txt (19,34 kb)

74188 programmer 2_4576MHz_v104g.txt (19,34 kb)

74188 programmer 4_0000MHz_v104g.txt (19,34 kb)

74188 programmer 4_5000MHz_v104g.txt (19,34 kb)

74188 programmer 5_0000MHz_v104g.txt (19,34 kb)

 ____________________________________________________________

30.10.2021

Najnovšie programové vybavenie - verzie 1.07 je uverejnené v tomto článku:

SBC6502 - 52 - PROM 74188 - best program v.1.07.(lite)


Programové vybavenie je funkčné výhradne zo zapojením programátoru uvedeným na tejto stránke:
SBC6502-33-Programator-PROM-74188-PROM-74188-programmer-Part-1-4.

____________________________________________________________

Vaše hodnotenie, Rate post:

Comments

5/9/2021 6:47:50 AM #

trackback

Directory SBC6502

Directory SBC6502

Igi blog |

Comments are closed

Info o autorovi

Volám sa Igor Gramblička, bydlisko: Bratislava, Slovakia. Môj nick: Igi. Blog je o mojich záujmoch, predtým som pracoval ako IT špecialista na počítačové siete a redakčné systémy pre viaceré denníky - až som pred rokmi nakoniec v jednom z nich zakotvil a kde som to potiahol až do konca mojej profesnej kariéry.

Rok, mesiac, počet článkov: