Další zajímavý (nejen) Speccy klon – ZX Uno

ZX Uno projekt sleduji po očku už poměrně dlouho. Projekt zpočátku šlapal, pak to vypadalo na lehký útlum, ale vývoj šel dopředu a koncem loňského roku opět nabral na obrátkách. Verze 4.1 mi přišla už natolik solidní, že jsem se rozhodl jeden kousek postavit. Paralelně s mým zadáním desek do výroby se rozjela crowdfundingová kampaň, která úspěšně skončila, byť zájem bych čekal větší. Nutno ovšem říci, že velká část komunity mimo Španělska o projektu moc neví. Stránky projektu jsou sice i v Angličtině, ale Fórum, kde je většina informací je převážně ve Španělštině a vyznat tam je celkem výzva. Buď pochválen Google Translate. Nicméně postavené hotové ZX Uno není nic pro mně, já si to prostě musím postavit sám. Chvíli to vypadalo zoufale, ale teď už ZX Uno běhá na mém stole. Moc jsem si s ním ještě nepohrál, takže nějaké “review” čekejte až časem. Teď bych se rád podělil o první  zkušenosti při stavbě pro ty, kteří se rozhodnou jít mojí cestou.

ZXUno_Martin_working   ZXUno_Martin_scr_boot

Součástky celkem nebyly problém, pouze použitou SPI flash pro konfiguraci FPGA jsem našel jen na eBay a u použitého encodéru RGB-PAL/NTSC jsem zase nevydýchal cenový rozdíl velkých prodejců vs. eBay. Docela rozdíl byl i u FPGA, ale tam jsem nechtěl eBay riskovat. Párkrát už jsem narazil a mám podezření, že některé prodávané čipy tohoto typu jsou různé kousky sehnané kdovíjak, v horší kvalitě, mimo toleranci. Prostě chtěl jsem mít na základní část celé konstrukce spoleh. Použité FPGA je celkem solidní, z řady Spartan-6, konkrétně XC6SLX9 v pouzdru TQFP144, což se poměrně dobře pájí. Kromě již zmíněného už konstrukce obsahuje jen 512 kB SRAM, stabilizátory napájení, konektory a samozřejmě nějakou tu bižuterii. Formát desky i rozložení konektorů je silně inspirováno Raspberry Pi, takže při troše “pižlání”, dáte ZX Uno do krabičky pro RasPi.

ZXUno_Martin_top   ZXUno_Martin_bottom

Osazení bylo celkem jednoduché, příjemné tři hodinky práce. Jako obvykle nejvíc trvala SMD drobotina. V konstrukci naštěstí nejsou použité žádné “hnusně prťavé” součástky typu 0402, nejmenší jsou blokovací kondíky 0603, ale většina dalších pasiv je 0805.

SPI flash jsem si předem naprogramoval na programátoru (btw. naprogramoval jsem všech 10 pro všechny majitele desek) a tak jsem čekal, že ZX Uno zapnu a jedeme. Černá obrazovka a svítící i červená LED dioda mně trochu zarazily. I mistr tesař se utne. Tak jsem po sobě všechno několikrát zkontroloval a vše vypadalo OK. Naměřil jsem i nějakou komunikaci z SPI flash do FPGA, ale vypadalo to, že FPGA zůstává nenakonfigurované. Začal jsem tedy více studovat španělské fórum a poměrně brzy jsem našel, že flash komunikuje s FPGA v Quad SPI režimu, kde se nepoužívá /WP a /HOLD a flash posílá data FPGA po čtyřech bitech na takt. Pro tento režim je nutné v konfigurační paměti flash nastavit bit QE na 1. To ovšem ani jeden můj programátor neumí.

No nic, nakrmíme flash přes FPGA. Xilinx IMPACT to umí a přímo s tímto počítá. Může konfiguraci nacpat jednorázově do FPGA nebo přes něj do připojené konfigurační flash. Ovšem ať jsem dělal, co jsem dělal, tak se mi FPGA detekovalo jako neznámý non-Xilinx obvod s ID 0. Mám čínskou kopii Xilinx Platform Cable USB, ale až doteď všude fungovala bez problému. Tak jsem propípal všechny cesty mezi programátorem a FPGA, zkontroloval zkraty a nic. Znovu jsem propájel celé FPGA, i když jsem byl přesvědčený, že v pájení problém není, fakt to šlo pájet moc dobře. Furt nic. Přeinstaloval jsem Xilinx ISE 14.7, kromě Windows 10, které běžně používám, jsem ho nainstaloval i do VMWare s Windows 7. Stále nic. Tak jsem začal podezřívat FPGA, že je prostě vadné. Vzal jsem druhou desku (ještě, že všechno kupuju po dvou) a osadil jsem jen nejnutnější věci pro programování FPGA – stabíky, pár pasiv a vlastní XC6SLX9. Připojím k programátoru a … jsem tam, kde jsem byl Smutný obličej. Uáááá, proč já. Kdybych byl býval koupil FPGA od Číňanů, už bych si asi rval vlasy. Takhle jsem si řekl, že není možné, aby dva obvody z Mouser byly vadné. Zapomněl jsem říct, že u pájení druhého jsem si dal sakra pozor, abych pájel na uzemněné antistatické podložce (na té konec konců pájím pořád), já byl uzemněný, všechno opravdu řádně propojené, tak jsem nepředpokládal zničení obvodu. Zrada tedy musela být někde v programování.

ZXUno_Martin_programming_cables   ZXUno_Martin_programming_flash

Začal jsem podezřívat čínský programátor, ovšem žádný jiný, který by uměl spolupracovat s Xilinx ISE nemám. Nevadí. Vygeneroval jsem si XSVF soubor, který jsem do ZX Uno zkusil přehrát přes ASIX Presto. Viola, jedeme. Veselý obličej Veselý obličej Veselý obličej Jo, to byla úleva.

ZXUno_Martin_scr_boot   ZXUno_Martin_scr_speccy

Všechno jsem měl postavené dobře, problém byl prostě jen v programátoru. Kdybych měl programátor, co by mi nastavil ten poblblý QE bit ve flash nebo jsem si to na Arduinu napsal sám, o čemž jsem uvažoval, ušetřil jsem si celou tuhle šílenou eskapádu s programováním flash přes FPGA JTAG.

Doosadil jsem druhou desku a běhají obě naprosto stejně a vypadá, že v pohodě. Nedalo mi to a začal jsem trochu zkoumat komunikaci mezi FPGA a programátorem. Přeci jen, jeden z důvodů, proč jsem šel do ZX Uno byl ten, že je to velmi hezký a cenově dostupný FPGA kit se kterým se dá dost vyhrát. Těším se, že zkusím časem zaemulovat Sharpíka. Vypadalo to, jako by komunikace skoro fungovala. Zkusil jsem tedy připájet piny jdoucí do konektoru přímo na desku. Předtím jsem zapomněl zmínit, že ZX Uno používá v nejnovější verzi 4.1, zřejmě kvůli úspoře míst, pro JTAG a RGB/VGA konektory Molex PicoBlade. Konektory jsou to malé a milé, ale kdo má SAFRA tohleto krimpovat. Nemluvě o tom, že jsem doma nenašel vhodné kablíky. Nakonec jsem na piny připájel Kynar drátky a na druhý konec klasickou pinovou lištu. Ale ani nahrazení PicoBlade konektoru připájením drátků nepomohlo. Zkusil jsem to tedy z druhé strany. Na programátoru jsem měl přechodku s celkem dlouhými kablíky a ty jsem teď nahradil jinými poloviční délky bez přechodky. JO! IMPACT si hned našel xc6slx9 a řekl si o data. Takhle to má vypadat. Kua, pár centimetrů drátu a den práce v tahu. No, mám další zkušenost. Na fotce nahoře se můžete podívat na zapojení, co funguje a na té samé fotce nejvíc vpravo je kablík, přes který to nejde. Přesto jsem přes něj naprogramoval pěknou řádku jiných FPGA a CPLD. No, řekli byste to?

ZX Uno má celkem pěkně řešenou konfiguraci. Po zapnutí můžete skočit do něčeho, co vypadá, jako PC BIOS, kde se dá provést řada nastavení. Můžete nakonfigurovat ROM, počítač, který se má emulovat standardně a také spustit nějaké testy. Všechno vypadá moc hezky.

ZXUno_Martin_scr_BIOSt   ZXUno_Martin_scr_BIOS_configs

Jaký počítač se emuluje nebo výběr ROM můžete samozřejmě také provádět “dočasně” přímo při startu systému, jen musí znát ty správné klávesové zkratky. Např. NMI je Ctrl+Alt+F5, reset je celkem logicky přes Ctrl+Alt+Del, ale reset celého ZX Uno přes Ctrl+Alt+Backspace už jen tak nenajdete, stejně jako klávesu EDIT pod Ctrl+Alt+F2.

ZXUno_Martin_scr_ROMst   ZXUno_Martin_scr_SamCoupe

Zlehka jsem projel konfigurace i nějaké Speccy dema a vypadalo to, že to i funguje. Mrkající veselý obličej

ZXUno_Martin_scr_ShockDemo   ZXUno_Martin_scr_Demo1

Rozhodně to ale teď bude chtít bližší zkoumání. Vypadá to, že hračka je to moc hezká a že by se s ní dalo velmi pěkně vyhrát. Jen je safra trochu problém, že hraček je hodně a času je tak málo.

Příspěvek byl publikován v rubrice Apple II, Jupiter ACE, Moderní projekty, Sinclair, ZX Spectrum se štítky , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

16 komentářů u Další zajímavý (nejen) Speccy klon – ZX Uno

  1. F6 napsal:

    Ojoj, to se mi libi jeste vic nez Reverse-U16 i stmz800 🙂 … jak verohodna je prosim reprodukce zvuku AYcka a beeperu, jde nastavit stereo a jaka je uroven hlasitosti beeper vs AY?

    • Martin napsal:

      Ahoj, no zatim jsem fakt nemel cas to moc zkouset. Nastavenim stereo se zatim neda nijak hybat v „BIOSu“. Je to furt vyvojova verze, bylo by asi potreba sahnout do VHDL. Ja jsem teda muzikalne celkem hluchej, ale mas neco, na cem by se to dalo testnout? Nebo klidne jeden kousek zapujcim.

  2. Roman napsal:

    Tie AD724 si teda bral z ebay? A fungujú? V TME ich majú za šialenú cenu, a tiež som ostal zarazený rozdielom ceny na ebay.

    • Martin napsal:

      Jo. Resp. jeden jsem si vzal z Mouser a na ostatní desky z eBay. Jak jsem stavel dve desky, tak jsem na jednu osadil ten z Mouser a na druhou z eBay a obraz z obout vypadá naprosto stejně. Úplně happy s ním nejsem, ale AD724 za to asi nemůže. Musím zkusit různé monitory a taky vyzkoušet RGB výstup. Ovšem ty PicoBlade konektory jsou tedy hnusně titěrné.

    • Flire8 napsal:

      Pokud by měl někdo zájem, v šuplíku se mi povaluje 2x AD725 a rád se jich za rozumný peníz zbavím. Info na flire8@seznam.cz

  3. Ikon napsal:

    Netuším čím to je spôsobené, ale zdá sa mi, že fonty na tých obrázkoch padajú všade doľava. Je to foťákom, umiestnením monitora, alebo je to naozaj reálny vizuál?
    ZX-Uno vyzerá ako pekný kúsok HW a jeho realizácia v malosérii je ďalší skvelý počin Martine. Obraz je však prvá vec, ktorú by som na HW emulátore čakal poriadnu.

    • Martin napsal:

      Jo, mas pravdu, leti to trochu doleva, ale je to obraz z kompozitniho vystupu. Zatim jsem moc nezkoumal, cim to je, mozna monitorem, ale spis to ma neco spolecneho s tim Speccy jadrem, protoze Sam Coupe mi prijde, ze to nedela. O vikendu chci vyzkouset RGB, tak se uvidi.

  4. Klásek napsal:

    Další SUPER dílko :).

  5. Petr napsal:

    Zdravím Vás Martine, můj příspěvek není k danému tématu ale měl bych prosbu. Dostal se mi do rukou zachovalý kousek ZX Spectrum 48k, Před mnoha lety jsem gumáka měl ale s nástupem PC jsem ho neuváženě prodal. Bohužel ten současný nefunguje. když ho zapojím, dostanu se jen k úvodní obrazovce „C 1982 Sinclair Research Ltd“ a poté Spectrum zatuhne. Když pak odpojím napájení a zapnu ho podruhé, potřetí ……. k úvodní obrazovce se ani nedostanu, jen se zacyklí a stále dokola se restartuje a po restartu se střídavě objevují na stále stejných místech barevné čtverečky. Když ho zapnu druhý den, zase se dostanu jednom k úvodní obrazovce a tak dokola. Netušíte co by to mohlo být za závadu, případně nevíte o někom šikovném, kdy by pomohl s diagnostikou a opravou ? Děkuji. Petr.

    • Martin napsal:

      Zkuste napsat na OldComp.cz, ostatni Vam urcite poradi s diagnostikou. Taky zalezi odkud jste. Takhle na prvni tip bych to videl na zdroj, napajeni nebo pameti. Tj. nic, co by se nedalo opravit.

  6. Miro napsal:

    Mozno pisem neskoro, ale u mna pomohla vymena kondenzatora pri resete

  7. Pingback: ZX Uno upgrade – až 45 emulačních jader a 2 MB paměti | Martinův 8-bitový blog

  8. Pingback: ZX-UNO: PRVNÍ ZKUŠENOSTI » FACTOR6

  9. Pingback: Zápisky 05/2017 | SinDiKat

  10. Clouseau napsal:

    Podle dokumentace k té SPI Flash to vypadá že by mělo stačit jen objednat správný typ. Od výrobce totiž bit QE je default nastavený u typu končícím „IQ“. TJ v tomhle případě W25Q128FVSIQ (na pouzdru označeno W25Q128FVSQ). Ovšem otázka je jak by si s tím zase poradil programátor….

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *