Introduction

Introduction (Bemutatkozás)

Az IC-Prog egy Windows alapú szoftver PIC mikrovezérlők programozására. A szoftver használatához alapvető elektronikai és Windows ismeretek szükségesek.

A szoftver használatához egy programozót kell a számítógéphez csatlakoztatni és a programozót és a programot is megfelelően be kell állítani.

Az IC-Prog működéséhez Windows 95, 98, ME, NT, vagy 2000 operációs rendszer és külső vagy belső matamatikai társprocesszor szükséges. 386-os processzortól és 8Mb ram-tól felfele működik.

Az IC-Prog jogvédett, de szabad szoftver. Másolni és terjeszteni lehet mindaddig, amíg nem módosítják semmilyen formában, nem értékesítik vagy nem használják illegális dolgokra.

Az IC-Prog-ot univerzális programozó alkalmazásnak tervezték minden programozó eszköz számára. Ha van egy programozónk, amit szeretnénk hogy támogasson az IC-Prog, akkor a program készítőjével kell kapcsolatba lépni.

A szerző felelősséget nem vállal a program által okozott közvetlen vagy közvetett károkért. A programot mindenki a saját felelősségére használja.


IC-Prog Prototype Programmer

Az IC-Prog egy Windows alapú szoftver, amellyel sokféle eszközt tudunk programozni és sok fajta programozót ismer.

A támogatott eszközök listáját lásd itt: Supported Devices . Az ellenőrzött eszközök listája itt: here

A támogatott programozók listája itt: Supported Programmers.

Az program a Direct I/O-t és a Windows API-t is támogatja.

A parancssoros beállításokat lásd itt: Commandline parameters .


Install programmer hardware

Install programmer hardware (A programozó eszköz beállítása)

Csatlakoztassuk a soros vagy párhuzamos port-ra a programozónkat. Legyünk biztosak abban, hogy a programozónkon a kapcsolók a gyárilag ajánlott állásban vannak.

Insert chip or Smartcard (Chip és chipkártya behelyezése)

A PIC-ek (és általában minden chip) érzékenyek az elektrosztatikus kisülésre, ezért földeljük le magunkat, mielőtt a chip-et kibontjuk a csomagolásból.

Mielőtt a chip-et belehelyezzük a programozó foglalatába, ellenőrizzük, hogy a lábai egyenesen állnak-e. A chip lábai könnyen eltörhetnek. Ha olyan fejlesztési munkát végzünk, ahol gyakran kell újraprogramozni, jó ötlet egy szállító foglalat használata. Legyünk biztosak abban, hogy a programozónkon a kapcsolók a gyárilag ajánlott állásban vannak.


General

General (Általános)

A program fő ablaka mutat minden információt, ami a kiválasztott eszköz programozásához szükséges. Minden eszköz rendelkezik legalább egy kód (CODE ) területtel, ahol az információkat (programokat) tároljuk. Az eeprom-oknak csak ilyen kód területük van.

Más eszközöknek, mint pl. a mikrovezérlőknek további tároló területeik vannak, ilyen pl. az adat terület (DATA). Általában a kód terület a mikrovezérlő által végrehajtandó programot tartalmazza, az adat területen adatokat -pl. táblázatokat számításokhoz-tárolunk.

A legtöbb mikrovezérlőnek, így a PIC-nek is van egy konfigurációs (Configuration) területe is. Itt konfiguráljuk a PIC alapbeállításait.

A konfigurálás különböző mindegyik mikrovezérlőnél, a speciális beállításokat megtaláljuk a mikrovezérlők adatlapjában.

Main view : (Program fő ablak)

Main view

Az IC-Prog megpróbálja úgy megjeleníteni az információkat, hogy könnyű legyen megérteni azt, hogy mi mit jelent.

A kód és adat területeken az információt hexadecimális és karakteres formátumban látjuk. A bal szélen a kód és adat terület címét láthatjuk. Középen az értékeket hexadecimális, jobb szélen ugyanazt , csak karakteres alakban látjuk.

Mindegyik sor a kód területen 8 szót tartalmaz. A sorok címei mindig 8-al növekednek. Egy szó 16 bit széles, ezt az IC-Prog 0000-FFFF közötti hexadecimális értékekkel jelzi. Néhány eszköz 14, 12 vagy 8 bites, így a maximum érték

3FFF, 0FFF vagy 00FF lesz, de az IC-Prog mindig 4 hexadecimális számot ír ki. A karakterek kijelzésénél csak a 16 bites szó alsó 8 bitjét használjuk, mivel az általános karakter tartomány 0-255-ig tart (8bit).

Code area : (Kód terület)

Code area (Kód terület)

Mindegyik sor az adat területen 8 darab 8 bites értéket jelez ki. Ennek értéke hexadecimális 00-tól FF-ig terjed.

Data area : (Adat terület)

Data area (Adat terület)

A készülék konfigurációs területe (ha van) könnyen konfigurálható olyan elemekkel, mint a legördülő menű és a jelölőnégyzetek. A felhasználó könnyen ki tudja választani a kívánt konfigurációt, és az IC-Prog kiszámolja a konfigurációs szót. Ez a kiszámított konfig szó a konfigurációs terület alján látható.

A konfiguráció elemei eszköz specifikusak, így a konfigurálás különböző lehet különböző eszközöknél. Az adott eszköz adatlapján lehet megtalálni a konfigurálás információit.

Configuration area : (Konfigurációs terület)

Gyakran a konfiguráció elemeit csak engedélyezni vagy tiltani kell. Ennek megfelelően az IC-Prog a megfelelő bitet nullára vagy egyre állítja a konfig szóban. Másik útja is lehet a konfiguráció megváltoztatásának. Az IC-Prog automatikusan invertálja a konfiguráció elemeit, ha ez szükséges. Ha engedélyezni akarunk egy konfigurációs elemet, akkor tegyünk pipát a jelölőnégyzetbe, ha tiltani akarjuk, akkor távolítsuk el a pipát.

Configuration area (Konfigurációs terület)

Néhány eszköznek olyan sok konfigurációs eleme van, hogy ezek már nem férnek el a konfigurációs területen. Ilyenkor az IC-Prog készít egy második (vagy harmadik) konfigurációs területet, melyeket a terület jobb felső sarkában lévő nyilakkal tudunk kiválasztani. Ha az eszköznek csak 1 konfigurációs területe van, akkor ezek a nyilak nem működnek. Ha az eszköznek több konfigurációs területe van, a nyilakkal lehet lépkedni közöttük.

Amikor az eszköz kiválasztásra kerül, az IC-Prog az eszköz tipusának megfelelően állítja be a nézetet. Minden eszköznek van kód területe, így ez mindig látható. Néhány eszköznek (pl. az eeprom-oknak) nincs adat területe, így ezt az IC-Prog nem mutatja. Ilyenkor a kód terület nézete foglalja el a teljes területet. Néhány eszköznek nincs konfigurációja, ilyenkor az IC-Prog ezt a területet üresen hagyja. Csak az ellenőrző összeg látszik.

Standard operations: (Alapvető műveletek)

Általában a felhasználó egyszerűen megnyit egy fájlt és azután beprogramozza az eszközbe.

Egy fájl megnyitásához el kell menni a File menűbe és ki kell választani az Open File… menűpontot.

Egy általános “Open File” párbeszéd ablakot kapunk.

Az IC-Prog alapbeállítása a minden file “Any file (*.*)” szűrő, így minden file látszik.

Egyszerűen ki kell választani a kívánt fájlt és a megnyitásra klikkelni.

Ha megnyitottunk egy fájlt, a kód , az adat és a konfigurációs területen láthatjuk (ha a választott eszköz rendelkezik ezekkel a területekkel).

A kód , az adat és a konfigurációs terület módosítható.

(A kód és adat területekre pufferként hivatkozunk.)

Erre több lehetőségünk van:

  • A puffer területre beírni az értékeket.Ha olyan érték kerül bevitelre, ami meghaladja a megengedett értéket, az IC-Prog automatikusan korigálni fogja azt. Ha pl. 14 bites PIC-et használunk, és FABC írunk be, az IC-Prog az F-et 3-ra fogja változtatni.
  • Kettős kattintással egy helyre. Decimális, hexadecimális vagy ASCII karaktereket tudunk bevinni.
  • Az Edit menűt használva. Az egész puffert (Fill Buffer) vagy egy részét (Fill Buffer From) tudjuk feltölteni.
  • A jobb egérgomb használatával. Az előbbi lehetőségeket használhatjuk.

How to use a Phoenix Programmer : (Hogyan használjuk a Phoenix programozót)

Az első dolog helyesen konfigurálni a Phoenix alapbeállításait.


How to install IC-Prog

Configure IC-Prog (IC-Prog konfigurálása)

Az IC-Prog sok fajta programozó eszközt ismer.

A Settings/Hardware menűben lehet a programozó eszközt és a beállításait módosítani.

Interface

Az IC-Prog a programozó eszközt közvetlen a porton vagy a Windows API-n (Application Programming Interface) keresztül vezérli.

Az API csak a soros portot támogatja.A Windows API-t Windows NT alatt használhatjuk.

Az NT és Windows 2000 operációs rendszerekben ez a program nem támogatja a párhuzamos port használatát.

A párhuzamos port használata ezekben a rendszerekben “Permission” hibát eredményez.

Communication (Kommunikáció)

A következő jeleket lehet invertálni

  • Data Out
  • Data In
  • Clock
  • MCLR
  • VCC
  • VPP

Process Priority (Folyamat prioritás)

  • Normál
  • Magas
  • Valós idejű

A folyamat prioritás lehetővé teszi az IC-Prog számára a pontosabb időzítéseket.Ha a folyamat prioritást magasra állítjuk, a Windows lassulhat, mert a CPU több processzor időt biztosít az IC-Prog számára a többi folyamat rovására.

change I/O Delay (Az I/O késleltetés változtatása)

A gyorsabb számítógépeknek magasabb I/O értéket kell beállítani. Pl. egy PIII 650 számítógépnek négyet.


Open File

Open File (File megnyitása)

A file megnyitása funkcióval a kiválasztott file-t tudjuk betölteni a programkód vagy adat pufferbe. Az IC-Prog támogatja a 8 és 16 bites Intel hexa formátumot, az object és bináris file-okat.

Néhány assembler generálhat olyan hexa file-t, amelynek nem szabványos a kiterjesztése. Ebben az esetben a minden file “All Files” szűrőt használjuk a fájl betöltéséhez. Ha a hexa file nem tartalmaz konfigurációs adatokat, akkor az eszköz alapbeállításait használja a program.

Az IC-Prog-nak meg kell adni, hogy milyen formátumot használunk.

Jelenleg támogatott file formátumok:

· IHX8 (*.hex, *.h8, *.sxh)

· IHX16 (*.hex, *.h16, *.sxh)

· Binary (*.bin)

· Object (*.obj)

· Motorola S (*.mot, *.s19)

· Eeprom files (*.e2p, *.eep)

· Any file (*.*)

Az IC-Prog-ban az alapértelmezett beállítás a minden file “Any file (*.*)”.

Ha így gond van a megnyitással, akkor választani kell egy file tipust.

Ha a Settings/Options menűben a “Drag & Drop” engedélyezve van, akkor a “Húzd és dobd” módszerrel is tudunk a programba file-okat betölteni.

Az ALT+F1 billentyű kombináció az utoljára betöltött file-t nyitja meg.


Save File As

Save File As (Mentés másként)

Ez a parancs a puffer összetevőit hex file-ba menti. A file tartalmazni fogja a program és adat memóriát, a konfigurációt és a felhasználói azonosítókat is.


Open Data File

Open Data File (Adat file betöltése)

Az adat pufferbe tölti a kiválasztott file-t.


Recent Files

A parancs kilistázza a nyolc utoljára használt file-t.


Print

Print (Nyomtatás)

Ezzel a paranccsal a kiválasztott puffer tartalmát nyomtathatjuk ki.


Fill Buffer

Fill Buffer (Puffer feltöltése)

A program puffert egy megadott értékkel tölti fel. Az érték lehet decimális, hexadecimális vagy ASCII karakter.


Fill Buffer

Fill Buffer From

A program fuffert tölti fel egy értékkel két cím között. Az érték lehet decimális, hexadecimális , vagy ASCII karakter.


Fill Buffer

Copy From Buffer (Másolás pufferból)

A puffer kijelölt részét a vágólapra másolja.


Fill Buffer

Paste To Buffer

A vágólap tartalmát a puffer aktuális pozíciójába másolja.


Fill Data Buffer

Fill Data Buffer (Adatpuffer feltöltése)

Az adat puffert egy megadott értékkel tölti fel. Az érték lehet decimális, hexadecimális vagy ASCII karakter.


Fill Data Buffer From

Az adat puffert tölti fel egy értékkel két cím között. Az érték lehet decimális, hexadecimális , vagy ASCII karakter.


Fill Buffer

Copy From Data Buffer (Másolás adatpufferből)

Az adatpuffer kiválasztott részét a vágólapra másolja.


Fill Buffer

Paste To Data Buffer

A vágólap tartalmát az adat puffer aktuális pozíciójába másolja.


Active Buffer

Active Buffer (Aktív puffer)

Itt tudjuk kiválasztani, hogy melyik puffer legyen aktív.


Compare

Egy puffer tartalmát tudjuk összehasonlítani egy másikkal.


Fill Buffer

Device (Eszköz)

A programozni kívánt eszközt tudjuk kiválasztani.


Recent Devices

A parancs kilistázza a nyolc utoljára használt eszközt.


Hardware

Hardware (Hardver)

Itt tudjuk konfigurálni a programozónk alapbeállításait.

Beállíthatjuk a programozó tipusát, a használt port-ot és késleltetését, azt hogy a Windows API-n keresztül vagy direkt akarjuk a portot kezelni és invertálhatjuk a ki és bemeneti jeleket.


Hardware Check

Hardware Check (Hardver ellenőrzése)

Itt a csatlakoztatott programozónkat tudjuk ellenőrizni, a jelölőnégyzetbe rakott pipával aktívvá tesszük az aktuális jelvezetéket.


Options

Options (Opciók)

A következő lehetőségeket módosíthatjuk ebben a menűben:

· Drag & Drop (Húzd és dobd)

· Smartcard port & device type (16F84 or 16C84) (Chipkártya beállításai)

· Language to be used (Nyelvválasztás)

· Shell Extension (Társítás)

· Miscellaneous (Vegyes)

· Confirmations (Megerősítés)

· Notifications (Értesítések)

· I2C

· Programming (Programozás)

  • Shortcuts (Gyorsindító billentyűk)

Confirmation page: (Megerősítés)

Ha valamilyen műveletet akarunk végezni az IC-Prog-al, akkor az megerősítést kérhet.

Ez biztosítja, hogy egy eszközt tévedésből ne tudjunk törölni.

Négy művelet van, amire megerősítést kérhetünk.

  • Programming a device (Eszköz programozása)
  • Erasing a device (Eszköz törlése)
  • Codeprotecting a critical device (Kódvédelem beállítása)
  • Overwriting a file (File felülírása)

Kódvédelem beállítása: néhány eszköz csak egyszer programozható “One Time Programmable”. Ez azt jelenti, hogy csak egyszer van lehetőségünk írni. Tehát ha kódvédelemmel látunk el egy ilyen eszközt, akkor soha többé nem tudjuk olvasni és törölni. Ha a letöltött program hibás, eldobhatjuk eszközünket. Ha a kódvédelem megerősítése be van kapcsolva, elkerülhetjük ezt.

Notification page: (Értesítések)

Az IC-Prog tud értesíteni néhány eseményről. Ebből jelenleg kettő van:

  • Ha a felhasználói azonosító (ID word) hiányzik a betöltött file-ból.
  • Ha a konfiguráció (Config word) hiányzik a betöltött file-ból.

Ha a felhasználói azonosító vagy a konfiguráció hiányzik, ezek értéke FFFF lesz. Ha azt akarjuk, hogy ezek hiánya esetén figyelmeztessen a program, engedélyezzük ezeket az opciókat.

I2C page:

Ezen az oldalon az I2C eszközök (pl. a 24Cxx család) néhány lehetőségét állíthatjuk be.

Enable MCLR as VCC (Az MCLR engedélyezése mint VCC) : Ha 24Cxx eeprom-ot olvasunk vagy programozunk “Ludipipo” interface-en keresztül, akkor a MCLR-t magas szintre kell kapcsolni. Az eszköz a MCLR vonalon kapja a tápfeszültséget (VCC).

Enable Page-Write (Page-Write engedélyezése) : A 24Cxx eeprom programozására két lehetőségünk van: Bytewrite (byte írás) és Pagewrite (lap írás). A Pagewrite ajánlott, mert az gyorsabb, de nem mindegyik eszköz támogatja. Ha olyan eeprom-unk van, ami nem támogatja, akkor tiltsuk le ezt a lehetőséget. Egyébként engedélyezzük ezt a lehetőséget.

Hardware Address (Hardver cím) : Ha olvasunk vagy programozunk egy 24Cxx eeprom-ot, akkor címezni is kell. A 24Cxx eeprom három lába állítja be a címet. Ez a három láb (A0, A1 és A2) alapállapotban testre van kötve (a programozó csatlakozójában), tehát az alap hardver cím nulla. De ha a 24Cxx eeprom-ot áramkörben akarjuk programozni, akkor a hardver cím beállító lábak valamelyike lehet hogy a tápfeszre van kötve, így a hardwer cím más lesz. Ezzel az opcióval tudjuk a hardver címet a megfelelő értékre beállítani.

Programming page: (Programozás)

Az IC-Prog ellenőrizni tudja az eszközt:

  • Programozás után
  • Programozás közben

Csak PIC-nél tudja a programozás közbeni ellenőrzést.

Először programozzuk az eszközünket, kapcsoljuk ki és újra be, ezután indítsuk az ellenőrzést. Így tudjuk biztosítani, hogy az eszközünket megfelelően beprogramoztuk.

Ha PIC mikrovezérlőnél a kódvédelmet beállítottuk, nem tudunk visszaolvasni, így az ellenőrzés hibát jelez.

Ha a programozás közbeni ellenőrzést választottuk, akkor mindegyik programozott szó rögtön ellenőrizve lesz, mielőtt a kódvédelem bekapcsolna. Ez teszi lehetővé, hogy egy kódvédelemmel ellátott eszköz ellenőrzését végre tudjuk hajtani.

Shortcuts page: (Gyorsindító billentyűk)

Az IC-Prog-nak négy előre beállított gyorsbillentyűje van: CTRL+F1, CTRL+F2, CTRL+F3 és CTRL+F4. Itt mindegyik gyorsindító billentyűhöz egy eszközt rendelhetünk.

Drag & Drop page:(Húzd és dobd)

Az IC-Prog-ban engedélyezhetjük, hogy a húzd és dobd módszerrel a Windows intézőből fájlokat töltsünk a program vagy adat területre. Mindkét területre választhatunk speciális file tipusokat és választhatjuk a minden file lehetőséget is. Utóbbi esetben a file tipus automatikusan kerül felismerésre. (Bővebb információ az Open File (File megnyitása) menűben található.)

Smartcard page: (Chipkártya)

Az IC-Prog támogatja a “Phoenix” kompatibilis programozókat. Mivel a “Phoenix” programozó ténylegesen nem is programozó, a Hardware menűben nem szerepel. Ezen az oldalon tudjuk beállítani.

Port : Itt lehet megadni, hogy a Phoenix melyik port-ra csatlakozik.

Invert Reset(Reset megfordítása): A reset jel a Phoenix programozóra invertálva kerül. Ez akkor szükséges, ha a Phoenix programozó a reset jelet invertálja. Tehát ha az IC-Prog invertálja a reset jelet és a Phoenix újra invertálja, akkor a reset jel visszaáll eredeti állapotába. Azokat a Phoenix programozókat, amelyek a reset jelet invertálják, gyakran “Smartmouse” programozóknak hívják.

Protocol : Az IC-Prog két fajta protokoll-t ismer: a Multimac és a Secanix kompatibiliset. Itt lehet kiválasztani, hogy az IC-Prog melyiket használja.

Device : Az IC-Prog-nak meg kell adni az eszköz tipusát. Ez vagy a 16C84 vagy a 16F84. Ki kell választani, hogy a kártyán melyik chip van.

Frequency : A Phoenix általában két frekvenciát használ: 3.58Mhz és 6Mhz. Itt kell megadni, hogy melyiket használjuk.

Language Page: (Nyelvválasztás)

Az IC-Prog számos különböző nyelvet támogat. Itt kell kiválasztani a kívánt nyelvet a legördülő menűből. Néhány nyelv más karakterkészletet használ. Az IC-Prog automatikusan a helyes karakterkészletet használja, de a menűkben nem. Ha a menűkben is a helyes karaktereket akarjuk látni, akkor a SYSTEM (rendszer) fontot a kívánt karakterkészletre kell állítani. Ezt a Vezérlőpultban tudjuk elvégezni.

Shell Page (Társítás): Itt lehet a file-ok kiterjesztését társítani az IC-Prog-al. Ez azt jelenti, hogyha duplán klikkelünk egy file-ra, akkor az automatikusan az IC-Prog-ot nyitja meg. Ugyanígy a jobb egérgombot is használhatjuk. A jelölő négyzetet kipipálva ezt a funkciót engedélyezzük.

Misc. Page (Vegyes): Itt lehet beállítani néhány további opciót, mely a többi oldalon nem szerepel.

Process Priority (Folyamat prioritás): A Windows-ban minden folyamatnak van egy prioritása. Alaphelyzetben a prioritás normál (NORMAL). Ha szükség van pontosabb időzítésekre, akkor a magasabb prioritást kell választani, de ekkor lehet, hogy a Windows vagy egyéb alkalmazások lelassulnak. Ha nincs szükség pontosabb időzítésekre, akkor állítsuk ezt az opciót “NORMAL”-ra

Enable NT/2000 Driver (NT/2000 Driver engedélyezése): Az IC-Prog a direkt I/O-t használja a programozókkal való kommunikációra. A Windows NT/2000 nem engedi meg a direkt I/O hozzáférést. Ez a speciális driver engedélyezi, hogy az IC-Prog használja a direkt I/O-t a Windows NT/2000 operációs rendszerekben.Az “icprog.sys” file-t ugyanabba a könyvtárba kell másolni, mint ahol az “icprog.exe” is van. Ha engedélyezzük ezt az opciót, az IC-Prog telepíti ezt a meghajtót.

Enable VCC control for JDM : Alaphelyzetben a JDM (és vele kompatibilis) programozók nem vezérlik a tápfeszt ( VCC-t). Ez azt jelenti, hogy a tápfesz mindig be van kapcsolva. Néhány PIC mikrovezérlőt nem lehet helyesen programozni a VCC vezérlése nélkül. Ez az opció engedélyezi, hogy az IC-Prog vezérelje a VCC-t a JDM programozókon. Nem garantált a működés és csak gyakorlott felhasználóknak ajánlott. Ne használjuk ezt a lehetőséget, mert más eszközök programozásánál hibát okoz.

Make all outputs high (Combi) (Minden kimenet magasra állítása):

Néhány programozónak van párhuzamos és soros portja is. A soros port helyes működéséhez a nem használt párhuzamos portot magas szintre kell emelni. Ez az opció a párhuzamos port lábait magas szintre emeli.

Így tudjuk megvalósítani, hogy programozónkat nem kell kihúzni, majd újra csatlakoztatni, ha a másik portot akarjuk használni.


Smartcard (Phoenix)

Smartcard (Phoenix) (Chipkártya)

Ez a lehetőség engedélyezi az IC-Prog számára a Phoenix programozó használatát, hogy egy megfelelő töltő programon keresztül a chipkártyán lévő eeprom-ot tudjuk programozni.

Ezt csak a soros porton keresztül tudjuk használni, mert a kommunikáció az általános aszinkron összeköttetés szerint folyik.


Clear Settings

Clear Settings (Beállítások törlése)

Visszaállítja az IC-Prog beállításait alaphelyzetbe.


Read All

Read All (Minden olvasása)

Ez a parancs a chip adatait a memóriába olvassa. A konfiguráció is a chip-ből lesz kiolvasva. Ha a chip másolásvédett (a képernyőn a CP ki van pipálva), akkor a puffer szeméttel lesz feltöltve.

Ha egy kódvédett chip-et olvasunk, különböző értékeket kaphatunk. PIC 16C84-nél mindig 7F-et kapunk. Más eszközöknél nullákat kapunk, AVR-nél 11, 22, 33 stb. olvasható. Nem lehetséges a kódvédelem észlelése a 90xxx és 89xxx eszközöknél, csak az olvasott értékek által tudjuk észrevenni. A 90xxx konfigurációs bit-jei nem nullázódnak olvasáskor.


Program All

Ez a parancs a puffer tartalmával fogja programozni a chip-et. A puffert a file megnyitása (Open File) funkcióval vagy egy már programozott chip olvasásával tudjuk feltölteni. Ez a parancs a konfigurációt is letölti a chip-be.


Program Config

Ez a parancs a konfigurációs adatokat tölti le a chip-be.


Erase All

Erase All (Mindent törölni)

A chip tartalmának törlése.


Blank Check

Kiolvassa a chip tartalmát és leellenörzi, hogy üres-e.

Üres eszközök tartalma FFFF, ha az eszköz pl. nullákkal van feltöltve, akkor az nem üres.


Verify

Verify (Ellenőrzés)

Ezzel a paranccsal a puffer és a chip tartalmának egyezőségét tudjuk ellenőrizni.


Smartcard Wizard

Smartcard Wizard (Chipkártya varázsló)

Itt lehet a chipkártyát a BootLoader programmal feltölteni, mely lehetővé teszi az eeprom programozását a PIC-en keresztül. Ezen eljárás során tudjuk az eeprom file-t kiválasztani.


CRD Upload

CRD Upload (CRD feltöltése)

Itt a CRD adatokat tudjuk feltölteni..


Assembler

A program kódot assembler formátumban jelzi ki. (Csak 12/14 bites PIC-ek esetében)


Hex View

Hex View (Hexadecimális nézet)

Hexadecimális formátumban látjuk a kijelzett értékeket.


Device Position

Device Position (Eszköz pozíció)

Az eszköz pozícióját mutatja a kiválasztott programozóban.


Device Information

Device Information (Eszköz információ)

A programozandó eszköz részletesebb információit jeleníti meg.


Refresh

Refresh (Frissítés)

A képernyő frissítése.


About

About (A programról)

Itt lehet megtekinteni a verziószámot és a kapcsolatteremtés információit.


Supported Programmers

Supported Programmers (Támogatott programozók)

Az IC-Prog a következő programozókat támogatja:

  • JDM Programmer (Ludipipo)
  • Conquest programmer
  • TAFE Programmer
  • TAIT 'Classic' Programmer
  • Parallel TAIT programmer
  • Fun-card Programmer
  • SCHAER Programmer
  • ProPic II Programmer
  • STK200 Programmer
  • AN589 Programmer
  • WILLEPRO Programmer
  • Fluffy Programmer
  • DL2TM Programmer


Programmer Specific Information

JDM Programmer (JDM programozó)

  • Ha JDM programozóval 24Cxx eeprom-ot programozunk, akkor az eeprom 7-es (WP) lábát a foglalatba nem szabad bekötni, hanem testre (GND) kell kötni.
  • Ne használjuk az "Enable VCC control for JDM" lehetőséget, ez kísérleti stádiumban van. Ezt a funkciót tiltsuk le !


Supported Devices

Supported Devices (Támogatott eszközök)

Jelenleg a következő eszközöket támogatja az IC-Prog:

4-Wire eeproms:

59C11, 59C22, 59C13

I2C eeproms:

24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64/65
AT24C128, AT24C256, AT24C512 (Atmel)
M24C128, M24C256, 24C515 (Microchip)
PCF8572 or 8572 = 24C01
PCF8582 or 8582 = 24C02
PCF8592 or 8592 = 24C04
SDA2506
SDA2516
SDA2526
SDA2546
SDA2586
SDA3506
SDA3516
SDA3526
4C016 == 24C01
GRS-003 == 24C02
GRN-004 == 24C04
GRN-008 == 24C04
GRX-006 == 24C04
GRX-007 == 24C04
KKZ06F == 24C01
BAW658049 == 24C02
BAW57452 == 24C02
M8571 == 24C02
X24C01

24LC21 = 24C01 ( A 7-es lábat (VCLK) VCC-re kell kötni !!)

Minden C és LC sorozat támogatva van. A CS sorozat még nincs támogatva!

A 24Cxx eeprom 7-es lábát kössük GND-re! A PCF 7-es lábát kössük VCC-re.

Flash Microcontrollers:

89C1051, 89C2051, 89C4051

IM-Bus eeproms:

NVM3060
MDA2061, MDA2062

Microchip PIC devices:

12C508, 12C508A, 12C509, 12C509A, 12CE518, 12CE519
12C671, 12C672, 12CE673, 12CE674
12F629, 12F675
16C433
16C54, 16C56, 16C58
16C61, 16C62A, 16C62B, 16C63, 16C63A, 16C64A, 16C65A, 16C65B, 16C66, 16C67
16C71, 16C72, 16C72A, 16C73A, 16C73B, 16C74A, 16C74B, 16C76, 16C77
16F73, 16F74, 16F76, 16F77
16C84, 16F83, 16F84, 16F84A
16F88
16C505
16C620, 16C620A, 16C621, 16C621A, 16C622, 16C622A
16CE623, 16CE624, 16CE625
16F627, 16F628 Pull PGM to GND!
16F628A, 16F648A Pull PGM to GND!
16F630, 16F676
16C710, 16C711, 16C712, 16C715, 16C716, 16C717, 16C745, 16C765
16C770, 16C771, 16C773, 16C774, 16C781, 16C782
16F818, 16F819
16F870, 16F871, 16F872, 16F873, 16F874, 16F876, 16F877 Pull PGM to GND!
16F873A, 16F874A, 16F876A, 16F877A Pull PGM to GND!
16C923, 16C924
18F242, 18F248, 18F252, 18F258, 18F442, 18F448, 18F452, 18F458 Pull PGM to GND!
18F1320, 18F2330, 18F4320, 18F6620, 18F6720, 18F8620, 18F8720 Pull PGM to GND!

Microwire eeproms:

93C06, 93C46, 93C57, 93C56, 93C66, 93C76,
93C86
93C13 = 93C06
93C14 = 93C46
GRO-001 = 93C46
GRN-001 = 93C46
GRN-002 = 93C46
KKZ01 = 93C46
6005L = 93C06
B22AN = 93C06
P8911 = 93C06
CAT35C102 = 93C56
CAT35C104 = 93C66
CAT35C108 = 93C76

Minden C és LC sorozat támogatva van. A CS sorozat még nincs támogatva!

Modern Serial eeproms:

AK6420, AK6440, AK6480 Még kísérleti állapotban!
BR9010, BR9020, BR9040, BR9080
BR9016, BR9021
CXK1011, CXK1012, CXK1013
PDG011
TC89101, TC89102
NS7002, NS77007
M6M80011, M6M80021, M6M80041
ER1400 (Speciális ER1400 Programozót használni!)

M58657 == ER1400

Philips Serial Microcontrollers:

P87LPC762, P87LPC764, P87LPC767, P87LPC768

Scenix/Ubicom devices :

New revision: SX18, SX20, SX28, SX48, SX52
Old revision: SX18, SX20, SX28

Spi eeproms:

25010, 25020, 24040
25080, 25160, 25320, 25640

Spi Microcontrollers:

90S1200, 90S2313, 90S2323, 90S2333, 90S2343
90S4414, 90S4433, 90S4434, 90S8515, 90S8535
89S53, 89S8252


Verified Devices

Verified Devices (Ellenőrzött eszközök)

Sikeresen programozott eszközök:

JDM PROGRAMMER

- 24C01, 24C02, 24C04, 24C08, 24C16

- 24C32, 24C64/65, 24C256

- 59C11

- 93C46, 93C06, 93C66

- PIC 16C84, 16F84, 16F84A

- PIC 16C71, 16C72

- PIC 16C64A

- PIC 12C508, 12C508A, PIC12C509, 12CE518

- PIC 12CE674

- PIC 16C505

- PIC 16F872 (Fontos, hogy a 16F872 PB3-as lábát alacsony szintre kössük programozás közben ( először az LVP módot tiltani kell ))

- PIC 16F877, 16F876, 16F874, 16F873

- PIC 16C715

- AT90S8515

- AT90S2323

- 25020

- 89S53

CONQUEST PROGRAMMER

- 24C16

- PIC 16F84

TAFE PROGRAMMER

- AT89C2051

TAIT SERIAL PROGRAMMER

- 24C16, 24C32, 24C64/65

- PIC 16C84, PIC16F84, 16F84A

- PIC 12C508, 12C508A, 12C509, 12C509A

- PIC 16C622A

- PIC 16F873, PIC 16F874, PIC 16F876

- PIC 16C622A, PIC 16C63A, PIC 16C66

TAIT Parallel Programmer

- 16C54

FUN-CARD PROGRAMMER

- AT90S1200

- AT90S2313-10PI

- AT90S2323-10PI

- AT90S2343-10PI

- AT90S8515-8PI

SCHEAR Programmer

- 16F873

- 16F84, 16F84A

- 24C16, 24C32

STK200 Programmer

- 90S1200

- 90S1200A

- 90S2313

- 90S8515

ProPic II Programmer

- (Propic I : 12C508A and 16F84)

- 12C508A, 16F84, 16F84A

- 24C04, 24LC16

- 12C509A

- PIC16F870 , PIC16F872, PIC16F873 , PIC16F876, PIC16F877 Az RB3 lábat GND-re kell kötni!

- 93C06, 93C46 (Adapter szükséges)


Command Line Options (Parancssoros lehetőségek)

Az IC-Prog parancssoros indítása:

IC-Prog Paraméter1 Paraméter2 stb.

Paraméterek:

-p Programozás

-v Ellenőrzés

-r Olvasás

-I Program ablak láthatatlan

-x Smartcard engedélyezés (Through Pic Programming)

-t00 A programozandó eszköz tipusa //NINCS ELLENŐRIZVE!

-g00 A programozó tipusa //NINCS ELLENŐRIZVE!

-o0 Port tipusa //NINCS ELLENŐRIZVE!

-lFILENAME Fálj betöltése (Csak IHX8 lehet)

-sFILENAME Fálj mentése(Csak IHX8 formátumban)

-q Kilépés az utolsó parancs után

-fxxxx Konfiguráció= xxxxh

-ft? Fáljtipus választás: 0 = bármilyen, 1= IHX8, 2 = IHX16 stb.

Az alapbeállítás 0 ("bármilyen")

Például: IC-Prog ltest1.hex -p -v -i -f3EEA -q

A test1.hex file betöltődik . A programozás elindul, előtte kérdés: 'Do you want to program?' (Akar programozni?).

Azután ellenőrzés, amely után a következő üzenet jelenik meg: 'Verified successfully' (Ellenőrzés kész).

Amikor az IC-Prog befejezi, bezáródik és a program ablak végig láthatatlan.


Buffer Editing

Buffer Editing (Puffer szerkesztés)

Többféleképpen lehet szerkeszteni a puffereket:

  • A puffer területre beírni az értékeket.Ha olyan érték kerül bevitelre, ami meghaladja a megengedett értéket, az IC-Prog automatikusan korigálni fogja azt. Ha pl. 14 bites PIC-et használunk, és FABC írunk be, az IC-Prog az F-et 3-ra fogja változtatni.
  • Kettős kattintással egy helyre. Decimális, hexadecimális vagy ASCII karaktereket tudunk bevinni.
  • Az Edit menűt használva. Az egész puffert (Fill Buffer) vagy egy részét (Fill Buffer From) tudjuk feltölteni.
  • A jobb egérgomb használatával. Az előbbi lehetőségeket használhatjuk.


PIC Information

PIC Information (Információ a PIC-ekről)

A legjobb információforrás a PIC-ekről az Internet. Az Interneten megtalálhatjuk a gyakran ismételt kérdéseket (FAQ:s), részletes leírásokat, alkalmazási példákat, assembler-eket, szimulátorokat, programokat, kísérleti panelokat és sok minden mást.

Néhány link itt alább található. Ezek lehet, hogy időközben elavulnak, ilyenkor valamelyik keresőt használjuk az Interneten.

Az IC-Prog honlapja:

IC-Prog Software

Email :

bgijzen@wanadoo.nl

David Tait´s Pic Links:

http://www.man.ac.uk/~mbhstdj/piclinks.html

Microchip Technology:

http://www.microchip.com/

WinPhoenix:

http://www.thoic.com/decrypt/


Smartcards

Smartcards (Wafercards) (Chipkártyák)

Az eredeti chipkártyákon egy PIC volt, az újabbakon minimum egy PIC és egy eeprom van a nagyobb memória miatt.

Egy tipikus “Gold” kártya 16x84-es PIC-et és 24LC16 eeprom-ot tartalmaz.

A 16x84 lehet 16C84 vagy az újabb 16F84.

A 16x84 a processzor, a 24LC16 az eeprom.

· A 24LC16 egy 16Kbit-es (2KByte-os) eeprom (256x8x8 bit).

· A 16x84-nek 1024 byte program memóriája és 64 byte adat memóriája van.

Oscillator selection (Oszcillátor választás)

XT Kristály oszcillátor mód (alapbeállítás)

A teljes lista:

· LP Alacsony teljesítményű oszcillátor

· XT Kristály oszcillátor (alapbeállítás)

· HS Nagy sebességű oszcillátor

· RC RC oszcillátor

WDT (Watchdog timer)

Mindig ki

PWRT (Power on reset)

16C84-nél bekapcsolni

16F84-nél kikapcsolni

A PWRT bit jelentése a 16C84 és a 16F84 esetében fordítva van. Tehát ha egy 16C84 chip-et választunk ki az IC-Prog-ban és betöltünk egy file-t, ezután a 16F84-et választva láthatjuk, hogy a PWRT bit ellentettjére vált.

RB6 vs RB7

A PIC RB6/RB7 kivezetéseit használjuk a chipkártyával való kommunikációra (a “Multimac Gold” kártya az RB7 lábat használja).

“Gold” chipkártya

PIC kártya csatlakozóinak bekötése

PIC és eeprom kártya csatlakozóinak bekötése

Through PIC Programming (Programozás PIC-en keresztül)

Az eeprom direkt programozása néhány chipkártyánál nem lehetséges, mert az eeprom lábai nincsenek kivezetve. Ebben az esetben a PIC-en keresztül tudjuk az eeprom-ot programozni. Az IC-Prog támogatja az eeprom-ok PIC-en keresztüli programozását. Ebben az esetben egy Phoenix vagy Smartmouse programozó szükséges az eeprom programozásához.


Credits

IC-Prog szerzője : Bonny Gijzen

Helpfile szerzője: Paul Walton

Nyelvek:

· Spanyol Jose from ZdS electrónica

· Francia Richard Klein at www.varicap.com/

· Portugál Gil for translating and Fernando Carvalho for the initial (Brazilian) translation

· Holland Wilfred de Wolf

· Olasz MM9800 and Pleaser at freesat.cjb.net

· Orosz Sergei and Alex Kokaiko

· Görög Con Tanidis

· Lengyel Rajmund Komosinski

· Török Ayhan

· Német Christoph Heitkamp

· Magyar Izbéki Tibor

Ez a Helpfile Tord Andersson eredeti súgójára épült.


Release History

Version Release date

.9a 01/01/2000


Through Pic Programming

Through Pic Programming (Programozás PIC-en keresztül)

Hogyan programozzuk a PIC-en keresztül a Seca/Mediaguard vagy Irdeto kódolású chipkártyákat?

v1.0
Sept/2000
by 2old4this
============

Háttérinformációk
-------------------------
2000 márciusában programok és módszerek jelentek meg az Interneten az “ó-divatú” Multimac (korábban D2MAC) tipusú chipkártyák újraprogramozására az Irdeto/Betacrypt és Seca/Mediaguard kódolású csatornák szabad vételére. Ez a dokumentum ezeket az (ismeretlen forrásból származó) információkat használja fel. Bárki, aki fel akarja használni ezeket az infomációkat fizetős csatornák szabad vételére, tisztába kell lennie azzal, hogy ez törvénytelen cselekedet az Európai Gazdasági Közösségen belül (nálunk is!). A szerző semmilyen felelősséget nem vállal, ezeket az információkat csak oktatási céllal tette közzé.

Gyors referencia
----------------------------
1) Használjuk a JDM programozót + IC-Prog-ot a Loader/Boot/Main file (xxx.HEX) betöltésére a PIC 18F84-be
2) Használjuk a Phoenix programozót + IC-Prog-ot a Seca/Irdeto kulcs file (yyy.BIN) betöltésére a 24C16 eeprom-ba
3) Használjuk a JDM programozót + IC-Prog-ot a Seca/Irdeto pgm file (zzz.HEX) betöltésére a PIC 16F84-be

Követelmények
-----------
* Windows PC egy soros port-al és kábellel (Pl:COM1 port és ugyanaz a soros RS232 kábel, amit a PC modemhez való összekötésénél használunk.
* Chipkártya. Több formátum van használatban. Lásd lent. Jellemzően a “Gold” kártya szükséges
* Programozó készülék, amely tud JDM módban PIC-et és eeprom-ot programozni
* Programozó készülék, amely tudja Phoenix/Smartmouse módban a beágyazott eeprom-ot programozni
- Ha PCB chipkártyákat használunk, akkor Phoenix/Smartmouse programozóra nincs szükség
- A Ludi & Phoenix programozók két különböző készülék, de vannak kombi eszközök is
* PIC programozó szofver a JDM működtetésére
* Phoenix/Smartmouse szoftver a Phoenix/Smartmouse működtetésére

Részletesebben a kártyákról
------------------------------
Alapvetően három fő tipusuk létezik.

(1) Wafer cards (Chipkártyák)

Ezek hagyományos műanyag hitelkártya tipusúak. A chip a két műanyag réteg között helyezkedik el, tehát láthatatlan.
A nemzetközi ISO 7816 szabványt követik, a lábkiosztás a hivatalos irodalomban jól dokumentált. A “wafer” szó ostyát jelent, gyártáskor a chipeket egy nagy ostya alakú lapból készítik, innen kapta a nevét.

Különféle ilyen kártyák vannak:

"wafer" kártya csak egy chipet tartalmaz. Ezeket nem tudjuk használni Irdeto vagy Seca dekódolásra. Ezeket D2MAC analóg dekódolásra használták, MultiMacI (MM1) kártyaként voltak ismertek.

"Goldwafer" kártya két chipet tartalmaz: egy PIC-et és egy eeprom-ot. Ezek először D2MAC analóg kalóz kártyaként váltak ismertté, MultiMacII (MM2) kártyaként ismertük. A név onnan adódott, hogy a kártyák többsége arany színű. De nem mindegyik. Van pl. fehér színű is. Nem az számít, hogy milyen színű, hanem hogy milyen chipet tartalmaz. Óvatosak legyünk, a legtöbb fehér kártya csak egy chipet tartalmaz, ez nem elegendő. A PIC tipusa 16F84. Néhány régebbi kártyán 16C84 chip van. Ez nem jó, mert kevesebb a RAM memóriája. Az eeprom a 24C16. Néhány variációja megengedett. Pl. a 24LC16, ahol az “L” az alacsony energiafogyasztást jelenti.

"Triple-wafer" kártya két PIC-et és egy eeprom-ot tartalmaz. A "Quad" kártya két PIC-et és két eeprom-ot. Ezeket azért készítették, hogy több kulcs file-t vagy a Seca/Irdeto kártya emulációs szoftver nagyobb, újabb verzióját tudjuk használni. A két PIC mester (master) és szolga (slave) beállításban működik. Ilyen kapcsolási rajzok az Interneten elérhetők, a kártyák készen megvásárolhatók, és a file-ok speciális master/slave verziója széles körben elérhető.

"Fun" kártyák. Ezek nemcsak más belső konfigurációt, hanem különböző chip készletet használnak (pl. Atmel AT90S8515-t 24C65 eeprom-al).

(2) SMD cards - SMD kártyák- Felületszerelt eszközök

Ezek ugyanolyan méretűek, mint a műanyag chipkártyák, de látható felületszerelt chip-eket tartalmaznak. Ezek a kártyák nagyon vékonyak, és csakúgy mint a wafer kártyák beilleszthetőek a CAM nyílásába.( A CAM egy adapter, melybe a kártyát kell belerakni és az adaptert kell a beltéribe behelyezni). Néhány SMD kártya rosszul forrasztható és ez problémákat okozhat.

(3) PCBs –Nyomtatott áramköri lemez kártyák

Ezek normál nyomtatott áramköri lapok, melyeken az érintkezők úgy vannak kialakítva mint a fentebb említett kártyákon. A CAM-ből kilógó részre vannak az alkatrészek szerelve. Ez azt jelenti, hogy a kártya kilóg az adapterből. Kisebb kényelmetlenséget jelent, hogy emiatt a CAM ajtaját nem lehet becsukni.

Ezeknek két jelentős előnyük van. Az első az, hogy a chipek kivehetőek és a JDM programozóval külön programozhatóak. Itt az eeprom-ot közvetlen tudjuk programozni, ellentétben a többi kártyával, ahol csak a PIC-en keresztül, indirekt módon tudjuk programozni. Lásd később.

A második, hogy szabványos elektronikai alkatrészekből hobby szinten is elkészíthetők. Kapcsolási rajzok, NYÁK tervek több Internetes oldalról letölthetők, a PIC-ek és eeprom-ok elektronikai kereskedőktől beszerezhetők. És így egy kicsit olcsóbbak is.

Részletesebben a programozókról
---------------------------
A legtöbb, de nem mindegyik programozó a soros portot használja normál soros kábellel. Néhány ( jellemzően a drágább modellek) a párhuzamos portot használja méretre szabott kábellel. A szükséges tápfeszültség jellemzően 9 vagy 12 volt, 300 mA terheléssel.

Azért, hogy a műanyak kártyákat tudjuk programozni, a Ludi és a Phoenix programozónak is rendelkeznie kell kártyaolvasóval (ahová a kártyát be tudjuk csúsztatni). Alaphelyzetben nem mindegyik rendelkezik ilyennel. Ha csak PCB kártyákat akarunk programozni ( kiszerelhető chipekkel), akkor a Ludi programozó is elég kártyaolvasó nélkül, ekkor a megfelelő foglalatba kell a kiszerelt eeprom-ot és PIC-et behelyezni.

Ha műanyag kástyákkal dolgozunk, mindenképpen szükséges a Phoenix/Smartmouse programozó, ez az egyetlen eszköz, amivel a beágyazott eeprom-ot tudjuk programozni. Az alacsonyabb működési sebesség 3.57MHz. A magasabb 6MHz-es sebesség jó a modernebb kártyákhoz, de a régieket tönkreteheti. Nem midegyik programozónak van 3.57 MHz-es oszcillátora, van amelyiknek csak 6 MHz-es van. De a 6 MHz-es programozót egyszerűen 3.57 MHz-esre tudjuk változtatni a kristály cseréjével. Megjegyzés: a programozó JDM módban nem használja a kristályt.

Népszerű JDM programozók, melyeket "Hi/Lo" programozóknak is hívnak: DL20 és JDM (Jens Dyekjær Madsen).

Részletesebben a programokról
------------------------------------

Ezekkel a programokkal tudjuk a chipeket programozni, olvasni és törölni. A HEX vagy BIN file-okat a PC-ről (pl. a merevlemezről) töltjük a pufferbe, és innen a soros port, kábel, programozó útvonalon a chipbe. A legtöbb program ellenőrő összeget (checksum) használ az írás ellenőrzésére. Némelyik csak a Ludi-t, némelyik csak a Phoenix-et, van amelyik mindkettőt tudja programozni. Néhánynak további ügyes tulajdonságai vannak, mint pl. a disassembler. Néhány programozó csak a saját szoftverével kapható.

Megjegyzés: nem mindegyik Phoenix/Smartmouse programozó szoftver támogatja a 3.57 MHz-es sebességet!

Hol vehetjük meg a kártyákat és mennyibe kerülnek
--------------------------------

A chipkártyákat, az SMD és PCB kártyákat szerte Európában a műholdas üzletekben és az Interneten megvásárolhatjuk. Üres állapotban teljesen törvényes az árúsításuk. Ha programot (pl. egy kalóz másolatot) töltünk bele, árúsítása és használata illegális. Az ára 15 angol font körül van. Többet nem szabad fizetni érte, ha többet kérnek, becsapnak. Ezek a kártyák olcsóbbak voltak, de mióta az Irdeto és Seca kártyák megjelentek, az áruk megemelkedett és ellátási problémák is keletkeztek. A PCB kártyákat hobby szinten is megépíthetjük. Kapcsolási rajzok, NYÁK tervek több Internetes oldalról letölthetők, a PIC-ek és eeprom-ok elektronikai kereskedőktől beszerezhetők. Ha magunk csináljuk a kártyát, az alkatrészek kevesebb mint 10 fontba kerülnek. “Fun” kártyát szintén készíthetünk (kapcsolási rajzok az Interneten) vagy készen vásárolhatunk. A több PIC-et és eeprom-ot tartalmazó (Trio és Quad) kártyák jelenleg nem beszerezhetőek, csak magunk tudunk ilyeneket készíteni.

A programozókat is megvásárolhatjuk kit vagy megépített állapotban; a műholdas boltokban is árúsítják őket, bár nem olyan nyíltan mint a kalózkodás elleni törvény hatályba lépése előtt (2000 május 28). Sok kereskedő online is árúsít. Az árak az olcsóbb (pl. VP-2) 30 fontostól a professzionális több száz fontos készülékekig terjednek. A drágábbak általában sokkal több chipet támogatnak. Ha csak PIC 18F84-et és 24C16 eeprom-ot akarunk programozni, az olcsóbb programozó is megfelelő.

Az eljárás áttekintése
-------------------

A cél a kulcs (key) file betöltése az eeprom-ba és a szoftver ( mely tartalmazza a dekódoló algoritmust ) PIC-be töltése. A program file általában hexadecimális (xxx.HEX) formátumú. A kulcs (key) file általában bináris (xxx.BIN) formátumú. Egy letöltő ( loader vagy boot ) file szükséges, hogy a kulcs (key) file a PIC-en keresztül az eeprom-ba töltődjön. Ez tipikusan HEX file. Néhány program úgy követeli meg, hogy az eeprom file BIN kiterjesztésű legyen, a többi pedig HEX. De ha a letöltött file nem ilyen formátumú, ne aggódjunk, több segédprogram létezik az egyik formátumról a másikra való konvertálásra. Léteznek még olyan programok, amelyek CRD formátumban tárolják a kulcs file-okat. Most itt ezekkel nem foglalkozunk.

A letöltő (loader/hex) file
-------------------

Amikor nem eltávolítható chipekkel dolgozunk (pl. SMD kártyák, műanyag chipkártyák), egy problémát kell leküzdenünk: hogyan programozzuk az eeprom-ot, amikor az a PIC “mögött” van. A megoldás: a PIC-en keresztüli programozás (Through-PIC) technikája. Ez azt jelenti, hogy egy speciális file-t töltünk a PIC-be, mely a kulcs (key/bin) file-okat az eeprom-ba tölti. Ez a letöltő (loader/boot) program különböző verziókban létezik, mint pl.LOADER.HEX, MAIN.HEX, 16F84.HEX stb. Gyakran a kártya program fájlokkal egybe van csomagolva a letöltő (loader) file. De nem kötelező azt a letöltő programot használnunk, ami a csomagban van. Ha már egyszer találtunk egy megbízható letöltő file-t, mentsük el és a jövőben mindig azt használjuk. Amikor az eeprom beprogramozódott, a letöltő file teljesítette feladatát és most már felülírhatjuk a kártya programjával.

Léteznek olyan Seca szoftver file-ok, amelyekbe a letöltő program bele van építve. Ilyen esetben nem kell a letöltő file-t egy külön lépésben a PIC-be tölteni, elég a végső program file-t betölteni és ez el fogja végezni az eeprom programozását. Ez nem mindig megbízható, ezért nem árt, ha külön letöltő programot használunk. A tanácsom az, hogy mindig ugyanazt a letöltő programot használjuk a PIC-en keresztüli programozásra, legyen szó akár Irdeto vagy Seca kártyákról.

A kulcs (key/bin) file
----------------

Ez a file néhány olyan adatot tartalmaz, amely utánozza a gyártók eredeti kártyáját (MOSC) : pl. az ATR-t, az ország kódot, a sorozat számot, karakter sorozatot. Szintén tartalmaz egy sereg kulcsot. Az Irdeto maximum 8 csomagot. A Seca maximum 16-ot. Ezek a csomagok különféle kulcsokat, azonosítókat, dátumokat, csatorna azonosítókat és egyebeket tartalmaznak.

A kulcs (key) file-t az eeprom-ba töltés előtt a PC-n szerkeszteni tudjuk. A szerkesztéshez egy szokványos hex editort is használhatunk, de jobb az erre szakosodott szerkesztők (pl. Arcano's "Ich Bin") egyike: az MaMBa verziója a Seca és Irdeto eeprom file-okat is tudja szerkeszteni. Ez hasznos lehet akkor, ha már találtunk egy stabilan működő programot a vevőkészülékünknek, és egyszerűen akarjuk frissíteni, hozzáadni azokat a kulcsokat, amelyekre szükségünk van (egyszerűbb ez, mint egy teljesen új programot letölteni és reménykedni, hogy jó-e).

A Seca program néhány verziójánál (elég kacifántos módon) a távirányítóval lehet az új kulcsokat bevinni. Más verzióknál ( a Seca és Irdeto-nál is) lehetséges automatikus frissítés (auto-updating), amikor is a program új kulcsot generál és rögzíti a kártyába ezeket (pl. mikor a szolgáltató kulcsot változtat- ez rendszeresen megtörténik).

A program/hex file
--------------------

A hivatalos kártyát utánozza, de általában több funkciót biztosít. Pl. több szolgáltatót kezelhet, mint a hivatalos kártyák. Ez tartalmazza a dekódoló algoritmusokat, hogy működésbe tudjuk hozni a kártyát a titkosított csatornák vételéhez. Különböző verziói léteznek, mindig frissítik őket. Gyakrabban frissítik, mint a kulcs (key/bin) file-okat. Legjobb tanács az, hogy a hex/bin párokat együtt használjuk, ne keverjük őket.

Hibaelhárítás
---------------

A kártyáknak, programoknak, programozóknak, PC-nek, CAM-nak és a vevőknek nagyon sok variációja létezik, ezért elkerülhetetlen, hogy problémák merüljenek fel. Néha a probléma oka a nem ellenőrzött vagy hibás hardver. Néha a hibák a programban vagy a CAM firmware-ben vannak. Ha a probléma fellép, néha nehéz megtalálni az okát.

Itt van néhány ismert probléma:

* Néhány programozó (ilyen a VP-2) laptop-okkal nem működik. A COM port beállításokkal vagy a COM port power management-el lehet a baj. Kapcsoljunk ki minden power management programot, amit futtatunk és biztosítsuk, hogy a COM port be legyen kapcsolva.

* Néhány programozó (ilyen a VP-2) nem megbízhatóan (vagy egyáltalán nem) működik gyors számítógépekkel – Pentium 90 gépektől felfele. Ilyen probléma a programozó szoftver rossz időzítő impulzusai miatt lehet, van amelyik program jól működik, van amelyik nem. Hova raktuk a régi jó öreg 486-os gépünket?

* Nem minden programozó és programozó szoftver kompatibilis egymással. Sok PIC és EEPROM programozó szoftver van, próbálgassuk és amelyik jól működik, azt használjuk.

* Gyakran kicsi eltérések a feszültségben vagy az időzítő impulzusokban olvasási/írási vagy ellenőrzési hibát okozhatnak. A megoldás általában egyszerű: újra kezdeni a műveletet ( természetesen miután a chip-et kivettük/visszahelyeztük vagy megtisztítottuk a kártya kontaktusait vagy a programozót ki/be kapcsoltuk).

* Néhány kártya program nem kompatibilis néhány vevőkészülékkel. Ha létezik, keressük meg a vevőhöz való kártya file-okat.

* Néhány CAM firmware instabil a kártya szoftverrel. Az Astoncrypt v1.03 stabilabb, mint a korábbi v1.00 verzió.

* A vevőkészülékek különbözően viselkednek. Némelyik nagyon jól tolerálja a kártya file-okat és a CAM firmware frissítését. Néhány vevőkészülék firmware hibával rendelkezik, ilyen pl. az Echostar ad3000ip.

* Néhány letöltő (loader/boot) file jól működik, némelyik nem. Ha találunk egyet, ami jól működik, tartsuk meg és ezt használjuk mindig a file-ok letöltésére.

* A legtöbb beágyazott Seca CAM több szolgáltatót tud kezelni, mint a legtöbb (Aston) CI CAM. A CI CAM tipikusan 9 szolgáltatót tud kezelni, a beágyazott CAM 14-et vagy többet. Megjegyzés: a Seca automatikus frissítés a normál “Gold” kártyán (1 PIC, 1 EEPROM) csak 7 szolgáltató adatait tudja kezelni.

* Ismerünk néhány kártya file-t, amelyek címzési hibákat tartalmaznak. Megfelelően soha nem fognak működni. A legjobb stratégia megtartani azt a programot, amelyikkel jól működött a vevőkészülékünk és szerkeszteni/hozzáadni az új kulcsokat a régi programhoz.

Linkek
======

A következő file-ok és linkek csak példák. Ezeken kívül nagyon sok létezik.

Ez a file
---------
Satellites-UK board (GB) http://www.satellites.co.uk/cgi-bin/dcforum/dcboard.cgi
Satellite Fun board (NL) http://pub10.ezboard.com/bthesatellitefunboard

Egyéb hasznos források
--------------------------------
H2DeeToo's message board: http://hostedscripts.com/boards/icprog/ (mainly English language)
PIC FAQ: http://www.piclist.com/techref/default.asp?from=/techref/piclist/&url=../microchip/index.htm
PIC FAQ: http://www.ubasics.com/adam/pic/archive/picfaq.txt
PIC info archive: http://www.ubasics.com/adam/pic/archive.shtml
PIC links mirrors: http://www.man.ac.uk/~mbhstdj/piclinks.html
...eg1: http://www.ubasics.com/adam/pic/piclinks.shtml
...eg2: http://engmtasd.derby.ac.uk/mirrors/pic/