Tag Archives: CPLD

GAL/PAL “hackinimas”

Aš biški domiuosiu senais kompais, o ten dažnai naudojamos programuojamos logikos mikroschemos (PAL/TIBPAL/GAL/PALCE). Šios mikroschemos, ypač senos laidos, labai kaista ir net kartais nuo to kaitimo susidefektuoja. Todėl kartais jas reikia pakeisti “naujom” PALCE ar GAL mikroschemom. Visa bėda- nežinom mikroschemos turinio. Kartais “fuse” failai randami internete, kartais net būna “lygtys”. Kartais galima atstatyti turinį pagal prietaiso schemą (taip atstačiau ATARI 1200 čipą). Tačiau tai suveikia ne visada.

GAL ir PALCE čipai perrašomi. Todėl juos galima lupinėti iš senų plokščių ir panaudoti iš naujo.

Internete yra metodas, kad paprastas mikroschemas (be registrų) galima atburti naudojant paprastą “brute force” t.y. išbandant visus variantus ant kojyčių. PAL mikroschema prijungiama kaip 27C020 ir nuskaitoma kaip paprastas EPROM ir gautas “rom dump” sumaitinamas specialiai programai “pa.exe”.

Jei PAL/GAL mikroschema neturi viduje registrų ir (kas svarbu!) neturi viduje užciklintos logikas “ala” registras, tai viskas veikia. Deja, tos mikroschemos kurios man buvo svarbios buvo TIBPAL16L8 – gryna logika, bet “užciklintos” ir man nepavyko jas “nulaužti”…

Taip atrodo PAL16L8 į 27C020 adapteris.

Taigi, jei netyčia turit Amiga 2000 1Mb DRAM plokštės jungiamos į CPU slotą schemą ar PAL formules, pasidalinkit 🙂 Nes dabar atminties išpėtimas net pradeda smirdėti nuo karščio.

ZX LCD

Besitvarkant daiktus (čia retas reiškinys), radau savo seną eksperimentą su FPGA/CPLD ir LCD (tik ekranas jau buvo kitas). Tas eksperimentas buvo nedabaigtas dėl žinių, noro ir kantrybės stokos. Dabar visko kiek daugiau, tai nudraskiau nereikalingas detales ir pridėjau naujų:
ZX Spectrum in CPLD LCD mode
Tai labai panaši sistema kaip ir paprastam ZX Spectrum CPLD/VGA. Tik pasikeitė keletas esminių koncepcijų:
Senesnėje versijoje atmintis buvo bendra- procesorius ir VGA buferis naudojosi ta pačia atminties mikroschemą, todėl CPLD stengėsi atlikti atminties arbitro (MMU) darbą ir laiko rėžiais (time slot) prileisdavo tai CPU tai VGA prie tos pačios atminties. Ši schema kiek kitokia- pirmiausia, naudojama atskira atmintis procesoriui- Toshiba TC551001BPL-85. Tai žymiai lėtesnė atmintis, tačiau ji skirta tik procesoriui. VGA ar LCD kontroleris visiškai nesikreipia į ją. LCD/VGA kontroleris tik sėdi ant duomenų ir adreso linijų ir stebi jam reikiamas kombinacijas- jei pastebimas rašymas į video atminties plotą, duomenys dubliuojami ir LCD/VGA atmintyje. Taip pat stebim Z80 IN/OUT veiksmus, nes mums reikia vaizduoti pajungta klavietūrą, magnetofoną ir garsiakalbį.

ZX Spectrum in CPLD LCD mode
Tačiau tai vienspalvis LCD monitorius, 320 x 240 taškelių. Duomenys pumpuojami po 4 bitus iš karto, todėl sistemos dažnis netgi kiek lėtesnis. Tačiau labai lėtinti negalima, nes kažkur prie 40Hz kadrų dažnio labai matosi vaizdo mirgėjimas. Dabar LCD veikia virš 60Hz dažniu. Deja, jis labai inertiškas- “border” efektai susilieja…

ZX Spectrum in CPLD LCD mode
O judantys objektai beveik nesimato.

Aišku šiame variante visiškai ignoruojami spalvų atributai (“flash” veikia), todėl žaidimų vaizdeliai keistoki. O borderį padariau dryžuota, kad kiek nors skirtusi “spalvos”.

Šis antras maketas buvo surinktas ne dėl ZX spectrum. Aš galvoju čia sudėti kokį nors kitą retro kompiuterį, bet ZX yra vienas iš paprasčiausių, tai testavimui suėjo.
Schemotechnika visiškai paprasta- adresų šyna po stiprintuvo 2x SN74HCT541N (nelabai jis reikalingas) eina į CPLD, ROM, RAM. Tas pats, tik be buferio, padaryta su duomenų šyna. Viskas “sumontuota” CPLD mikroschemoje. Ten aišku tebeliko keletas klaidų, tačiau sistema veikia.

Ir aišku visi failai:
Intel-Altera Quartus CPLD source code for ZX Spectrum LCD version.

Jei jums nepasileido, tai atminkite, kad kai kurie Z80 CPU reikalauja, kad jų clock būtų 5Vpp, o ne TTL lygio.

LCD ekranas iš senoviško dauginimo aparato: EDMMPU3BDF, jo pinout:


1. ON/OFF
2. n.c.
3. VS
4. HS
5. pix CLK
6. Vcc, +5V
7. GND
8. Vee, -25V
9. D3, pixel data
10. D2
11. D1
12. D0
13. Vee, same as 8.
14. contrast.

ZX Spectrum sukištas į CPLD

Šiuo metu kiek tvarkau senų kompų kolekciją ir nutariau suremontuoti savo Santaką (baltik versija). Pirmiausia nurinkau visus laidus, pasilikau pliką PCB, atstačiau ROM čipus ir pajungiau. Aišku niekas neveikia. Todėl pradėjau nagrinėtis- pirmas stepas, nėra RESET signalo. Pašalinom rusišką mikroschemą К155ЛН1 nauja SN74LS04. Pradėjo veikti procesorius ir netgi bandė formuotis vaizdas. Bet jis dingo. Pastebėjau, kad dar kaista К555ИЕ10- kol šalta, signalai praeina. Poto pakaista ir signalai dingsta. Čia jau rankos kiek nusuleido- supratau, kad tarybinė kokybė man nepadės. PCB padaryta ant snarglių ir beveik negalima perlituoti. Net blogiau už kiniškas popierines PCB iš 1980-tųjų metų.

ZX Spectrum CPLD Altera
Užtenka tik ką nors pakaitinti ir takeliai atsiklijuoja.
Continue reading →

Commodore 6526/8520 kopija CPLD

Yra tokia deficitinė senoviška mikroschema- CIA (complex interface adapter) skirta 680x ir 68000 čipsetams – 6526 / 6526A ir 8520. Naudojo ir gamino šias mikroschemas Commodore (jos čipų gamykla MOS). Naudojami šie čipai Commodore 64, 128 ir Amiga serijos kompiuteriuose. Tikriausiai buvo naudojama ir plačiau, bet man nepapuolė plokštės, kurios turėtu šiuos čipus. Šie čipukai tai interfeisiniai, jie visaip programuojami ir paprastai bendrauja su periferija. O kadangi kojyčių apsauga pas senas mikroschemas labai silpna, tai šios mikroschemos miršta vienos iš pirmųjų. Kiek supaprastinta, 8520 versija užlenkė mano Amiga 500 netgi keliems metams.
Dabartiniais laikas šios mikroschemos nebegaminamos, tačiau jos tebemiršta. Ir jų kainą pradėjo kilti- dabar viena mikroschema kainuoja kažkur apie 25€ (be atsiuntimo ir mokesčių). O kompiuteriuose dažnai stovi po dvi. Man netgi susidarė nuomonė, kad apsimoka pirkti kai kuriuos senus kompus, lupti lauk čipus ir parduoti- kaip auto šrote. Palaidos detalės kainuoja daugau nei visas komplektas. O ir nusipirkti galima neveikiančia.

Todėl kilo iškreiptas projektas: Commodore 8526/8520 kopija CPLD. Jei viskas pavyks, tai galima mikroschemą emuliuoti ir greitesniu MCU. Bet kolkas buvo pasirinkta CPLD ir Altera Quartus 9. Kodėl? Todėl, kad aš turiu keleta CPLD suderinamu su 5V TTL lygiais ir softas nemokamas. Softas gana sudėtingas ir turi visokiausiu diagnostinių įrankių, o ir CPLD turi perteklinį kiekį kojelių, todėl galima išsivesti visokius vidinius registrus laukan ir tikrintis su osciloskopu.

Mano poros laisvų dienų darbo frontas atrodo taip:
Commodore CIA 6526/8520 CPLD-FPGA verilog copy
(Nuotrauka pasididina)
.
Continue reading →

Atari overkill

Prieš n metų buvo tokie 8 bitų kompiuteriukai ATARI. Tai mano pirmasis kompiuteris. Kažkada, pamačiau skelbimą ir nusipirkau vėl tokį kompiuteriuką (tiesa reikėjo jį susiremontuoti: pakeisti vieną RAM čipą ir per naujo papaišyti klavietūrą). Šie kompiuteriai turi kelis softo įvedimo metodus: iš kasetinio magnetofono, iš diskasukio ir iš atminties dėžučių (kartridžų- nuo angliško žodžio cartridge). Sentimentinio priepuolio metu nutariau pasidaryti kartridžą (jau seniau buvau pasidares diskasukio emuliatorių su PC). Kiek paskaitinėjęs internete radau, kad tu kartridžų yra įvairiausių rušių. Galima pasidaryti labai paprastą, tik iš ROM čipo, bet norėjosio ką nors šustresnio. Taip ir kilo šis projektas…

Atari 8 bit cartridge
Čia mano turimas kompiukas Atari 65XE (turėjau aš ir 130XE, su 128K atminties) ir keli eksperimentai.

Atari 8 bit cartridge
Paprasčiausias 8K kartridžas su kiek per didelę Am27C512 mikroschema. 🙂

Atari 8 bit cartridge
O čia projektas “Atari Overkill”. Tinka standartinės flash tipo atmintys (įdėta SST 39SF020A) ir senoviška Alteros CPLD: Altera MAX EPM7128SQC100-15. “MAX” mikroschema išlupta iš kažkokios egzotikos- 100 kojų kaip tik leido nieko nemąstant sujungti visas išorinių elementų kojas į šį čipą. Tiesiog visos kojos iš lizdo, visos kojos iš EPROM, iš visų jumperių ir osciliatoriaus sueina į CPLD.
Dėl loginės klaidos (supainiojau Atari lizdo pinoutą) teko viską pajungti per laidus. Taip ir patogiau- nes galima operatyviai junginėti džiumperius. Geltoni KYNAR laideliai tai PCB klaidų pataisymai ir naujų įdėjų realizacija.
Toliau: Continue reading →

Biški apie CPLD

Trumpai papasakosiu apie savo eksperimentus su CPLD mikroschema ir Lattice programine įranga.

Prisiverčiau biški pasimokinti naudotis programuojama logika. Kaip jau rašiau kitose žinutėse, mano mikroschemų pasirinkimas buvo labai mažytis ir teko žaisti su Lattice isp2032VE110LT44 mikroschema. Taip pat labai padėjo straipsnis iš Seattle Robotics Society. Taip pat tuo pačiu metu nagrinėjausi supaprastinto LCD ekrano veikimu. Todėl sujungiau abi mintis į vieną ir gavosi va tokia nesamonė…

CPLD + LCD

Beja, šiame projekte dalyvauja ir dvipoliaris reguliuojamas maitinimo šaltinis iš senesnės žinutės.

Teorija apie LCD valdymą išbandžiau su BASIC programa. CPLD programinę įranga nusikroviau iš Lattice puslapių. Programavimo kabelį taip pat pasidariau. CPLD mikroschemą prisilitavau prie maketinės- eksperimentinės plokštės.

O dabar pradedam šneką apie CPLD programavimą…
…skaityti toliau…

Continue reading →