Hlavní navigace

Osmibitové mikrořadiče PIC (2)

7. 9. 2010
Doba čtení: 17 minut

Sdílet

V dnešní části seriálu o architekturách počítačů budeme pokračovat v popisu možností osmibitových mikrořadičů PIC vyráběných firmou Microchip Technology. Zaměříme se především na rodinu PIC10 a PIC12, v níž můžeme najít velmi malé mikrořadiče, z nichž některé jsou umístěny v pouzdru s pouhými šesti či osmi piny. Tyto mikrořadiče lze využít například jako „inteligentní“ časovače, pro řídicí nebo měřicí účely, přípravu či konverzi dat využívanou výkonnějšími mikrořadiči atd.

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

8. Mikrořadiče z rodiny PIC12

9. Odkazy na Internetu

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ů).

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)ti­sí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.

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

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č).

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 GP0GP3 (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).

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í)

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

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 GPRSFR 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

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áctibi­tový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ší.

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.

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í).

CS24_early

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

  1. Stránky firmy Microchip Technology
    http://www.mi­crochip.com/
  2. Výběr z různých modelů (osmibitových) mikrořadičů PIC
    http://www.mi­crochip.com/ste­llent/idcplg?Id­cService=SS_GET_PA­GE&nodeId=2661
  3. Řada (rodina) osmibitových mikrořadičů PIC 10
    http://www.mi­crochip.com/Pa­ramChartSearch/char­t.aspx?branchID=1009&mi­d=10&lang=en&pa­geId=74
  4. Řada (rodina) osmibitových mikrořadičů PIC 12
    http://www.mi­crochip.com/Pa­ramChartSearch/char­t.aspx?branchID=1001&mi­d=10&lang=en&pa­geId=74
  5. Řada (rodina) osmibitových mikrořadičů PIC 14
    http://www.mi­crochip.com/Pa­ramChartSearch/char­t.aspx?branchID=1008&mi­d=10&lang=en&pa­geId=74
  6. Řada (rodina) osmibitových mikrořadičů PIC 16
    http://www.mi­crochip.com/Pa­ramChartSearch/char­t.aspx?branchID=1002&mi­d=10&lang=en&pa­geId=74
  7. Další výběr z různých modelů mikrořadičů PIC
    http://www.mi­crochip.com/map­s/microcontro­ller.aspx
  8. PIC microcontroller (Wikipedia EN)
    http://en.wiki­pedia.org/wiki/PIC_mi­crocontroller
  9. Mikrokontrolér PIC (Wikipedia CZ)
    http://cs.wiki­pedia.org/wiki/Mi­krokontrolér_PIC
  10. FLASHFORTH for the PIC18F and the dsPIC30F
    http://flashf­orth.sourcefor­ge.net/
  11. FlashForth
    http://www.sou­rceforge.net/pro­jects/flashfor­th
  12. Free Pic software tools
    http://softwa­repic.50webs.com/fre­esoft.html
  13. What is Amicus?
    http://www.pic­basic.org/pro­ton_lite.php
  14. Amicus FAQ
    http://www.my­amicus.co.uk/faq­.php?s=2e8d12e7f4c23e775­776f4916876354b&
  15. Microcontrollers development tools
    http://www.gnu­pic.dds.nl/
  16. gpsim (Wikipedia EN)
    http://en.wiki­pedia.org/wiki/Gpsim
  17. gpsim home page
    http://gpsim.sou­rceforge.net/gpsim­.html
  18. The FreeRTOS Project
    http://www.fre­ertos.org/
  19. FreeRTOS (Wikipedia)
    http://en.wiki­pedia.org/wiki/Fre­eRTOS
  20. Serial EEPROM (93C46 / 93CS46) Routines
    http://www.pjrc­.com/tech/8051/se­rial-eeprom.html
  21. Great Microprocessors of the Past and Present (V 13.4.0)
    http://jbayko­.sasktelwebsi­te.net/cpu.html

Byl pro vás článek přínosný?

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.