GoodFET JTAG adapter

A GoodFET építés kapcsán elgondolkoztam, hogy vajon miért kell 30 programozó/debugger, amikor a legtöbb eszköz a néhány szabványosított protokoll valamelyikét használja? Ennek egyáltalán nem szükségszerű így lennie, de bizonyos okokból kifolyólag a gyártóknak ez így jó.

Az egyedi, és a legtöbb esetben nem is túl olcsó fejlesztői készletek a gyártóhoz kötik a fejlesztőket. Jó példák erre a Xilinx és Altera kitek és programozók. Hiába JTAG ez is, JTAG az is, a Xilinx ISE csak Xilinx programozókat, az Altera Quartus csak Altera programozókat ismer fel és kezel. Aki egyszer az egyik cég mellett teszi le a voksát, az nehezen fog a másik cég termékei felé tekintgetni.

A szabadalmi trollkodás is virágzik, a világ nagy részén már a legapróbb műszaki újítást is igyekeznek önálló szabadalomként bejegyezni, hogy ezzel a konkurenciát megsarcolhassák vagy akár ellehetetlenítsék. A duplaklikk vagy az iPad formájának bejegyeztetése valószínűleg csak a jéghegy vicces csúcsai.

Nagyjából a fentiek miatt van már egy külön dobozom csak a programozóknak, mert még hobbiként űzött elektronika mellett is pár havonta tuti belefutok valamibe, amihez nincs megfelelő interfészem. Van a kupacban szinte minden, PicKit3, AVRISP mkII, USBISP, Altera USB Blaster, Xilinx USB Platform kábel, Minipro TL866A, USB-RS232 átalakító, egy halom USB-TTL konverter és egy nagy halom USB-egyéb átalakító. Elhatároztam, hogy újabb aranyárban mért programozót nem szerzek be. Inkább több célra is használható, univerzálisabb megoldásokat keresek és építek meg. Így futottam bele a Travis Goodspeed projekjébe, amelyet GoodFET névre keresztelt.

GoodFET adapter

A GoodFET egy eléggé univerzális és olcsón utánépíthető, open-source JTAG (és egyéb) adapter, amely USB (serial) porton illeszkedik a géphez, és Python scriptekkel nagyon sok dologra használható.

Egy-egy feladathoz csak két dolog kell:

  1. GoodFET firmware támogatás.
  2. GoodFET kliens. Ez a legtöbb esetben egy PC-n futó Python script, amely a GoodFET eszközzel kommunikál.

Egy koránt sem teljes lista a jelenlegi firmware lehetőségeiből:

  • SPI
  • I2C
  • JTAG (TI JTAG430, MIPS EJTAG, ARM JTAG, stb)
  • MAX USB
  • Nordic RF
  • AVR
  • PIC
  • GLITCH
  • stb.

Ha a firmware támogatás már adott, akkor az „összedrótozáson” kívül csak egy script kell, ami az adott feladatot el is végezteti a GoodFET-tel. A kész kliensprogrammal egy SPI flash vagy egy I2C EEPROM megírása nem telik sok munkába. Szerencsére rengeteg kész, félkész és minta script elérhető a GoodFET fejlesztői oldalán. Ezekkel a GoodFET lényegében egy scriptezhető svájci bicska azoknak, akik szeretnek hardvereket tesztelni, javítani, esetleg hackelni.

GoodFET építés

A fejlesztő nyílt forrásúvá tette a terveket is, így a legegyszerűbb megoldás az volt, hogy egy reális áron dolgozó PCB gyártótól megrendeltem a NYÁK-ot. A GoodFET nagyon apró (48×20 mm), így egy marékkal (6 db) is 2000 Ft alatt volt (postaköltséggel). Az MSP430 chip sajnos meglehetősen drága (kb. 4000 Ft),  és az USB-serial átalakító (FTDI) chip sem túl olcsó, de ezeken kívül alig valami kerül a NYÁK-ra. A teljes anyagköltség kb. 6000 Ft a PCB-vel együtt.

GoodFET PCB
GoodFET42 NYÁK még üresen

Az építés a kevés alkatrész ellenére sem könnyű. A 64 lábas MSP430F2618 chip LQFP tokozású. Ez már az eléggé kellemetlen, nehezen kezelhető kategóriába esik. Ujjal tapizni nem érdemes, és nagyító alatt is elég nehéz rendesen pozicionálni az 1×1 cm körüli, nagyon érzékeny alkatrészt. Én a biztonság kedvéért egy darab Kapton szalaggal rögzítettem az első oldal végigforrasztásáig.

GoodFET LQFP pozicionálás
GoodFET42 LQFP pozicionálás Kapton szalaggal

Megjegyezném, hogy LQFP esetén a folyasztószeren nem érdemes spórolni. Folyasztószer és folyasztószer között iszonyú különbségek vannak, az egyikkel magától megy minden, másikkal meg csak hidakat gyártunk. Ezt sajnos én is a magam kárán tanultam meg. Az LQFP esetén gagyi folyasztószerrel még próbálkozni sem érdemes, mert a lábak között csak kb. 0,2 mm a távolság. Nekem az Amtech NC-559 flux vált be leginkább (az eredeti, nem a kínai), elég drága, de nagyon-nagyon kevés fogy belőle. Ezzel szinte gyerekjáték ezeknek a chipeknek a forrasztása még sima pákával (drag-soldering) is.

GoodFET mikroszkóp alatt
GoodFET42 mikroszkóp alatt

A 28 lábú SSOP tokozású FT232RL chipet az MSp430-hoz képest gyerekjáték pozicionálni és forrasztani. A 0603 méretű (0,8 x 2.7 mm) LED-ek, ellenállások ás kondenzátorok picik, de nem túl problémásak. A mini USB csatlakozó és a tüskesor pedig már csak pihentető levezetés. A befejező alkoholos takarítás persze több időt vesz igénybe, mint az egész forrasztgatás. Az élesztés előtt a forrasztásokat én mikroszkóp alatt is ellenőriztem, mert a tizedmilliméter alatti problémákat szabad szemmel én nem veszem észre.

GoodFET programozása
GoodFET42 programozása

Az összeszerelés után még fel kellett programozni a chipet, de a LED-ek zöld villódzása itt már megnyugtató visszajelzés volt. A programozás után a meglehetősen alapos self-test jó néhány percig (nekem örökkévalóságnak tűnt) futott mielőtt kiköhögte volna, hogy minden rendben van.

GoodFET
GoodFET42 kész

Lett egy újabb általános JTAG programozóm, és remélem egyhamar nem futok bele olyan chipbe, amihez nincs eszközöm.

GoodFET és egy ötforintos
GoodFET42 és egy ötforintos

Linkek:

http://goodfet.sourceforge.net/
https://oshpark.com/

2 hozzászólás “GoodFET JTAG adapter” bejegyzéshez

  1. A cikk számomra érdekes, hasznos volt. Új lehetőséget tárt fel előttem.
    Hobbi szinten foglalkozom elektronikával. PIC és AVR programozására ritkán van szükségem. Van egy Hantek DSO-m aminek a lelki világának feltárására kiváló eszköznek tűnik az ismertetett eszköz. Szívesen megépíteném ha lenne nyákom hozzá. Ha netalán maradt az ötből egyet szívesen átvennék.

A hozzászólások jelenleg nem engedélyezettek ezen a részen.