Press "Enter" to skip to content

Záhada Speccy2010

Tentokrát sa mi na pitevný stôl dostalo Shrekove neposlušné Speccy2010. Po upgrade na firmware 1.2.4 sa začalo chovať veľmi nevyspytateľne a tak som sa ponúkol, že sa mu pozriem na zub.

V týchto končinách je to jeden z mála kusov (ak nie jediný) pochádzajúci priamo od Syda a tak ma celkom zaujímalo, ako je poskladané a čo mu asi tak môže byť. Popisované symptómy naznačovali problémy s SDRAMkou, prípadne nejaký studený spoj v okolí FPGA/RAM. Speccy2010 ku mne prišlo asi po týždni nepriestrelne zabalené a tak som ho hneď v ten večer hodil pod mikroskop.

Prekontroloval som úplne všetky nožičky ARMu, FPGA i SDRAM, či sú správne prispájkované, ale na nič som neprišiel. Musím Syda pochváliť, osadené a zospájkované je to dobre. Zrejme používa osádzanie metódou hot air. Je to oveľa lepšie a spoľahlivejšie, ako naše ručné osádzanie, špeciálne ak vám dodajú také zaoxidované FPGA, s akými sme sa pri poslednej várke trápili v SinDiKATe.

Poskladané to je teda dobre, chyba bude inde. Pripravil som si SD kartu s pôvodným firmware od Syda a Speccy2010 som vytrápil, čo to šlo. Všetko behalo ako hodinky, ale je pravda, že sa mi zo dvakrát zosypalo ruské demo BadApple512, ktoré to na mojom Speccy2010 nemá vo zvyku. Následne som zobral firmware 1.2.3 od Martina Bórika a začal som Shrekove Speccy2010 trápiť odznova. V princípe som dopadol úplne rovnako. Všetko behalo, len sem-tam sa zosypalo demo BadApple512. Tu som začal šípiť, že problémy budú hlbšieho charakteru.

Medzi tým Martin Bórik zistil a objasnil, prečo (a kedy) padá firmware ARMu verzie 1.2.4. Syd sa veľmi netrápil s optimalizáciou kódu, hlavne pri práci s bufframi a tak sa stalo, že ako Martin pridával do ARMu funkcie, prelomil sa kritický bod a začal pretekať zásobník. Ako to vyriešil sa dozviete priamo na jeho blogu a my pokračujeme ďalej.

Keďže som zatiaľ na nič neprišiel a firmware 1.2.4 padal násobne viac, ako na mojom Speccy2010, bolo jasné, že Shrekove Speccy2010 je v niečom iné. Pristúpil som k experimentu. Zobral som firmware ARMu z verzie 1.2.3 a FPGA z verzie 1.2.4, vytvoril som si z nich hybrid a poďho na testy. Tu už také jednoznačné výsledky neboli. Veľká väčšina skúšaného chodila dobre. Potom som ale prišiel na to, že niečo chodilo s pršaním a veľa toho aj padalo, alebo mrzlo. Po dlhšej dobe sa k tomu začali v obraze pridružovať aj zvislé artefakty. A tu som začal byť na istejšej pôde.

Zvislé artefakty nekorešpondujúce s VRAM môžu znamenať len jedno – predsalen je nakopnutá SDRAM. Keďže to po vychladnutí nerobilo, skúsil som si to potvrdiť tak, že keď sa artefakty objavili, strekol som na SDRAM stlačený vzduch. Čip sa tým ochladil a ako som očakával, artefakty sa stratili do doby, kým čip nenabral vyššiu prevádzkovú teplotu. Tak som Speccy2010 zobral k Ikonovi, kde sme SDRAM vymenili.

Na naše sklamanie to ale nepomohlo v trabloch s hybridom arm-1.2.3/fpga-1.2.4, ktorý na mojom Speccy2010 behal úplne stabilne a bez jediného problému. Na Shrekovom sa stále objavovalo pršanie a pády softvéru. U Ikona nebolo viac času na laborovanie a tak som to zbalil a odkráčal som potupený domov 🙂

Doma som zistil, že s vymenenou SDRAM prestalo padať demo BadApple512, a tak padlo podozrenie na FPGA. Lenže starší firmware chodil dobre, takže som si bol istý, že FPGA nie je zlé fyzicky, ale problematický je jeho obsah. Kde je pes zakopaný som začal tušiť v okamihu, keď som si všimol, že keď to prší, tak to prší podobne, ako to pršalo, keď sme s Ikonom v gumáku laborovali so SRAMkou namiesto VRAM. Zistili sme, že je to časovaním chipselectu SRAM.

I som sadol za Quartus a začal som študovať logy zo syntetizovania FPGA. Warningy tam boli odjakživa, už v Sydovom firmware a preto im nikto nikdy nevenoval pozornosť. Ja som teda syntetizoval a porovnával jednotlivé verzie a zistil som nemilú vec. Kopili sa hlavne warningy okolo interného 84MHz clocku, ktorý sa využíva práve na clockovanie SDRAM. No a vo verzii 1.2.4 už v mojom laickom oku vznikal tik pri pohľade na to, o koľko odletelo časovanie niektorých signálov. VHDL neovládam, takže nie som schopný zdroják preformulovať tak, aby sa to opravilo, takže som logicky hľadal inú cestu.

Dobre mierený zásah do útrob internetu už len potvrdil to, čo som tušil aj sám. Dá sa to úpravou teplotného profilu, takže som si len v helpe dohľadal, kde sa to mení a chcel som s tým polaborovať. To čo som našiel ma však posadilo na zadok. Na moje veľké prekvapenie bol projekt nastavený na 23 MM HEAT SINK WITH 200 LFPM AIRFLOW, takže Syd to už na začiatku nastavil zle a celé roky sa to takto používalo, pretože to nikto neskontroloval a nejak to chodilo.

Preto aj rusi furt vyplakávali, že nové verzie obsahu FPGA zle clockujú a syntetizovali si to po vlastnej osi. Otázne je, prečo tie FPGA pôvodom z Ruska kolabujú a tie, ktoré som kupoval v DigiKey USA chodia s tým istým obsahom normálne. Ikon vyslovil domnienku, že by to mohla byť nejaká “druhá trieda”, ale podľa označenia na Shrekovom kuse je také isté ako mám ja. Ja osobne sa prikláňam skôr tomu, že sú to zmätky, ktoré neprešli výstupnou kontrolou, číňan ich aj tak predáva a rus nakupuje…

No ale späť k problému. V nastaveniach projektu som teda zmenil teplotný profil na správny NO HEAT SINK WITH STILL AIR, FPGA znova zosyntetizoval a vyskúšal na Shrekovom Speccy2010. Už asi nie je tajomstvom, že to pomohlo a funguje normálne. Pre istotu som nový obsah FPGA vytrápil aj na mojom Speccy2010 a potvrdzujem výbornú stabilitu. Záhadu sa teda podarilo vyriešiť, dalo by sa povedať end of story. Bohužiaľ zostali otázniky, preto si na záver neodpustím drobnú úvahu.

Zmenou teplotného profilu warningy o časovaní v Quartuse zázračne nezmizli. Len sa zlepšili čísla, čo zjavne pomohlo so stabilitou na marginálnych FPGA. Neviem, či sa to dá úplne opraviť úpravou zdrojákov FPGA Speccy2010, nemám na to know how a pochybujem, že sa nájde niekto, kto by sa na to dal.

Po všetkých tých problémoch okolo toho aj Martin plánuje na to hodiť bobek a ani sa mu nedivím. FPGA je takmer plné, v ARMe bojuje s nedostatkom RAM a zlým pôvodným kódom. Okrem teraz releasnutej verzie 1.2.5 tak vznikne možno ešte jedna posledná, kde budú rozpracované veci hodné dokončenia. Ja osobne by som to asi spravil rovnako, akurát by som sa na to vysral so špeciálnymi efektami – rozumej symbolicky krásnou verziou 1.2.8 😀

Logicky sa ponúka možnosť “zkusit to ještě jednou a lépe”, ale racionálne uvažujúci človek vie, že programovať nový firmware pre Speccy2010 je slepá ulička. Je to síce pozoruhodná mašinka, bohužiaľ už na ňom ale cítiť dobu kedy vzniklo. Je jednoducho zastaralé. Jeho obmedzené prostriedky síce v mohom evokujú pôvodné ZX Spectrum, zrejme však nastal čas posunúť sa ďalej.

Po skúsenostiach s ostatnými klonmi už aj ja pripúšťam, že cesta dedikovaného FPGA hardware pre klon je už asi prežitok. Omnoho jednoduchšie sa javí zobrať existujúci kit a vyvíjať nad ním. Aktuálne asi najznámejšia možnosť je platforma Intel Cyclone V + SoC ARM, resp. kit DE10-Nano, na ktorom je postavený aj MiSTer. Je za dostupnú cenu, mne osobne sa na tom ale nepáči to, že k FPGA nie je pripojená žiadna SDRAM a už aj tu treba bastliť, resp. dokúpiť minimálne SDRAM board, hoci SoC má k dispozícii 1GB SDRAM. Je to však určite cesta, ako sa trocha “štandardizovať” s dobou a inými projektami a zároveň mať dostatočne dimenzované železo, ktoré nezabráni rozletu programátora, ako sa aktuálne stalo so Speccy2010.

Ja už do toho DE10-Nano kitu asi nejdem. Mám doma viacero počítačov založených na FPGA, pribudne mi ešte ZXS Next, takže na hrajkanie mám toho viac než dosť. Martin odviedol kusisko práce a vďaka jeho firmware sa Speccy2010 stalo mojou treťou srdcovkou, hneď vedľa Pluska a +2. A s tým už si vystačím dostatočne dlho, netreba mi ani DE10 😉

2 Comments

  1. Alex Alex

    Dobrý deň,
    len by som sa chcel spýtať – vedeli by ste sa pozrieť na môj Spectrum 128 +2 – omylom som zapájal DIV Interface pri zapnutom počítači no a následne sa pokazil obraz na TV a počítač sa vypol. Ďalej už nereagoval na nič (kontrolka nesvieti). Mrzí ma, že som ho takto nevedomky odpálil. Dalo by sa s Vami dohodnúť na prípadnej oprave?
    Vďaka za odpoveď,.
    Alex

  2. admin admin

    Samozrejme sa na to viem pozrieť. V BA, PK, TT sa vieme dohodnúť na osobnom stretnutí, inak mi to treba poslať poštou. Napíš mi na zoom(at)centrum(dot)sk

Leave a Reply

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