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.
A hobbielektronika
fórumon is feltehetitek kérdéseiteket!
2008.02.16. watt
frissítés: 2009.01.07