Programátor jednočipových mikropočítačů Atmel AT89C51-55


PROGRAMÁTOR JEDNOČIPU AT 89C51-89C55 K LPT PORTU PC/AT.
=======================================================

ÚVOD:

soubory:
PRG8951S.EXE........programátor AT89C51-AT89C55 demo
Obr_8951.zip........obrázky DPS, schemata

     Programátor slouží k provedení  všech  podporovaných  operací  s  pamětí
programu (PEROM) jednočipového mikropočítače  ATMEL  AT89C51,  89C52,  89C55
(jádro 8051 s 4, 8, 20  kB  PEROM,  128,  256  B  RAM, 2 nebo 3  časovače.....).
     Připojuje se pomocí kabelu k portu pro tiskárnu LPT1 nebo LPT2, napájení je
řešeno ze samostatného zdroje =15-25V, nebo po vypuštění stabilizátoru 12V  a
jeho nahradou propojkou, připojením ke zdroji +12V z PC.



NĚCO O HARDWARE:


**
    Programátor je osazen 2x expandéry 8243, 2x KC238, 2xLED, 1x ZD,
dále soklem  s nulovou  zas. silou  DIL 40  pro AT89C5x  a dalšími  drobnými
součástkami (celkové náklady do 200Kč ).



**
     Kabel je redukcí z CANNON  DB25F (LPT) na  CANNON  DB9F (programátor).
Ke  komunikaci  se čtyřbitovou,  sběrnicí  expandéru  8243  je  využito jediných
obousměrných signálů LPT tj. AF, STB, SLCT, INIT,  dále je použito datovách pinů 
D1-D3 pro výběr (/CS) jednoho ze tří možných expandéru (v programátoru jsou využity
jen dva výběrové signály /CS) a pinu D0 pro zápis do expanderu. (naklady na kabel
jsou cca 40 Kč).



Popis funkce programu PRG8951.EXE (PRG8951S.EXE):


vypis HELPU, vypíše se po spuštění programu bez zadání parametru

  ***********************************************************
   PRG8951.exe   /R|W|C  [/1|2|5] [/5V|12V] [/Px]
   PRG8951.exe /E|S|N|L1|L2|L3|T|I [/1|2|5] [/5V|12V] [/Px]

    * /R .. Read           * /W .. Write (Prg)
    * /C .. Compare          /E .. Erase
      /S .. Read signature   /N .. Kontrola nul
      /T .. Test hardware    /L1.. Lockbit 1
      /L2.. Lockbit 2        /L3.. Lockbit 3
    @ /1 .. AT89C51          /2 .. AT89C52
      /5 .. AT89C55
    @ /5V.. Upp 5volt        /12V.. Upp 12volt
    + /Px.. P1|2 ..  LPT 1|2

      * .. povinny parametr file.bin
      @ .. implicitne cte velikost PEROM a Upp ze signatury
      + .. implicitne LPT 1
                 Smach Elektro Software  (c) 1999/3
  ***********************************************************


     U příkazu se jménem souboru se toto jméno píše vždy jako první následuje
lomítko a jedna z příkazových zkratek. Za ní následuje nepovinná volba  typu
uC s 4kB, 8kB, nebo 20kB  PEROM a programovacího  napětí Upp (implicitně  se
nastaví velikost PEROM a Upp podle signatury právě nasazeného čipu a tato se
také vypíše na obrazovce).
     V případě, že signatura je nečitelná a  programátor  ji vyhodnotí jako
neznámou, vyžádá si ruční zadání velikosti PEROM a Upp.
     Velikost PEROM lze ručně změnit  oproti  skutečné  velikosti  (např  do
89C52 s 8kB PEROM, 256B RAM a  3 T/C zapisuji  program do délky  4kB, zvolím
přepínač /1 pro čip  89C51 (4kB PEROM, 128B  RAM  a  2T/C)  a   programování
proběhne  za  polovični  čas proti programování celých 8kB).
     Hodnota  Upp  se  vždy  prioritně  nastaví  podle signatury uC.
     V případě připojení  programátoru  na  LPT  2, se  zadává  parametr /P2
(parametr /P1 je nepovinný).

Seznam přepínačů:

/r...čtení obsahu PEROM  a  uložení do souboru určeného v prvním  parametru
     (uloží se ve formě ASCII znaků).

/w...programování PEROM obsahem souboru určeným 1. parametrem, je-li soubor
     kratší než  délka PEROM, doplní se zbytek paměti posledním znakem ($0D).
     Výsledek chybně zapsaných byte se uloží do souboru WRCMP.$$$ .

/c...porovnání obsahu  PEROM s  obsahem souboru, zadaným prvním  parametrem,
     případné odchylky jsou uloženy do souboru COMPARE.$$$ .

/e...provede vymazání celé paměti PEROM ($FF) a kontrolu jako volba /n.

/s...přečte tři signaturní byte $1E $51 $FF pro AT89C51 s Upp 12V,
     $1E $52 $05  pro  AT89C52 s Upp = 5V atd...  Pokud se přečtou jiné
     hodnoty, je někde závada (kontakt, zdroj, nebo snad nová verze uC,..)

/n...kontrola vymazání PEROM, v případě jiného obsahu než $FF se do  souboru
     NULA.$$$  vypíši chybně vymazané adresy a jejich obsah.

/t...test hardware, deset  bliknutí  LED na programátoru  signalizuje  správné
     připojení a funkci programátoru.

/l1..uzamčení PEROM, nelze ji již přeprogramovat bez smazání, program běžící
     v externí paměti nepřečte kód z interní paměti programu instrukcí MOVC 
	 (ochrana před stažením software z interní paměti).

/l2..jako S1 + zákaz čtení obsahu PEROM.

/l3..jako S2 + zákaz běhu programu z externí paměti.



DATA PRO  ZÁPIS  DO  ATMELu:


    Soubor s daty pro naprogramování, comparaci  a výstup čtených dat je  ve
formátu *.BIN (nikoliv INTEL HEX) tj. pouze čistá data (zobrazena jako  sled
znaků ASCII). Pro převod  výstupu z kompilátoru který je ve  tvaru *.HEX  do
tvaru *.BIN lze použít např. program HEXBIN.EXE


DATA ČTENÁ Z ATMELu:


     Čtená data jsou ukládána ve  formátu ASCII, data v souborech  chybových
hlášení, jako compare.$$$, wrcmp.$$$, nula.$$$ jsou uložena v hexadecimálním
formátu (u shareware verze v dekadickem formátu).




STRUČNÝ POPIS ATMEL AT89C5x:


     pouzdro DIL 40, 44TQFP, LCC44,  PLCC44, PQFP44
     jádro MCS 51
     PEROM 4(8,20) kB, 1000x přepisovatelná, obsah drží 10let beze změn
     RAM 128(256) Byte
     4x8 I/O linek
     2(3) x čitac/časovač
     5(6) x přerušení
     1 x progr. UART
     budiče I/O linky 10mA (celkem max. 71mA)
     dva režimy se sníženou spotřebou
     Ucc 5V
     Icc 40uA - 25mA (podle frekvence, Ucc a režimu)
       napr. 3V, Power down = 40 uA
             5V, 12MHz, aktivni režim = 25 mA
     prac. kmitočet 0 -24 MHz (plně statický provoz)

Bližší informace tady.


                 ---_---
      P1.0 (T2)  |1  40|   Ucc
      P1.1 (T2E) |     |   P0.0 (AD0)
      P1.2       |     |   P0.1 (AD1)
      P1.3       |     |   P0.2 (AD2)
      P1.4       |     |   P0.3 (AD3)
      P1.5       |     |   P0.4 (AD4)
      P1.6       |     |   P0.5 (AD5)
      P1.7       |     |   P0.6 (AD6)
      RST        |     |   P0.7 (AD7)
      P3.0 (RX)  |     |   EA/VPP
      P3.1 (TX)  |     |   ALE/PROG
      P3.2 (/I0) |     |   /PSEN
      P3.3 (/I2) |     |   P2.7 (A15)
      P3.4 (T0)  |     |   P2.6 (A14)
      P3.5 (T1)  |     |   P2.5 (A13)
      P3.6 (/WR) |     |   P2.4 (A12)
      P3.7 (/RD) |     |   P2.3 (A11)
      XTAL2      |     |   P2.2 (A10)
      XTAL1      |     |   P2.1 (A9)
      GND        |20 21|   P2.0 (A8)
                 -------

REGISTRACE:

     Tento programový balíček patří mezi shareware programy, proto chcete-li
program PRG8951.EXE používat, tzn. získat schéma a předlohu plošných spojů
na papíře a to hlavní získat plně funkční ostrou verzi programu,  zašlete poštovní
poukázkou nepatrný obnos 69,-Kč na autorovu adresu (na konci běhu programu se vypíše)
a bude Vám vše zasláno poštou na FD.
     Pro komerční použití s programováním více jak 10 ks jednočipů za rok je
registrační poplatek 449,-Kč. Pro školy (bez komerčního využití) je registr.
poplatek 39,-Kč.
	V případě, že se spokojíte se zasláním programu E-mailem, snižují se poplatky 
na 50Kč,400Kč,20Kč.


SHAREWARE A PLNÁ VERZE:

    Shareware demo verze je  plně funkční. Na konci akce však zobrazuje informaci
o registaci a prodlužuje ukončení běhu programu o 8 sec. Pracuje nezávisle na volbě
typu jednočipu  vždy s 1kB  PEROM a výpisy  chybových hlášení jsou na rozdíl od plné
verze vypsány dekadicky.


P O Z O R po přechodu z AMD K6 200MHz na Celeron 500MHz jsem zjistil, že programátor "něrabotajet" (pro mladší ročníky přeložím: "nepracuje") jak by měl. Mořil jsem se stím, vkládál čekací stavy a podobně, nic však nepomohlo. Potom jsem do bordu zasunul starší ISA kartu s LPT a rázem bylo po problémech. Z toho plyne, když máš drahý počítač, nešetři na dalším hardware, nebo chceš-li šetřit vsuň tam nějakou starou kartu LPT (asi pomalejší) a vše bude šlapat.
Podívej se také na stránku s programátorem AT89Cx051
Aktualizace 15.10.2000

Návrat na home page