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.
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ő |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 |