Tudomány és Technika   PIC mikrovezérlők   Adatlapok 

<< Előző oldal   Vissza a tartalomjegyzékhez   Következő oldal >>

 


8.2. A PIC16F505 mikrovezérlő programozási parancsai


Programozási parancsok
Adat betöltése a programmemóriába
Adat kiolvasása a programmemóriából
Cím növelése
Programozás indítása
Programozás leállítása
Programmemória teljes törlése


 

      A PIC16F505 mikrovezérlő felprogramozása a programozási üzemmódba való belépés után 6-bites parancsszavakkal történik, amelyeket esetenkén egy 16-bites adatszó követ.
      A PIC16F505 mikrovezérlő programozási parancsait foglalja össze a következő táblázat.

8.2-1. Táblázat
Parancs Parancsszó Adatszó Időzítés
0.bit ... 5.bit Start, 0.bit ... 14.bit, Stop
Adat betöltése a programmemóriába 0100xx 0 dddd dddd dddd xx 0 -
Adat kiolvasása a programmemóriából 0010xx 0 dddd dddd dddd xx 0 -
Cím növelése 0110xx - -
Programozás indítása 0001xx - külső
Programozás leállítása 0111xx - -
Programmemória teljes törlése 1001xx - belső
x - tetszőleges érték;
d - 12-bites utasítás adatbitjei

Vissza a lap tetejére

      A táblázat bináris értékei (parancsszó, adatszó) beviteli sorrendben vannak megjelenítve, elöl van a legalacsonyabb helyiérték.
      A beírni kívánt 12-bites utasításokat két tetszőleges bittel 14-bitesre kell kiegészíteni. Az így keletkezett 14-bites adatot egy-egy "0" értékű Start és Stop bittel kiegészítve jön létre az adatmozgató utasításokat követő adatszó.
      A parancsszó és az adatszó az Adat bemeneten keresztül léptethető be a mikrovezérlőbe az Órajel bemeneten alkalmazott órajel ütemére. A bevitelt a legkisebb helyiértékű bittel kell kezdeni a parancsszó és az adatszó esetében is, és a két szó között minimálisan 1 µs szünetet kell biztosítani.
      A következő ábrán a soros adatátvitel időzítési megkötései láthatóak.

A PIC16F505 mikrovezérlő programozásának soros adatátvitel időzítési megkötései
8.2-1. Ábra

      Az ábrából látható, hogy a bevitel során az Adat bemenet tesztelése a bevezetett órajel lefutó élénél történik meg.

Vissza a lap tetejére

 

Adat betöltése a programmemóriába

      Az utasításokat egyesével, utasításonként külön Adat betöltése a programmemóriába paranccsal kell betölteni az üres (törölt) programmemóriájú mikrovezérlőbe. Az adatbetöltés után kerül sor a beléptetett utasítás programmemóriába "égetésére", amely folyamat a Programozás indítása parancs kiadásával indítható.
      A mikrovezérlő utasítás a programszámláló által mutatott memóriacímre kerül, amely cím a Cím növelése utasítással változtatható.
      Az Adat betöltése a programmemóriába parancs idődiagramja látható a következő ábrán.

Adat betöltése a programmemóriába
8.2-2. Ábra

      Látható az ábrán a 6 bites parancsszó és a 16 bites adatszó bitsorrendje: először mindig a legkisebb helyiértékű bit kerül bevitelre. A 16 bites adatszó a "0" értékű Start bitből, a 12 bites utasításból, a 2-bites kiegészítésből és a "0" értékű Stop bitből áll.
      Az Adat bemenetre vezetett adatbitek beolvasása az órajel lefutó élénél történik meg, ehhez biztosítani kell, hogy a lefutó él előtt 100 ns-mal már, és a lefutó él után 100 ns-mal még jelen legyen az érvényes adat.
      A parancsszó és az adatszó között minimum 1 µs szünetet kell tartani.

Vissza a lap tetejére

 

Adat kiolvasása a programmemóriából

      Az Adat kiolvasása a programmemóriából paranccsal kiolvashatóak a felhasználói program utasításai, az azonosítók és a konfigurációs szó, így lehetővé válik a "beégetett" utasítások ellenőrzése.
      A programszámláló által mutatott memóriacímen levő utasítás kerül kiolvasásra, amely cím a Cím növelése utasítással változtatható.
      A parancsszó vétele után következő második órajel felfutó élét követően a mikrovezérlő Adat csatlakozása kimenetként funkcionál és a felfutó élek ütemében, maximum 80 ns késéssel a mikrovezérlő biztosítja az érvényes adatbitet, illetve összesen a 14 adatbitet (Start és Stop bit nincs, az adatszó első és utolsó órajelének ideje alatt nincs érvényes adat a kimeneten).
      Az Adat kiolvasása a programmemóriából parancs idődiagramja látható a következő ábrán.

Adat kiolvasása a programmemóriából
8.2-3. Ábra

      Látható az ábrán a 6 bites parancsszó és a 14 bites adatszó bitsorrendje: először mindig a legkisebb helyiértékű bit kerül bevitelre, illetve kiolvasásra. Az adatszó 12-bites utasítása automatikusan két nulla értékű bittel egészül ki. Aktivált kódvédelem esetén a védett terület kiolvasásakor az adatszó összes bitje nulla értékű.
      Az Adat bemenetre vezetett parancsszó-bitek beolvasása az órajel lefutó élénél történik meg, ehhez biztosítani kell, hogy a lefutó él előtt 100 ns-mal már, és a lefutó él után 100 ns-mal még jelen legyen az érvényes adat.
      A parancsszó és az adatszó között a fenti ábrának megfelelően minimum 1 µs szünetet kell tartani.

Vissza a lap tetejére

 

Cím növelése

      A programozási üzemmódba való belépés után a programszámláló a 7FFh értékre, a konfigurációs szó címére áll be.
      A Cím növelése parancs bevitelének hatására a programszámláló értéke eggyel nő. Az első parancs hatására a 000h címre áll be, innen egyesével léptethető a felhasználói programmemória végéig (3FFh), majd a konfigurációs memóriaterület elemeire.
      A Cím növelése parancs idődiagramja látható a következő ábrán.

Cím növelése
8.2-4. Ábra

      Az ábrán látható a 6 bites parancsszó bitsorrendje: először a legkisebb helyiértékű bit kerül bevitelre.
      Az Adat bemenetre vezetett adatbitek beolvasása az órajel lefutó élénél történik meg, ehhez biztosítani kell, hogy a lefutó él előtt 100 ns-mal már, és a lefutó él után 100 ns-mal még jelen legyen az érvényes adat.
      A parancsszó és a következő parancsszó között a fenti ábrának megfelelően minimum 1 µs szünetet kell tartani.

Vissza a lap tetejére

 

Programozás indítása

      A Programozás indítása parancs hatására a programozó feszültség rákapcsolódik a memóriacímnek és a beírandó utasításnak megfelelő memóriabitekre, elkezdődik a "beégetés", amely a Programozás leállítása parancsig tart. A Programozás indítása parancs hatására az előzőleg az Adat betöltése a programmemóriába paranccsal bevitt érték íródik be. (Lehetőség van egyetlen értékkel feltölteni a programmemória bizonyos részét egyszeri adatbevitellel és ismétlődő címnöveléssel.)
      Programozatlan (törölt) állapotban a FLASH programmemória minden egyes bitje logikai "1" értékű. A felprogramozás tulajdonképpen a kívánt bitek "0"-ra állítását jelenti.
      A Programozás indítása parancs idődiagramja látható a következő ábrán.

Programozás indítása
8.2-5. Ábra

      Az ábrán látható a 6 bites parancsszó bitsorrendje: először a legkisebb helyiértékű bit kerül bevitelre.
      Az Adat bemenetre vezetett adatbitek beolvasása az órajel lefutó élénél történik meg, ehhez biztosítani kell, hogy a lefutó él előtt 100 ns-mal már, és a lefutó él után 100 ns-mal még jelen legyen az érvényes adat.
      A Programozás indítása és az utána következő Programozás leállítása parancs között a biztos "beégetéshez" 2 ms szünetet kell tartani.

Vissza a lap tetejére

 

Programozás leállítása

      Mivel a "beégetés" külső időzítésű folyamat, a Programozás indítása parancsot 2 ms múlva egy Programozás leállítása parancsnak kell követnie. A 2 ms-os időtartam a gyártó által megadott elektromos jellemzők betartása mellett garantáltan biztosítja a hibátlan "beégetést".
      A Programozás leállítása parancs idődiagramja látható a következő ábrán.

Programozás leállítása
8.2-6. Ábra

      Az ábrán látható a 6 bites parancsszó bitsorrendje: először a legkisebb helyiértékű bit kerül bevitelre.
      Az Adat bemenetre vezetett adatbitek beolvasása az órajel lefutó élénél történik meg, ehhez biztosítani kell, hogy a lefutó él előtt 100 ns-mal már, és a lefutó él után 100 ns-mal még jelen legyen az érvényes adat.
      A Programozás leállítása parancs és az utána következő parancsszó között minimum 100 µs szünetet kell tartani.

Vissza a lap tetejére

 

Programmemória teljes törlése

      A Programmemória teljes törlése parancs két különböző kiterjedésű törlési lehetőséget biztosít:
     ˇ a felhasználói programmemória és a konfigurációs szó törlése, amely akkor megy végbe, ha a törlési parancs kiadásakor a programszámláló a 000h..3FFh tartományban vagy a 7FFh értéken áll;
     ˇ a felhasználói programmemória, a konfigurációs szó, az azonosító mező és az oszcillátor kalibrációs érték háttérregiszterének törlése, amely akkor megy végbe, ha a törlési parancs kiadásakor a programszámláló a 400h értéken áll.
      A felhasználói programmemória végén (3FFh) elhelyezett oszcillátor kalibrációs utasítás mindkét esetben törlődik, ezért azt a Programmemória teljes törlése parancs kiadása előtt ki kell olvasni és a programozáskor az adott helyre visszaírni.
      Törölt állapotban a FLASH programmemória minden egyes bitje logikai "1" értékű.
      A Programmemória teljes törlése parancs idődiagramja látható a következő ábrán.

Programmemória teljes törlése
8.2-7. Ábra

      Az ábrán látható a 6 bites parancsszó bitsorrendje: először a legkisebb helyiértékű bit kerül bevitelre.
      Az Adat bemenetre vezetett adatbitek beolvasása az órajel lefutó élénél történik meg, ehhez biztosítani kell, hogy a lefutó él előtt 100 ns-mal már, és a lefutó él után 100 ns-mal még jelen legyen az érvényes adat.
      A Programmemória teljes törlése parancs és az utána következő parancsszó között minimum 10 ms szünetet kell tartani, hogy a névlegesen 6 ms időtartamú, belső időzítésű törlési ciklus bizonyosan befejeződjön.

 

  Tudomány és Technika (test@t-es-t.hu)


 

<< Előző oldal   Vissza a tartalomjegyzékhez   Vissza a lap tetejére   Következő oldal >>

 Tudomány és Technika   PIC mikrovezérlők   Adatlapok