Manija ir motyvacija

Seniau rašiau, kad iš garažo atsinešiau plazminį ekraniuką. Kiek laiko ieškojau duomenų apie šita daiGtą, bet nelabai ir radau. Poto užklydau firmelę capetronics kurie lygtai prekiauja tokiais ekraniukais, juos remontuoja ir panašiai. Ir parašiau aš jiems laiškelį- tipo turiu porą tokių ekraniukų, norėčiau išbandyti kaip jie veikia ir kad būčiau labai dėkingas už bet kokią informaciją apie šią Sharp produkciją. Kaip nekeista, gavau atsakyma kuris nuskambėjo kaip keistokai: tipo jie turi visus datasheetus, bet tikrai neduos man tos informacijos. Nu jei ne duos, tai galėjo ir nerašyti to laiško. Aš jiems tada atsakiau, kad jei negali, tai nereikia, gal kreipsiuos į patį Sharp, o gal pats atbursiu kur kas ir kaip eina. Gavau atsakymą kuris sukėlė mano honorą: tipo bandyk laimę durnelį… O to, man kvailam ir užteko. Teko jamti už ragų ar kitos minkštos vietos ir padirbėti.
Todėl parašysiu, bent jau dalinai, kaip dariau šitą “reverse engineeringą”.

Pirmiausia guglinam, poto vėl guglinam. Ir aišku nerandam informacijos apie šitą ekraną, tiek ir apie jo kontrolerį (LZ93N34). Poto nagrinėjam pajungimo lizdą, kad surasti kiek galima labiau žinomų signalų: pirmiausia randam žemę, poto loginių mikroschemų Vcc (kas tokiai senai technikai tikrai tik 5V). Poto apžiūrim aukštos įtampos keitiklį, saugiklius ir elektrolitus prie jo. Taip randam keitiklio maitinimą kas gali būti bet kas iš standartinių įtampų: 3V (atpuola, nes tai senovinė technika), 5V, 12V, 24V…
Poto bandom ieškoti panašių ekranų ir kontrolerių informaciją. Panašios mikroschemos į kontrolerį (skiriasi keliais skaičiais) pagrinde CCD kamerų taimingo mikroschemos, kurios neturi jokio ryšio su ekraniuku. Paieška pagal aplamai ekranus buvo labai sunki dėl terminaloginių problemų: pabandžius ieškoti “plazminiu ekranėlių” visas internetas pylė man tik modernius plazminius sharp televizorius ir paneles jiems.
Beja kištuko kontaktų analizė labai nudžiugino: ten liko tik 5 nežinomi signalai, kurie sulindo tiesiai į kontrolerį. Ne taip ir baisu.

Sekantis etapas buvo bevei bet kokių signalų generavimas su ATMEGA mikroschema ir kontrolerio kitų kojų stebėjimas. Taip davė apytikslę informaciją, kad dvi kojos tikrai skirtos horizontaliai ir vertikaliai sinchronizacijai. Tačiau nulis informacijos kokios formos ten turi būti signalas. Pačio ekrano apžiūra atskleidė, kad ekranas suskirstytas į odd ir even (lyginius ir nelyginius) elementus. Panašiai padaryti ir senoviški LCD ekranai (senas eksperimentas net iš 2007 metų). Tačiau panašus signalų taimingas nedavė jokių rezultatų.
Bandžiau ieškoti prietaisų, kurie naudoja tokius ekranus schemų, tačiau neradau. Poto dašuto, kad šitie ekraniukai vadinasi ne plazminiai, o “EL display”.
Papildomas guglinimas nedavė daug geros informacijos, bet radau keletos EL displėjų aprašymus. Deja, jų taimingai sutapo su LCD ekranėliais…
Pakeliui atburiau “kitos” įtampos reikšmę: paprasčiausiai kėliau įtampą nuo 5V ir stebėjau įtampos keitiklio darbą (arba nedarbą). Pasirodo, kad keitiklis pradeda dirbti tik nuo 11.8V (ką ir patvirtino kitokių ekraniukų aparašymai).
Kita mintis buvo tokia: logiškai galvojant, Sharp inžinieriai kurdami ekraniukus viską darė palaipsniui ir keičiantis modeliui, koks nors kištukas neturi drąstiškai keistis. Nors keitėsi kištuko pimpaliukų skaičius, skaičiavimo kryptis, tačiau GND laidelių konfiguracija daugelyje modelių buvo vizualiai panaši. Tačiau visuose rastuose datasheetuose +5V ir +12V buvo sukeisti vietomis. Užtat sinchronizacijų išdėstymas visada atitiko “krypti” pvz. CLK signalas visada dešiniau už sinchronizacijas.

plazminis ekraniukas
Visus eskizus paišiau pieštuku ant popieriaus, nes čia dažnai buvo naudojamas trintukas. Ir pagaliau visai susiparinau ir pradėjau žiūrėti visų Sharp ekraniukų datasheetus. Visa bėda, kad tie datasheetai taip penkioliką kartų kopijuoti su dauginimo aparatu ir visiškai nesuOCRinti (jiems gi daugiau nei 30 metų). Bet vienam datašyte radau kamputyje pavaizduota gabaliuką LZ93N34 čipo. Ten buvo pavaizduota kaip teisingai uždėti pull-up ant ekrano ir kad naudojami serial rezistoriai. T.y. prie dinaminių taimingo charakteristikų. Bet visas gerumas tame, kad buvo parašti 5 laidų pavadinimai ir čipo kojų numeriai. Ir nors ekraniukas buvo visai kitoks, viskas išsisprendė iš karto. Supratau, kad sinchro ir clock kojas teisingai atspėjau (likusios kojos aišku duomenys). Supratau, kad šito ekraniuko taimingas visiškai kitoks, nei visų kitų ekraniukų ir kodėl man nieko nerodė. Tiksliau pasirodė, kad šio kontrolerio taimingai žymiai daugiau užburti nei paprasto LCD (ir netgi datasheete ten biški nutylėta). Tačiau paeksperimentavus su ATMEGA pavyko padaryti panašius signalus ir pagaliau pasirodė pirmieji vaizdelio požymiai. Ir čia atsirado pirmas nusivylimas- ekraniukas dirba dinaminiam režime. Ir nesvarbu, kad prie kontrolerio yra RAM čipas. Ekraniukas iškarto užmiršta video informaciją kai tik nutraukiams duomenų srautas. Per daug nesinagrinėjau, bet RAM tikriausiai naudojamas pačiam kontroleriui funcionuoti.

plazminis ekraniukas
Todėl tolimesnį “reverse engineering” teko perkelti į gretesnius “geležius”. Su Atmega “refreš” gavosi vos keli kadrai per sekundę ir tai nebandant išduoti sudėtingą informaciją per ekraną. Padidinus “skaičiavimus” tikrai neužteko galios. (ten virš 6MHz pixel clock, o per tą laiką reikia paruošti ir video duomenis, ir suformuoti signalus). Todėl teko prisiminti FPGA. Bet paskui prisiminiau, kad iš ŽAIDIMŲ AUTOMATŲ esu išlupęs CPLD širdis. Tai ALTERA MAX čipai (EPM3256AQC208-10). Jas pilnai palaiko nemokama Quartus versija o ir mikroschemos labiau jau 5V tolerantiškos nei šiuolaikiškesni ciklonai. (kas paaiškėjo, kad vėl aš klydau). Šios plokštės neturi PLL ir neturi master clock generatoriaus. Todėl sulitavau mažiuka generatorių. Pasirinkau 50MHz, nes mažesnis dažnis labai jau apribotų mano fantazijas, o didesnis gali būti nesuvalgomos CPLD. Pati CPLD irgi gerai tuo, kad ji flash tipo ir “atsimena” konfiguraciją. Beja, paaiškėjo, kad su esama schema, 50MHz yra vos vos per mažai ir ekraniukas biški mirga- nepasiekiau 60Hz ekranos perpaišymo dažnio. Pati PCB turi 32kB atminties mikroschemą kad irgi gerai- kaip tik 640×400 px matricai bus video atmintis.

plazminis ekraniukas
Va kaip atrodo darbo vieta. Iš karčios patirties, dabar visi eksperimentai atliekami kai plokštės tvirtai pritvirtintos prie pagrindo. A- tai pirminis 5V stabilizatorius, tačiau jis per mažo galingumo, kad patrauktu ekraniuką. Todėl iš jo užmaitinta tik ATMEGA ir CPLD (abi groja su 3.3V maitinimu). B- 5V stabilizatorius kuris gali išskirti daug šilumos. Čia todėl, kad ant stalo teturiu tik vieną patikimą maitinimo šaltinį ir jis duoda įtampą visam projektui- sodinimas iš 12V iki 5V duoda daug daug šilumos su paprastu stabilizatorium.
C- atmega plokštelę. Ji pradžioje pati maitino ekraniuką, poto, per vaivorykštinį kabelį maitino duomenim CPLD.
D- CPLD plokštelė kuri pradžioje veikė tik kaip eksperimentinis taimingo generatorius, o į projekto galą netgi pavirto į video plokštę netgi su primityvia 2D akseleracija!
E- tai padidinamasis stiklas per kurį žiūrim į ekrano elementus ir stebim ar pixeliai stovi ten kur norim.

plazminis ekraniukas
Tie visokie brūkšneliai prie skaičių tai iš CPLD generuojami papildomi signalai kuriais testuomi įvairūs taimingo variantai. Nes kai buvo atburtas ekraniuko taimingas, teko į tą patį taimingą įpaišyti RAM kontrolerį, kad jis vienu metu duotu video informacija, o kitu metu, esant reikalui iš išorės imtu informaciją į RAM.

plazminis ekraniukas
Padarius daug maž veikiantį modelį, viską tenka perrašyti iš naujo, nuo scratch. Nes iš pradžių didžioji kontrolerio dalis sudėliota iš atskirų elementų, kad susigaudyti daug maž kaip kas turi veikti. O poto drąsiai trinam viską lauk ir aprašom schemą verilog kalboje.
Dabar durniausia dalis- loginių klaidų paieška ir taimingo niuansai. Strėliukės rodo į anomalijas. Kažkokia problema. Dar buvo, kad pusę ekrano rodė normaliai, o kitą pusę iškreiptai. Pasirodė, supainiojau kelis adresų šynos bitus. Tos anomalijos kilo dėl to, kad nutariau iškarto sukurti 2D akseleraciją: rašant simbolius ant ekrano užtenka nurodyti adresą (du baitai), o poto užtenka pumpuoti duomenis ir adresas automatiškai kinta. Jei paišai horizontalią linija, pumpuojant informaciją automatiškai adresas kinta pagal kitą sistemą. Ir čia kažkodėl, kai kuriose ekrano vietose buvo prarandamas baitas.
Po kažkiek matavimų su oscilografu buvo pastebėtas vienas ir kitas bugas ir pagaliau vaizdelis kiek pagerėjo.

plazminis ekraniukas
Tačiau dar liko ne tokie akivaizdus defektai “video plokštėje”. Tačiau pasibaigė… motyvacija. Buvo parašytas laiškas į tą capetronic, pasiūlyta įsigyti tuos ekraniukus, padėkavota už tai, kad nesuteikė informacijos… Bet supratau, kad man nafig reikia to ekraniuko. Beja, tie vaiduokliai prie mano ekraniuko skaičiukų yra ekrano “burn-out”. Tai senas statinis vaizdelis išdegino kiek patį ekraniuką.

Informacija: Mano sukurtas Sharp LJ640U35 EL screen datasheet ekraniuko pdf failas. Dabar guglė tikrai ras šio ekraniuko datašytą.

Altera projektas: Quartus Sharp EL LJ640U35.

AVR projektas: ATMEGA16 source code, ten yra net ir pirminė taimingo spėjimo versija. Galutinė versija jau naudoja CPLD “video plokštę”.

18 replies on “Manija ir motyvacija”

  1. Šaunuolis, tiesiog šaunuolis! Stebiuosi Tavo kantrybe ir užsispyrimu! Kad man nors 10% to, kas pas Tave yra, kas duotų 🙂

  2. Bravo! Negaliu atsidžiaugti, kad turim savo lietuvišką užsispyrusį ir kantrų “Mike’s Electric Stuff” variantą 😀

  3. Piktasis elektronikos genijus…

    Priminė laikus, kai prieš kažkiek -niolika metų neturėdamas interneto ir kurdamas virtualius failus bandžiau atkapstyti, kuo skiriasi VideoCD .dat failai nuo .mpg bei pasirašyti normalų konverterį, pravalantį VideoCD šiukšles…

  4. Tai šaunu 🙂 gerai čia motyvavo tave. Šį kartą pasimokė ir išvis nebeatrašė jie gal? 😀

  5. Aš net achu**linu kaip tu viska greit perpranti… Neisivaizduoju kiek žmogus su tokiais sugebėjimais turi uždirbt (y)

  6. Anksciau tokie laikai buvo, kad interneto nera, knygos tik rusiskos, angliskose viskas slepiama, tad jei “prakeikti” kapitalistai nurase kokia iranga kaip neremontuotina, tai lietuviui budavo gaila ismesti siukslynan, todel sedi aiskiniesi, a mazu pavyks. Zinoma tokie dalykai greitai issiaiskina kai jau turi nemazai patirties, o Levas jos tikrai nestokoja.

  7. Levai, tavo Sharp ekranas kažkuo labai panašus į Panasonic MD400F720PD1 (tik aukšta įtampa generuojama ne pačiam ekrane), kuris stovi pas mane dar gyvam Toshiba T3100 laptope. Ten 286 ir EGA kontroleris, tai ir taimingai turėtų būt panašūs į EGA (pagal tavo datasheet’ą panašu, kad taip ir yra).

  8. Arjani- perėjimai skirti pajungti kitokį monitorių prie kokio nors prietaiso. Ar veiks ar neveiks dar neaišku. Nes gali puikiausiai ir veikti :)\

    Reikia paprasčiausiai pasiskaityti kas per abu monitoriai. Dažnai monitoriai būna labai panašūs, ir skiriasi būtent tik pinoutu.

  9. Sveiki, beardydamas dvd radau lcd 7 segmentu, ir ant jo pagabinta pcb su valdymu, tik kad valdymo mikre blynas be jokiu zymejimu. Laidai prijungimui pavadinimus turiu data, slk ir stb. Imanoma padaryti kad valdymas veiktu? Gal mazdaug is patirtirs nujauti kokia mikre priklijuota?

  10. foto gerai pagelbetu. slk gal CLK t.y. clock, data tai kaip ir duomenys, stb- strob? Gal jis įjungia vaizdą arba rezetuoja registrus.

    Reikia sušerti bet kokius duomenis duodant clock prie įvairių stb variantų.

    Čia jei paprasčiausias variantas. Jei koks nors kiniškas kontroleris… tada reikia galvoti.

  11. Hi,

    I have the same card from an injection moulding machine, which I am busy fixing.
    I would like to send some test signals to card to verify that it is working before installing in machine.
    Would you be able to help with sending the signals – i dont understand everything in your article.

    Thanks,
    Paul

  12. Paul, I wrote PDF, http://www.vabolis.lt/stuff/LJ640U35.pdf
    It has sufficient information to start the screen. Looks like this old equipment is pain in the ass for the many people. I had two screens and sold them… for big money 🙂

    But the interesting part. This screen uses “old industry standard” screen protocol. With very low modification, the screen can be replaced with some LCD screens from old photocopying machines or ancient laptops.

    It is possible to emulate screen controller with any fast enough MCU with 5V TTL output levels. I used CPLD just for fun. I think with fast MCU it is possible to write screen “translator” to modern VGA screen.

  13. Thanks for reply.
    Would it be possible to start it using an audrino or a raspberry PI
    Sorry if it’s a stupid question, but not that clued up on LCDs.
    If you could point me in the right direction would help a lot.
    Thanks
    Paul

  14. There is source code published in the page. Take a better look at the end of the post. If it is not enough, I can not help you, as this post is about 10 years old.

Leave a Reply

Your email address will not be published. Required fields are marked *