JDM alapvető problémái
Azaz miért nem működik mindig a JDM égető?

Sokan vannak akik a PIC-el való ismerkedést egy egyszerű égetőáramkör keresésével kezdik, ez talán nem meglepő.
Az sem különösebben az, hogy a lehető legegyszerűbb áramkörre esik a választás.
Ezért szinte elkerülhetetlen, hogy a legnagyobb csapdába kerüljünk, ami nem más, mint a JDM és annak klónjai!
A JDM égető egyszerűen egy helytelenül illesztett áramkör a PC soros portjára!



A megépített égető akkor a legkegyetlenebb, mikor véletlenül működik! Mert ha nem indul el, akkor maximum bosszúságot okoz, de megment egy csomó felesleges időpocsékolástól és agybajtól.
A nagyobb problémát akkor okozza, ha úgy tűnik, hogy működik! Ilyenkor elégedett a kezdő amatőr, és nekiáll programot fejleszteni a kis áramköréhez. Aztán teljesen elbizonytalanodik, mivel mindent úgy csinál, ahogy az a nagy könyvben meg van írva, még sem működik a beégetett program, pedig akár még az ellenőrzés is jót mutat! A másik verzió, mikor egy bizonyos PIC-el működik az égetés, de egy másik típust programozva már teljesen bizonytalanná válik a működése.
(Ritkán előfordul. hogy a JDM működőképes, néhány PIC-el...)

Ha felteszik a kérdést egy fórumban, hogy miért van az, hogy úgy tűnik minden rendben, és még sem jó, vagy hogy ezt miért nem égeti, mikor a másikat igen, a legtöbbször helyes, de hiányos választ kapnak.

Lássuk az általános választ:
A soros port nem adja ki a 12V-ot, ezért nem éget rendesen.

Egyedül erre a vélt hibára épültek meg a külső 12V-al megtámogatott JDM klónok.




A probléma csak részben oldódott meg, mert sok esetben ezek az égetők is megtréfálták a felhasználót.

A valós probléma ritkán hangzik el, attól függetlenül, hogy a 12V kérdése is a problémák közé tartozik esetenként.

Igazából az egész áramkör hibás alapokra épül, mert elektronikusan nem illeszkedik a RS232 szabványához.
A szabványban olvasható, hogy a vonalakon a logikai szinteket a -25..-3V - +3...+25V között változó feszültségek reprezentálják.
A -3 és a +3V közötti tartományt a soros illesztő áramkörök elvileg nem értelmezik a bemeneteken.
A gyakorlatban az előző logikai szint ragad rajtuk ebben az átmeneti tartományban. Csak érdekesség, hogy itt a -3V alatti feszültség jelenti a High(1) logikai szintet, legalább is két RS interfész között.
Az égetés folyamata alatt kétirányú a kommunikáció, többször vizsgáljuk a status jeleket, amelyek az égetés állapotáról adnak infót.
A PIC természetesen 0 és 5V között tud kiadni feszültséget, így a visszaolvasás hibás lehet, ami az égetést teheti bizonytalanná, vagy lehetetlenné.
Van néhány olyan alaplap, amikre olyan RS232 port került beépítésre, amelyek a 0V-ot más szintnek értelmezik, mint a 3V-feletti feszültséget, ezeken akár működhet is a JDM.
Egy szabvány szerint működő alaplapi illesztő esetében azonban nem működhet, elvileg sem!

A PIC igényli a pontos időzítéseket az égetés folyamán, ha ez sérül, akkor az is elképzelhető, hogy a visszaolvasott adatokat jónak véljük, még is a futtatás alatt a nagy sebességű kiolvasás közben hibás adat olvasódik ki, ami a program lefagyásához, ill. hibás működéséhez vezet. 
Ezt a jelenséget a WPB égető programom fejlesztése közben is tudtam produkálni, ha nem megfelelő időzítést állítottam be.
Sajnos a JDM esetében a bizonytalan elektromos kapcsolat, illetve az eltolt logikai szintek miatt az időzítések sérülhetnek, és akkor a beégetett forrás hibásan működhet.

Van még valami. A COM porton kevés a kimenet. Ezért a Vpp-t nem lehet a Vdd-től külön kezelni, ill. csak igen furmányos módon, ahogy az a WPB_RS_V2 égetőáramkörön próbáltam megoldani. (Ez nem JDM klón, mert a szabványnak megfelelő illesztést alkalmaztam.) Az áramkör a 18F-eket a WPB_F18_4.21 égetőprogam verziótól jól égeti, de más PIC-eknél más égetőprogramokkal vezérelve az áramkört, előjön a működő JDM-nél is tapasztalható szűk keresztmetszet, ezért ez is csak korlátozottan alkalmazható és ráadásul egyedi vezérlés kell hozzá, amit csak a WPB_F18_xxx szolgáltat. Én is csak azért építettem RS égetőt, mert volt egy PC, amin nem volt LPT és USB port, csak soros, és alapvetően csak 18F-eket akartunk égetni.

Sajnos soros portra PIC(vagy más mikrovezérlő) nélkül teljes értékű(minden PIC-et égető) égetőt építeni nem lehet, még akkor sem ha az illesztést a szabványnak megfelelően is tervezzük!

Nem említettem még, hogy a JDM gyakorlatilag semmilyen megnyugtató elektromos elválasztást nem ad a PC-től. Ez akár PIC halálhoz is vezethet, ahogy erről már több forrásból is értesültem. A látszólag ok nélküli PIC halálokban a PC-kben lévő hálózati kapcsolóüzemű táp szerepet játszhat. Az USB vonalakon már megoldották a szűrést(5V stabil, szürt), a soros vonal nem erről híres(+12V csak pufferelt)! De az LPT vonalakra is ajánlott legalább egy puffer kapu használata, ahogy ez az oshon klónokon látható.

A legnagyobb csapda a JDM-ben az, hogy az egyszerűsége miatt kezdő amatőrök választják, akik nem tudják eldönteni, hogy a programjukban, az áramkörükben, vagy az égetőjükben van-e a hiba. Mire rájönnek, hogy az égető tréfálkozik velük, lehet, hogy feladják!
Kár lenne e miatt egy ilyen szép témát elkerülni!

Ne építsünk JDM-et és klónjait! :)

Kapcsolat:
Ha kérdés vagy véleményetek van, kérem a wattmep@tvn.hu címre írjatok.
hobbielektronika fórumon is feltehetitek kérdéseiteket!

2008.02.16. watt

frissítés: 2009.01.07