USB NAND SPI flasher építése - DIY leírás
USB NAND SPI flasher építése - DIY leírás
Bevezetés:
A JTAG hack és a Reset Glitch Hack során nélkülözhetetlen az Xboxban lapuló NAND memóriachip tartalmának kinyerése és az ezzel való manipuláció. Ehhez viszont előbb ki kell nyerni az említett chip tartalmát, később pedig tudnunk kell visszaírni a módosítottat.
Az említett műveletek elvégzésére háromféle lehetőség kínálkozik hardveresen:
- LPT port segítségével: felépítésében és kivitelezésében a legegyszerűbb. Csupán PC-s párhuzamos port megléte a feltétel (PCI-os LPT port nem jó!). Nagyon lassú és zavar érzékeny adatátvitel jellemzi, utóbbit sokszor nehéz kiküszöbölni és emiatt sok hibát vét. NANDPro kompatibilis.
- ARM mikrokontroller alapú eszközzel: a leggyorsabb, egyik legbiztonságosabb és a legdrágább. Használata USB port meglétét követeli, mely minden mai PC-n megtalálható.
Ide tartozik az LPC2148 Olimex USB header board és ennek utánépített változatai (TX NAND-X és Maximus NAND Flasher). NANDPro kompatibilis, segítségével a Xilinx alapú glitcher chipek is felprogramozhatóak.
- PIC mikrokontroller alapú eszközzel: jelen leírás tárgyát képezi. Gyorsaságban az előbb említett két eszköz között helyezkedik el. Ugyancsak USB portot használ a PC-vel való kommunikációra. NANDPro kompatibilis és stabil, akárcsak ARM alapú nagytestvére. Megépítése olcsó. Az ARM típusúaknál említett három eszköz kivételével a moddolásra kínált összes NAND író-olvasó ennek utánépített verziója.
Az utolsóként említett eszköz kivitelezéséhez nyújt segítséget ezen leírás. A flasher lelke egy Microchip fejlesztésű 8 bites mikrokontroller: PIC 18F2455 vagy PIC 18F2550 (Megvásárolható pl. a magyarországi hivatalos disztribútortól!). Az említett két típus bármelyike felhasználható egymással való kompatibilitásuk miatt. Itt megjegyezném továbbá, hogy a tutor nem olyan részletességű - nem is célja -, hogy kitérjen olyan apró mozzanatokra, mint pl. a forrasztás.Nos, ennyit bevezetőül, lássuk miből élünk!
PIC programozó építése, bootloader beírása a mikrovezérlőbe:
Elsőként építenünk kell egy PIC programozót, mellyel beírjuk a kontrollerbe a bootloadert. Ezen program segítségével a gyári és egyéb más keletű programozó használatát kerülhetjük el a későbbiekben. Lehetőségünk nyílik, hogy USB-n keresztül frissítsük a mikrovezérlőben ketyegő szoftvert, így az esetleges újraprogramozás miatt nem kell ki-be rakosgatni a chipet egyik eszközből a másikba, a frissítés a célkapcsolásban is könnyedén elvégezhető.
Őszintén szólva rendelkezem gyári programozóval, így ezen lépés nem jelentett nagy gondot számomra. Ám olyan tutort akartam, amiben nincs handycap, így az interneten némi böngészés után találtam egy ezzel a témával foglalkozó wikipédiás oldalt, rajta a világ legprimitívebb programozójával, melynek neve ART 2003 és párhuzamos portot használ. Kevés alkatrészből, fillérekből kivitelezhető, akár próbapanelre.
Vállalkozó szelleműeknek részletes leírás a nyákmaráshoz, valamint kész panelterv is rendelkezésre áll letölhető pdf formájában.
A kapcsolási rajz (pdf 3.oldal), képek a programozóról, valamint kicsit bővebb, angol nyelvű leírás az alábbi pdf-ben található.
A hozzávalók:
- 8 db 1N4148 típusú dióda
- 1 db 28 lábú IC foglalat (PRECI-DIP ajánlott az uC könnyebb ki- és berakosgatása végett)
- 1 db 47-100uF közötti, legalább 15V-os határfeszültségű elektrolit kondenzátor
- 1 db 220Ω-os ellenállás (¼ W-os)
- 1 db 25 pólusú, apa D-SUB csatlakozó (nyákot készítőknek 90 fokban hajlított, panelbe építhető ajánlott)
Készítsük el a programozót! Helyezzük be a foglalatba a mikrovezérlőt, ügyelve annak helyes pozíciójára! Töltsük le az alábbi tömörített állományt és a WinPIC legfrissebb verzióját!
Telepítsük fel a programot! Dugjuk a párhuzamos portra a programozót és indítsuk el a WinPIC-et! Figyelem a programban beállítható a magyar nyelvű megjelenítés!
Konfiguráljuk először a programozót a következő módon: (Beállítások menü/Programozó)
A Fájl menüpont alatt válasszuk a Megnyitás parancsot és tallózzuk ki a már kicsomagolt állományból a bootloadert (PICXFlash v3b plus2\PicXBoot.hex)!
Ezek után először konfiguráljuk a képeken látható módon a WinPIC-et! (Opciók fülre katt!)
Figyeljünk arra, hogy a megfelelő típusú PIC legyen kiválasztva 18F2455 vagy. 18F2550! Valamint a - config - mező mindkét típus esetében ugyanaz lesz a konfigurálás végeztével.
A megfelelő beállítások után beégethetjük a PIC-be a bootloadert! Sikeres beírást a következő kép mutatja:
Ennek befejeztével zárjuk be a programot. Az ART-ra többé nincs szükségünk. Kihúzhatjuk az LPT portból, a vezérlőt pedig kivehetjük a foglalatból! Szenteljünk kellő óvatosságot és időt a kivételnek, mert különben a mikrovezérlő lábai bánják a kapkodást és a túlzott erőltetést!
Az USB-SPI flasher kapcsolásának megépítése, eszköz felélesztése:
Jöhet a flasher kapcsolásának megvalósítása! A nyáktervekért katt ide! Kapcsolási rajzát a következő ábra mutatja:
A felhasználandó alkatrészek listája:
-1 db 28 lábú IC foglalat (PRECI-DIP ajánlott az uC könnyebb ki- és berakosgatása végett)
- 1 db 12 MHz-es kristály oszcillátor
- 2 db 10kΩ-os ellenállás (1/4W-os)
- 5 db 100Ω-os ellenállás (1/4W-os)
- 2db 22pF-os kerámia kondenzátor
- 1 db 100nF-os kerámia kondenzátor
- 1 db 470nF-os kerámia kondenzátor
- tördelhető tüskesor
- 1 db USB csatlakozó anya (itt olyan típusú USB csatit válasszatok, amihez van kábeletek!)
- 1 db jumper
nyákot maróknak ezen felül:
- 1 db IDC 10-es csatlakozó anya, 90 fokban hajlított, panelbe ültethető
- 1 db IDC 10-es csatlakozó apa
- 0,5m 10 eres szallagkábel
- tördelhető hüvelysor)
Valósítsuk meg a kapcsolást próbapanelre, vagy a már kimart nyákon! Helyezzük a már bootloaderrel felprogramozott mikrovezérlőt az IC foglalatba, ügyelve annak helyes pozíciójára! A sárgán kiemelt két lábat (lásd kapcsolási rajzon és következő képen a jumpert!) rövidre kell zárni, hogy a PIC bootloader módba kerüljön, így lehetővé téve az USB-n keresztüli programozást.
Dugjuk rá az USB portra az elkészített flashert! Amennyiben mindent jól csináltunk a Windows Custom USB device-ként ismeri fel eszközünket és lehetőségünk nyílik driver megadására. Válasszuk azt az opciót, amelynél mi a driver keresési helyét és adjuk meg az előzőleg letöltött tömörített állomány Driver for PDFSUSB mappáját. Ha minden klappol, akkor hozzáadja a kiválasztott könyvtárban lévő drivert a Windows a többihez.
Ezek után a már kitömörített PDFSUSB programot indítsuk el! A következő kép mutatja a használat helyes sorrendjét!
A Load HEX File gombot megnyomva tallózzuk ki a PICFLASH.hex állományt. Ezt követően aktívvá válik a Program Device gomb, amelynek a segítségével beírhatjuk az uC-be a hex fájlt.
Sikeres írást követően reseteljük az eszközt mind szoftveresen (Execute gomb), mind hardveresen. (Megszünteted a kötést a sárgán jelölt két láb között - eltávolítod a jumpert - valamint lehúzod pár pillanatra az USB kábelt.)
Miután visszadugtad az USB-re a flashert Memory Accessként jelenik meg. Újból lehetőséged nyílik driver megadására, ebben az esetben a Driver ForTthe Flasher mappát adjuk meg keresési helyként. Ha mindent jól csináltunk eddig, akkor a mappában lévő driver hozzáadásra kerül. Ezt követően az Eszközkezelőben a következőként láthatjuk a flashert:
Használat:
A kiolvasáshoz igényelt I/O pontokat (J1D2 és a J2B1 header portok az Xbox alaplapján) és azok bekötését a flasherbe a kapcsolási rajzon láthatjátok. A forrasztás végeztével kössük össze a PC-t és a flashert USB porton keresztül. Az xbox tápegységét helyezzük feszültség alá, valamint dugjuk be a gépbe is, viszont ne kapcsoljuk be azt! (A tápegység visszajelző LED-je sárgán kell hogy világítson!)
Ha ezzel is végeztünk, akkor eszközünk használatra kész!
A NandPro használatához szükséges a port95nt.exe telepítése. Ha ezzel megvagyunk elindíthatjuk a programot a parancssorból! (Start menüàFuttatásà cmd). Megadjuk a Nandpro elérési útvonalát és a nandpro.exe parancs beírásával elindítjuk a programot.
(Az eszközünk teljesen kompatibilis a 2.0e verzióig. A NandPro 3.0-ás verziója inkompatibilis eszközként ismeri fel, a program változásai miatt. Ettől függetlenül ugyanúgy működik ezzel verzióval is, csupán a program új funkcióit nem támogatja, mint pl. a CPLD felprogramozása.)
Alaplapfüggően a felismert és lehetséges a flashconfig ID-k a következőek lehetnek:
01198010 - Xenon / Zephyr / Opus / Falcon (16mb)
00023010 - Jasper 16MB
008A3020 - Jasper 256
00AA3020 - Jasper 512MB
Példaparancs a NandPro használatához: nandpro usb: -r16 Orig.bin, ahol az usb: kapcsoló használatával érjük el a flashert.
Amennyiben a program felismeri eszközünket, de nincs flashconfig:
- rossz a forrasztásunk az alaplapon, illetve nem a megfelelő I/O pont(ok)ra forrasztottunk
- a flashernél az I/O pontoknál rossz értékű ellenállást használtunk, esetleg lefelejtettük valamelyiknél
Megjegyzések:
Az xboxklub.hu közössége, tutorok írói nem vállalnak felelősséget a konzolod tönkretételéért, illetve a leírás használatáért.
Az xboxklub.hu, mint konzol orientáltságú weblap nem foglalkozik a nyákmarással kapcsolatos témákkal, így kérlek titeket, az ezzel kapcsolatos kérdéseket is teljes mértékben hanyagoljátok a fórumban! A nyáktervek kizárólag olyan felhasználóknak szól, akik bármiféle külső segítség nélkül is képesek ÖNÁLLÓAN legyártani abból a panelt! Másodsorban, a közzé tett tervek kizárólag saját célra használhatóak fel, kereskedelmi célokra nem! Amennyiben utóbbit tapasztalom, úgymint a tervek készítője elérhetetlenné teszem azok letöltését a későbbiekben!
Végül következzen két kép a nyáktervek alapján elkészíthető ART 2003 programozó adapterről és az USB-SPI Flasherről:
A tutort készítette: Korni
Minden jog a készítőn kívül: XboxKlub.Hu