Obsah
1. Rodiny osmibitových mikrořadičů PIC10 a PIC12
2. PIC10F2×x – pouhá elektronická součástka nebo plnohodnotný mikrořadič?
3. Konfigurace pinů mikrořadičů PIC10F2×x
4. Aritmetické a logické instrukce, instrukce pro přenosy dat
5. Bitové operace a instrukce pracující s osmibitovými konstantami
6. Paměť programu, skoky, podprogramy a použití zásobníku
7. Paměť dat, přímé a nepřímé adresování paměti dat
1. Rodiny osmibitových mikrořadičů PIC10 a PIC12
V předchozí části tohoto seriálu jsme si řekli základní informace o osmibitových mikrořadičích PIC vyráběných firmou Microchip Technology. Víme již, že se jedná o mikrořadiče s Harvardskou architekturou charakteristickou především oddělením paměti programu od paměti údajů. Díky této architektuře a taktéž díky tomu, že oba typy pamětí jsou u většiny typů mikrořadičů PIC umístěny přímo na čipu, bylo možné instrukční sadu navrhnout takovým způsobem, aby délka všech instrukcí byla konstantní (což zjednodušuje návrh programového řadiče) a aby tato délka nemusela být násobkem osmi bitů, tak jako je tomu u mnoha jiných mikrořadičových a mikroprocesorových architektur, zejména u těch architektur, které využívají externí paměťové moduly. Nejmenší mikrořadiče PIC používají instrukční sadu se šířkou instrukčního kódu dvanáct bitů, mikrořadiče spadající do středního výkonnostního (a samozřejmě i cenového) segmentu mají instrukce široké čtrnáct bitů a konečně nejvýkonnější řadiče s největším množstvím registrů mají instrukční sadu s instrukcemi, jejichž operační kód má šířku šestnáct bitů (jak uvidíme dále, šířka instrukcí je z velké části odvozena od kapacity paměti programu a paměti údajů).
![](https://i.iinfo.cz/images/77/pc12801.png)
Obrázek 1: Mikrořadič PIC10F2×x umístěný v pouzdru SOT-23. Celkové rozměry tohoto čipu jsou minimální: šířka 2,2mm, délka 2,7mm a výška 0,9mm. Fotku tohoto čipu můžete vidět i v perexu článku vpravo dole.
(zdroj: PIC10F200/202/204/206 Data Sheet)
Pro ilustraci toho, jak rozdílné technické parametry mohou mít jednotlivé mikrořadiče PIC, si v následujícím textu popíšeme dvě rodiny těchto mikrořadičů; nejdříve rodinu PIC10 a posléze jeden mikrořadič zastupující čipy z rodiny PIC12 (o dalších rodinách se zmíníme příště). V rodině PIC10 se nachází nejmenší a v mnoha ohledech i nejméně výkonné typy mikrořadičů PIC. Jedná se o čipy používané většinou v zařízeních vyráběných ve velkých sériích, protože pro amatérské konstrukce se více používají čipy z výkonnější rodiny PIC16, protože u konstrukcí vyráběných v malých sériích nehraje větší cena, velikost/obsazená plocha plošného spoje a nároky na příkon tak velkou roli, jako v těch případech, kdy je zařízení vyráběno v mnoha(set)tisícových sériích. Mikrořadiče PIC10 jsou většinou umístěny do pouzdra s pouhými šesti či osmi piny (připomeňme, že například známý čip 7400 obsahující čtveřici hradel typu NAND, je umístěn v pouzdru se čtrnácti piny). Nízký počet pinů na jednu stranu znamená menší cenu výsledného zařízení i jeho nižší poruchovost, ovšem mnohé piny musí mít přiřazeno více funkcí, už jen z toho důvodu, že musí existovat způsob naprogramování interní paměť EEPROM či Flash.
![](https://i.iinfo.cz/images/495/pc12802.png)
Obrázek 2: Zapojení pinů mikrořadičů PIC10F200 a PIC10F202 při použití pouzdra typu SOT-23. Jak je z obrázku patrné, mají některé piny přiřazeno více funkcí, které lze samozřejmě uživatelsky konfigurovat.
(zdroj: PIC10F200/202/204/206 Data Sheet)
2. PIC10F2×x – pouhá elektronická součástka nebo plnohodnotný mikrořadič?
V následujících odstavcích se zaměříme na popis mikrořadičů PIC10F200, PIC10F202, PIC10F204 a PIC10F206, jejichž základní charakteristiky jsou vypsány v následující tabulce. Povšimněte si, že se tyto mikrořadiče od sebe odlišují především kapacitou paměti pro uložení programu, kapacitou paměti dat (tuto paměť lze přímo adresovat) a taktéž tím, zda čip obsahuje napěťový komparátor, který je možné v mnoha zapojeních použít namísto u těchto čipů neexistujícího analogově-digitálního převodníku. Poznámka: kapacita paměti programu značí celkový počet dvanáctibitových slov, tj. nejedná se o obvyklé bajty, což mj. znamená, že uvedená číslovka odpovídá maximálnímu počtu instrukcí, které lze do paměti programu uložit:
Mikrořadič | Maximální frekvence | Doba trvání instrukce | Paměť programu | Datová paměť | Komparátor | Čítač | I/O pinů | Počet instrukcí |
---|---|---|---|---|---|---|---|---|
PIC10F200 | 4 MHz | 1µs | 256 | 16 | 0 | 1× osmibitový | 4, z toho 1 pouze vstupní | 33 |
PIC10F202 | 4 MHz | 1µs | 512 | 24 | 0 | 1× osmibitový | 4, z toho 1 pouze vstupní | 33 |
PIC10F204 | 4 MHz | 1µs | 256 | 16 | 1 | 1× osmibitový | 4, z toho 1 pouze vstupní | 33 |
PIC10F206 | 4 MHz | 1µs | 512 | 24 | 1 | 1× osmibitový | 4, z toho 1 pouze vstupní | 33 |
![](https://i.iinfo.cz/images/92/pc12803.png)
Obrázek 3: Zapojení pinů mikrořadičů PIC10F204 a PIC10F206 při použití pouzdra typu SOT-23. Povšimněte si, že oproti předchozímu obrázku se u tří pinů objevují nové funkce napěťového komparátoru: CIN+, CIN-, COUT.
(zdroj: PIC10F200/202/204/206 Data Sheet)
Mezi vlastnosti, které jsou všem čtyřem typům výše uvedených osmibitových mikrořadičů PIC společné, patří například existence interního oscilátoru s kmitočtem 4 MHz (není tedy nutné použít externí krystal), doba trvání každé instrukce jedna mikrosekunda v případě použití interního oscilátoru, automatický reset mikrořadiče při připojení externího napájení (u některých mikrořadičů, například u již popsané řady MCS-48 a MCS-51, je naproti tomu nutné signál RESET přivádět na zvláštní pin), interní programovatelný osmibitový čítač, konfigurovatelný watchdog a v neposlední řadě taktéž podpora pro programování mikrořadiče pomocí protokolu In-Circuit Serial Programming (ICSP) vyvinutého samotnou firmou Microchip Technology. Tento protokol, jak již ostatně jeho název napovídá, umožňuje zápis dat do paměti programu pomocí třívodičového sériového kanálu – jedním vodičem se přenáší data a řídicí příkazy, druhý vodič slouží pro přenos hodinového signálu a třetí vodič je společná (datová) zem pro vysílač (například osobní počítač) i přijímač (kterým je mikrořadič).
![](https://i.iinfo.cz/images/362/pc12804.png)
Obrázek 4: Zapojení pinů mikrořadičů PIC10F200 a PIC10F202 při použití pouzdra typu PDIP. Povšimněte si, že i když má toto pouzdro osm vývodů, pouze šest z nich je skutečně využito (N/C – not connected).
(zdroj: PIC10F200/202/204/206 Data Sheet)
3. Konfigurace pinů mikrořadičů PIC10F2×x
Na obrázcích 2 až 5 je zobrazena funkce jednotlivých pinů mikrořadičů PIC10F2×x při použití různých typů pouzder. Nezávisle na tom, jaké pouzdro je použito, využívá mikrořadič vždy pouze šest pinů, z nichž dva mají pevnou funkci (jedná se o Uss a Udd použité pro napájení) a funkce další čtveřice pinů se liší podle toho, jakým způsobem je mikrořadič nakonfigurován. V nejjednodušším případě mohou být tyto čtyři piny ovládány pomocí dolních čtyř bitů speciálního funkčního registru (SFR) nazvaného příznačně GPIO. Přes tento registr lze nastavovat výstupní logickou hodnotu na pinech GP0, GP1 a GP2 a taktéž lze číst aktuální hodnotu na všech čtyřech I/O pinech GP0 až GP3 (povšimněte si, že GP3 je jen vstupním pinem). Čtení aktuální hodnoty všech čtyř pinů lze provádět nezávisle na tom, jakou mají aktuálně nastavenou funkci – viz též obrázek číslo 6 (ovšem v některých případech nebudou mít přečtené údaje žádnou vypovídající hodnotu).
![](https://i.iinfo.cz/images/672/pc12805.png)
Obrázek 5: Zapojení pinů mikrořadičů PIC10F204 a PIC10F206 při použití pouzdra typu PDIP. I zde je použito pouze šest vývodů, protože dva zbývající vývody jsou nezapojeny.
(zdroj: PIC10F200/202/204/206 Data Sheet)
Pomocí speciálního funkčního registru TRIS naplňovaného stejnojmennou instrukcí lze libovolný ze vstupně/výstupních pinů nastavit do režimu vysoké impedance. V tomto případě se může stát, že i když je daný pin nastaven na logickou jedničku, je možné, že se při jeho čtení načte logická nula (v případě, že další obvod „stahuje“ napěťovou úroveň na logickou nulu). Další funkce všech čtyř vstupně/výstupních pinů jsou vypsány v následující tabulce. Některé funkce uvedené v této tabulce, zejména oba vstupy a jeden výstup napěťového komparátoru (CIN+, CIN- a COUT):, jsou dostupné pouze na mikrořadičích PIC10F204 a PIC10F206:
Pin | Funkce | Popis |
---|---|---|
GP0 | GP0 | obousměrný vstupně/výstupní pin ovládaný programově |
GP0 | ICSPDAT | použito při programování pro přenos dat do mikrořadiče |
GP0 | CIN+ | jeden ze vstupů napěťového komparátoru |
GP1 | GP1 | obousměrný vstupně/výstupní pin ovládaný programově |
GP1 | ICSPCLK | použito při programování pro přenos hodinového signálu |
GP1 | CIN- | jeden ze vstupů napěťového komparátoru |
GP2 | GP2 | obousměrný vstupně/výstupní pin ovládaný programově |
GP2 | T0CKI | vstup pro časovač TMR0 |
GP2 | COUT | výstup napěťového komparátoru |
GP2 | FOSC4 | výstup hodinového signálu z oscilátoru |
GP3 | GP3 | jednosměrný vstupní pin ovládaný programově (čtení) |
GP3 | MCLR | Master Clear (Reset) |
GP3 | Vpp | napětí (používané při programování) |
![](https://i.iinfo.cz/images/242/pc12806.png)
Obrázek 6: Obvodová funkce pinů GP0 až GP2 při jejich programovém ovládání. Povšimněte si, že napěťovou logickou úroveň na pinu lze kdykoli přečíst (hradlo 1) a taktéž toho, že data zapsaná na pin jsou zapamatována až do jejich dalšího přepsání v klopném obvodu typu D.
(zdroj: PIC10F200/202/204/206 Data Sheet)
4. Aritmetické a logické instrukce, instrukce pro přenosy dat
Osmibitové mikrořadiče PIC10F2×x používají, jak jsme si již ostatně řekli v úvodních kapitolách tohoto článku, dvanáctibitovou instrukční sadu, v níž se nachází pouze 33 instrukcí. Všechny instrukce lze na základě jejich formátu rozdělit do několika skupin. V první skupině se nachází většina aritmetických a logických instrukcí, které většinou pracují s jedním bajtem operační paměti (jednotlivé bajty se též nazývají universální registry neboli GPR) nebo s jedním registrem speciálních funkcí a dále s pracovním registrem W, který je obdobou akumulátoru u jiných typů mikrořadičů a mikroprocesorů. Vzhledem k tomu, že do adresového rozsahu operační paměti jsou mapovány i registry speciálních funkcí (SFR), je nutné pro tuto adresu rezervovat pět bitů instrukčního slova, který v bitově rozepsaném operačním kódu (viz další tabulky) značíme pěticí znaků fffff.
Další bit d v operačním kódu instrukce u většiny dále vypsaných instrukcí určuje, zda se má výsledek operace uložit do operační paměti (popř. do SFR) nebo do pracovního registru W (akumulátoru). Pokud je tento bit nastavený na nulu, bude výsledek uložen do pracovního registru W, v opačném případě bude výsledek uložen do toho GPR nebo SFR, který je určen posledními pěti bity instrukčního slova. V následující tabulce jsou vypsány ty instrukce, které dodržují (někdy ovšem ne zcela přesně) výše popsaný formát. Povšimněte si toho, že všechny instrukce mají stejný prefix:
Operační kód | Jméno instrukce | Stručný popis instrukce |
---|---|---|
0000 001 fffff | MOVWF f | přenos akumulátoru do GPR nebo SFR |
0000 010 xxxxx | CLRW | vynulování akumulátoru |
0000 011 fffff | CLRF f | vynulování GPR nebo SFR |
0000 10d fffff | SUBWF f,d | d = f – W |
0000 11d fffff | DECF f,d | d = f – 1 |
0001 00d fffff | IORWF f,d | d = f OR W |
0001 01d fffff | ANDWF f,d | d = f AND W |
0001 10d fffff | XORWF f,d | d = f XOR W |
0001 11d fffff | ADDWF f,d | d = f + W |
0010 00d fffff | MOVF f,d | d = f |
0010 01d fffff | COMF f,d | d = NOT f |
0010 10d fffff | INCF f,d | d = f + 1 |
0010 11d fffff | DECFSZ f,d | d = f – 1, vynechání následující instrukce při nulovém výsledku |
0011 00d fffff | RRF f,d | rotace doprava přes carry |
0011 01d fffff | RLF f,d | rotace doleva přes carry |
0011 10d fffff | SWAPF f,d | prohození nibblů GPR nebo SFR |
0011 11d fffff | INCFSZ f,d | d = f + 1, vynechání následující instrukce při nulovém výsledku |
![](https://i.iinfo.cz/images/197/pc127-3-prev.png)
Obrázek 7: Zapojení vývodů mikrořadiče PIC16F88, který bude popsán příště.
5. Bitové operace a instrukce pracující s osmibitovými konstantami
Druhá skupina instrukcí sice taktéž pracuje s vybraným GPR, neboli obecným registrem – bajtem v operační paměti, popř. se SFR (registrem speciálních funkcí), ovšem na bitové úrovni. Pomocí těchto instrukcí lze nastavit či naopak vynulovat vybraný bit, popř. zcela vynechat následující instrukci (SKIP) na základě aktuální hodnoty vybraného bitu (pokud se SKIP skutečně provede, bude to běžící program stát jednu mikrosekundu času navíc, protože instrukce jsou zpracovávány v pipeline, která musí být při SKIP nejprve vyprázdněna a posléze znovu naplněna). Vzhledem k tomu, že všechny GPR i SFR jsou osmibitové, postačuje v operačním kódu instrukce pro index bitu, s nímž má instrukce pracovat, rezervovat pouhé tři bity, což je ostatně patrné z následující tabulky (mimochodem, pomocí těchto čtyř instrukcí byl velmi elegantně implementován takzvaný booleovský procesor, o němž jsme si již zmiňovali při popisu mikrořadičů MCS-51):
Operační kód | Jméno instrukce | Stručný popis instrukce |
---|---|---|
0100 bbb fffff | BCF f,b | vynulování jednoho bitu universálního registru |
0101 bbb fffff | BSF f,b | nastavení (na 1) jednoho bitu universálního registru |
0110 bbb fffff | BTFSC f,b | Bit test f, vynechání následující instrukce pokud je bit nulový |
0111 bbb fffff | BTFSS f,b | Bit test f, vynechání následující instrukce pokud je bit jedničkový |
Další pětice instrukcí obsahuje ve svém operačním kódu osmibitovou konstantu, což mj. znamená, že na samotný kód instrukce zbývají pouhé čtyři bity. Osmibitová konstanta je použita pro naplnění akumulátoru (pracovního registru W) či pro provedení nějaké logické operace s obsahem akumulátoru bit po bitu. Zajímavá je též instrukce RETLW k, pomocí níž lze provést návrat z podprogramu spolu s nastavením akumulátoru na specifikovanou hodnotu. Tato instrukce tedy v céčku odpovídá příkazu return k;:
Operační kód | Jméno instrukce | Stručný popis instrukce |
---|---|---|
1000 kkkkkkkk | RETLW k | návrat z podprogramu s nastavením akumulátoru |
1100 kkkkkkkk | MOVLW k | W = k |
1101 kkkkkkkk | IORLW k | W = k OR W |
1110 kkkkkkkk | ANDLW k | W = k AND W |
1111 kkkkkkkk | XORLW k | W = k XOR W |
![](https://i.iinfo.cz/images/197/pc127-10-prev.png)
Obrázek 8: Základní rozdělení osmibitových mikrořadičů PIC.
(zdroj: firma Microchip Technology).
6. Paměť programu, skoky, podprogramy a použití zásobníku
Ve druhé kapitole jsme si řekli, že paměť programu má u osmibitových mikrořadičů PIC10F2×x kapacitu pro uložení 256 nebo 512 dvanáctibitových slov. Mikrořadiče PIC10F200 a PIC10F204 mají paměť programu organizovanou jako matici 256×12 bitů, zatímco mikrořadiče PIC10F202 a PIC10F206 mají paměť programu organizovanou do struktury 512×12 bitů. V praxi je tedy nutné, aby programový čítač PC měl šířku alespoň devět bitů. Jedinou instrukcí, která dokáže změnit všech devět bitů programového čítače, a tím pádem provést skok do jakéhokoli místa paměti programu, je instrukce nazvaná příznačně GOTO, v jejímž operačním kódu je devět bitů z dvanácti určeno pro uchování adresy. Druhá instrukce, která dokáže změnit hodnotu programového čítače, je instrukce skoku do podprogramu CALL, ovšem vzhledem k tomu, že v operačním kódu této instrukce je uloženo jen osm bitů adresy, mohou být podprogramy umístěny pouze v prvních 256 slovech paměti programu (devátý bit PC je při provedení této instrukce nastaven na nulu):
Operační kód | Jméno instrukce | Stručný popis instrukce |
---|---|---|
1001 kkkkkkkk | CALL k | zavolání podprogramu na adrese k |
101 kkkkkkkkk | GOTO k | skok na adresu specifikovanou devíti bity |
Se skokem do podprogramu pomocí instrukce CALL a návratem z podprogramu s využitím instrukce RETLW samozřejmě souvisí i zásobník návratových adres (stack). Tento zásobník je, na rozdíl od některých dalších mikrořadičů, umístěn mimo paměť údajů a jeho kapacita je pouhé dvě adresy. U čipů PIC10F200 a PIC10F204 může být v každé buňce zásobníku uložena osmibitová návratová adresa a u mikrořadičů PIC10F202 a PIC10F206 adresa devítibitová. To znamená, že i když je cíl skoku do podprogramu omezen na prvních 256 adres, může být oblast, ze které se podprogramy volají, umístěna kdekoli, tj. i nad adresou 0×100 (samozřejmě pouze u čipů s pamětí programu o kapacitě 512×12 bitů). S velikostí zásobníku omezenou na pouhé dvě buňky souvisí i to, že u mikrořadičů PIC10F2×x není možné zjistit, zda došlo či nedošlo k přetečení nebo naopak podtečení zásobníku, což znamená, že si programátoři musí dát na práci se zásobníkem poměrně velký pozor, zejména při převodu programů z mikrořadičů PIC vyšších řad, které mají zásobník poněkud větší.
![](https://i.iinfo.cz/images/213/pc128-9.png)
Obrázek 9: Uspořádání paměti programu a zásobníku u mikrořadičů PIC10F200 a PIC10F204.
7. Paměť dat, přímé a nepřímé adresování paměti dat
Z popisu mikrořadičů PIC10F2×x uvedeného ve druhé kapitole taktéž víme, že kapacita paměti údajů (RAM) je pouze šestnáct nebo 24 bajtů. K této paměti je připojeno sedm registrů speciálních funkcí (SFR) a jeden pseudoregistr, jehož použití bude vysvětleno v následujícím odstavci. Celkem je tedy nutné adresovat 16(RAM)+8(SFR)=24 bajtů popř. 24(RAM)+8(SFR)=32 paměťových míst. Jak již víme z předchozího textu, mnohé instrukce obsahují přímo ve svém instrukčním slově adresu paměťového místa, přičemž takto adresovaný obsah paměti údajů či SFR je využíván jako jeden z operandů instrukce (například sčítání) a v závislosti na hodnotě bitu d se může výsledek instrukce zapsat na toto paměťové místo (popř. do akumulátoru W). Tímto způsobem sice lze přímo adresovat libovolný bajt v paměti údajů a libovolný registr speciálních funkcí, ovšem pro některé operace není přímá adresace vhodná (povšimněte si, že řadiče PIC neobsahují žádný index registr).
Aby bylo možné provádět nepřímou adresaci, přidali konstruktéři do mikrořadičů PIC10F2×x registr nazvaný FSR (jedná se o jeden ze sedmi zmíněných registrů speciálních funkcí) a pseudoregistr nazvaný INDF. Do registru FSR se zapisuje adresa, přičemž význam má pouze nejnižších pět bitů této adresy. Pokud je provedeno čtení hodnoty pseudoregistru INDF, přečte se ve skutečnosti bajt, jehož adresa je uložená v FSR. To stejné platí i při zápisu do pseudoregistru INDF – zápis se provede na adresu uloženou ve FSR. Následující velmi jednoduchý podprogram ukazuje, jakým způsobem je možné nepřímé adresování použít pro vymazání paměťových buněk RAM v rozsahu 0×10 až 0×1f:
MOVLW 0x10 ; adresa první paměťové buňky, která se má vymazat MOVWF FSR ; uložení adresy buňky do registru FSR LOOP CLRF INDF ; zápis nuly do pseudoregistru INDF: ; ve skutečnosti tedy vynulování paměti na adrese [FSR] INCF FSR,F ; zvýšení ukazatele o jedničku BTFSC FSR,4 ; test na ukončení smyčky (pokud je splněno, přeskočí se GOTO) GOTO LOOP ; další iterace ...
I když se v předchozím podprogramu u každé instrukce používá alespoň jeden operand, ve skutečnosti má celý program délku pouze šest dvanáctibitových instrukčních slov (devět bajtů), a to díky tomu, že všechny operandy jsou uloženy přímo v instrukčním slovu. V mnoha případech tak mohou být programy určené pro řadu PIC10F2×x kratší, než obdobné programy napsané například pro mikrořadiče MCS-51 s „úspornou“ instrukční sadou s operačními kódy širokými jeden bajt.
![](https://i.iinfo.cz/images/363/pc128-10-prev.jpg)
Obrázek 10: Mikrořadiče PIC10F2×x v pouzdru SOT-23 (zvětšeno).
8. Mikrořadiče z rodiny PIC12
Osmibitové mikrořadiče PIC z rodiny PIC10, kterým jsme se věnovali v předchozích kapitolách, sice mají poměrně širokou oblast použití (ostatně právě proto byly relativně nedávno firmou Microchip dodány na trh), ovšem pro mnoho účelů je vhodnější použít mikrořadiče výkonnější – ať již se jedná o mikrořadiče s větší kapacitou paměti programu či paměti údajů, tak o mikrořadiče s dalšími přídavnými moduly, například plnohodnotným analogově-digitálním převodníkem, modulem pro PWM (pulsní šířkovou modulaci), asynchronním či synchronním sériovým portem atd. Další rodinou mikrořadičů PIC jsou čipy řady PIC12, které jsou již v mnoha ohledech lépe vybavené než mikrořadiče PIC10, a to při zachování příznivé ceny a v mnoha případech i zachování malého pouzdra, v němž jsou tyto mikrořadiče umístěny (víme již, že s rostoucím počtem pinů roste i cena, spotřeba a poruchovost celého zařízení, a to sice ne výrazně, ale při sériové výrobě se již může jednat o položku ovlivňující například koncovou cenu zařízení).
![](https://i.iinfo.cz/images/89/pc128-11.jpg)
Obrázek 11: Adaptér umožňující připojení napájecích a signálových vodičů k mikrořadičům PIC10F2×x umístěných v pouzdru SOT-23.
Zástupcem rodiny PIC12 je mikrořadič PIC12F675, který prakticky ve všech ohledech překonává čipy PIC10F2×x popsané výše. Tento mikrořadič obsahuje interní paměť programu schopnou uložit až 1024 instrukcí. Paměť dat je rozšířena na 64 bajtů, k nimž je navíc přidáno 128 bajtů paměti EEPROM, jejíž buňky by měly umožnit až jeden milion přepisů (to například znamená, že pokud se výsledek nějakého měření zapíše do stejné buňky EEPROM jednou za čtvrt hodiny, překračuje životnost této paměti 28 let, tj. mnohonásobně plánovanou životnost celého zařízení). Tato paměť je samozřejmě nevolatilní, tudíž „přežije“ i výpadky napájení. I další technické parametry tohoto mikrořadiče jsou oproti řadě PIC10 vylepšeny – počet vstupně/výstupních pinů se zvýšil na šest (celkem čip používá 8 pinů), časovač byl rozšířen na šestnáct bitů a navíc byl přidán i čtyřkanálový analogově-digitální převodník, což mj. znamená, že čtyři vstupní piny mohou být využity pro čtení analogových údajů, což je na osmipinový čip poměrně zajímavá hodnota. Taktéž výpočetní rychlost se zvýšila, a to pětkrát – ovšem za předpokladu, že je použit externí oscilátor. Konkrétními rozdíly mezi čipy řady PIC10F2×x a PIC12F675, jakožto i velmi známou rodinou PIC16F, se budeme zabývat příště.
9. Odkazy na Internetu
- Stránky firmy Microchip Technology
http://www.microchip.com/ - Výběr z různých modelů (osmibitových) mikrořadičů PIC
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2661 - Řada (rodina) osmibitových mikrořadičů PIC 10
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1009&mid=10&lang=en&pageId=74 - Řada (rodina) osmibitových mikrořadičů PIC 12
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1001&mid=10&lang=en&pageId=74 - Řada (rodina) osmibitových mikrořadičů PIC 14
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1008&mid=10&lang=en&pageId=74 - Řada (rodina) osmibitových mikrořadičů PIC 16
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74 - Další výběr z různých modelů mikrořadičů PIC
http://www.microchip.com/maps/microcontroller.aspx - PIC microcontroller (Wikipedia EN)
http://en.wikipedia.org/wiki/PIC_microcontroller - Mikrokontrolér PIC (Wikipedia CZ)
http://cs.wikipedia.org/wiki/Mikrokontrolér_PIC - FLASHFORTH for the PIC18F and the dsPIC30F
http://flashforth.sourceforge.net/ - FlashForth
http://www.sourceforge.net/projects/flashforth - Free Pic software tools
http://softwarepic.50webs.com/freesoft.html - What is Amicus?
http://www.picbasic.org/proton_lite.php - Amicus FAQ
http://www.myamicus.co.uk/faq.php?s=2e8d12e7f4c23e775776f4916876354b& - Microcontrollers development tools
http://www.gnupic.dds.nl/ - gpsim (Wikipedia EN)
http://en.wikipedia.org/wiki/Gpsim - gpsim home page
http://gpsim.sourceforge.net/gpsim.html - The FreeRTOS Project
http://www.freertos.org/ - FreeRTOS (Wikipedia)
http://en.wikipedia.org/wiki/FreeRTOS - Serial EEPROM (93C46 / 93CS46) Routines
http://www.pjrc.com/tech/8051/serial-eeprom.html - Great Microprocessors of the Past and Present (V 13.4.0)
http://jbayko.sasktelwebsite.net/cpu.html