Hlavní navigace

Osmibitové mikrořadiče PIC (1)

31. 8. 2010
Doba čtení: 15 minut

Sdílet

V dnešní části seriálu o architekturách počítačů budeme pokračovat v popisu osmibitových mikrořadičů. Zaměříme se na známé a rozšířené mikrořadiče z rodiny PIC, zpočátku především na ty typy čipů, které používají dvanáctibitovou a čtrnáctibitovou instrukční sadu.

Obsah

1. Osmibitové mikrořadiče PIC

2. Stručná historie mikrořadičů PIC

3. Společné vlastnosti a rozdíly mezi mikrořadiči PIC a MCS-51

4. Rozdělení osmibitových mikrořadičů PIC do rodin

5. Instrukční sady mikrořadičů PIC

6. Skoky a instrukce typu SKIP

7. Seznam instrukcí dvanáctibitové instrukční sady

8. Obsah následující části seriálu

9. Odkazy na Internetu

1. Osmibitové mikrořadiče PIC

V předchozích pěti částech seriálu o architekturách počítačů jsme si stručně popsali historii vzniku osmibitových mikrořadičů Intel 8048 (označovaných též jako MCS-48) a Intel 8051 (MCS-51) i některé aplikační oblasti, ve kterých se tyto mikrořadiče využívaly či stále využívají. Ovšem nabídka mikrořadičů, které je v současnosti možné pro amatérské či profesionální elektronická zařízení využít, není v žádném případě omezena pouze na čipy z rodiny MCS-48 a MCS-51. Jedním z alternativních typů mikrořadičů jsou – pokud prozatím zůstaneme u osmibitových architektur – i mikrořadiče PIC firmy Microchip Technology. Tato firma dnes nabízí několik set(!) různých typů těchto čipů, které se od sebe odlišují jak počtem využitelných vstupně/výstupních pinů, tak i kapacitou interní paměti dat (RAM) a taktéž interní paměti programu (ROM), počtem a typem modulů, které jsou na mikrořadiči implementovány, rozsahem povoleného napájecího napětí, rozsahem frekvencí hodinového signálu, kterým se čip řídí atd.

Obrázek 1: Pro vývoj aplikací určených pro osmibitové mikrořadiče PIC lze použít i mnoho open source nástrojů. Na tomto screenshotu jsou zobrazena některá okna nástroje gpsim (simulátoru mikrořadičů).

V následujícím textu se zaměříme především na popis těch nejjednodušších mikrořadičů firmy Microchip Technology, konkrétně čipů používajících dvanáctibitovou či čtrnáctibitovou instrukční sadu (rozdíl mezi nimi si vysvětlíme dále). Některé z těchto čipů, například celá řada PIC10F, se díky své nízké ceně a malému počtu vývodů z pouzdra podobá spíše (programovatelným) logickým obvodům než plnohodnotným mikrořadičům, ovšem právě to je jeden z důvodů, proč jsou mikrořadiče PIC tak oblíbené, jak mezi konstruktéry amatérských zařízení (nízká cena PICů a hlavně existence interní paměti typu EPROM/Flash), tak i mezi konstruktéry profesionálních výrobků, protože existence programovatelného čipu umožňuje, aby se změny v zapojení či změny funkcionality nějakého výrobku prováděly i v poměrně pozdních stadiích vývoje, bez nutnosti změny návrhu plošného spoje a dalších s tím souvisejících činností. Výkonnější typy mikrořadičů PIC, které již v mnoha ohledech konkurují platformě MCS-51 či AVR, budou popsány v následujících částech seriálu, spolu s popisem vhodných vývojových nástrojů, kitů pro odzkoušení těchto mikrořadičů v praxi atd.

Obrázek 2: Mezi jedny z nejpoužívanějších mikrořadičů PIC patří řada PIC16F87, která konstruktérům nabízí příznivý poměr mezi cenou a velikostí čipu na jedné straně a jeho možnostmi na straně druhé.

2. Stručná historie mikrořadičů PIC

Mikrořadiče PIC mají za sebou velmi dlouhý a v několika ohledech i zajímavý vývoj. Ten vlastně začal již v polovině sedmdesátých let minulého století, kdy vznikl mikrořadič Signetics 8×300. Jednalo se o jeden z prvních mikrořadičů založených na Harvardské architektuře (tj. s oddělenou pamětí pro data a pamětí pro program), který byl vytvořený na bázi bipolárních tranzistorů, podobně jako například logické obvody řady TTL. Tento mikrořadič ovšem postrádal některé důležité vlastnosti, například neměl zásobník, indexové registry a dokonce ani možnost zpracovávat přerušení (což souviselo, i když jen okrajově, s neexistencí zásobníku). Taktéž adresování paměti programu bylo poněkud složité – provádělo se přes osmibitový registr IVB, navíc aritmeticko-logická jednotka dokázala provádět pouze instrukce MOV, ADD, AND, XOR a bitové posuny. Z výše uvedených důvodů se mikrořadič Signetics 8×300 v praxi příliš nerozšířil.

Obrázek 3: Zapojení vývodů mikrořadiče PIC16F88.

V sedmdesátých letech minulého století ovšem vznikl i šestnáctibitový mikroprocesor s označením CP1600 firmy General Instruments (s touto firmou jsme se již ostatně v tomto seriálu setkali, protože stojí i za vznikem slavného zvukového čipu AY-3–8910, lidově „áýčka“). Aby se vylepšila výkonnost tohoto nepříliš úspěšného mikroprocesoru při provádění různých vstupně/výstupních operací, byl vytvořen pomocný čip nesoucí označení PIC1640, kde první tři písmena „PIC“ znamenala „Programmable Interface Controller“. Úkolem tohoto čipu byla skutečně komunikace s periferními zařízeními, kterou tak nemusel obstarávat mikroprocesor CP1600. Původní PIC1640 a na něj navazující čip PIC1650 obsahoval interní paměť ROM programovanou pomocí poslední masky přímo při výrobě čipu. Ovšem většího rozšíření se mikrořadiče PIC dočkaly až po oddělení divize mikroelektroniky z firmy General Instruments do nově vzniklé firmy s názvem Microchip Technology.

Obrázek 4: Hlavní okno simulátoru mikrořadičů PIC – aplikace gpsim.

Právě v této nové firmě došlo k zásadní proměně mikrořadiče – náhradě neměnné ROM za paměť EPROM (mazatelné ultrafialovým zářením přes okénko na čipu) a posléze i náhradě EPROM za EEPROM (elektronicky mazatelnou paměť) a Flash (vylepšenou EEPROM s větším množstvím zápisů a rychlejším blokovým algoritmem přepisu dat). Mimochodem – první mikrořadič PIC s EEPROM nesoucí jméno PIC 16C84 se díky svému významu pro další vývoj celého odvětví dostal i mezi 25 čipů, které (podle autora tohoto žebříčku) nejvíce změnily svět: „25 Microchips That Shoot The World“. PIC 16C84 je zde zmíněn například vedle známého časovače 555, osmibitového mikroprocesoru MOS 6502, 8/16bitového mikroprocesoru Intel 8088 (právě ten stál u vzniku platformy IBM PC, nikoli jeho výkonnější bráška Intel 8086) či 16/32bitového mikroprocesoru Motorola 68000 (majitelům osobních mikropočítačů značek Atari ST, Amiga či Macintosh 68k zajisté netřeba zdlouhavě představovat).

Obrázek 5: Editor paměti programu v simulátoru gpsim.

3. Společné vlastnosti a rozdíly mezi mikrořadiči PIC a MCS-51

Pojďme si nyní říci základní technické informace o osmibitových mikrořadičích PIC. Možná bude zajímavé i jejich porovnání s již popsanou řadou mikrořadičů MCS-51, s níž mají PIC některé vlastnosti téměř shodné a v některých vlastnostech se naopak obě řady čipů zcela odlišují. Z předchozích částí tohoto seriálu již víme, že mikrořadiče MCS-51 jsou založeny na osmibitové aritmeticko-logické jednotce (ALU), interní paměti údajů (RAM) o velikosti typicky 128 nebo 256 bajtů, sadě registrů speciálních funkcí (SFR), interní paměti programu (ROM), dvojici či trojici konfigurovatelných čítačů/časovačů, řadičem přerušení a taktéž konfigurovatelným synchronním i asynchronním sériovým portem. Jak paměť RAM, tak i paměť ROM je adresována po bajtech a vzhledem k tomu, že se jedná o mikrořadiče založené na Harvardské architektuře, jsou obě paměti od sebe striktně odděleny a pro přístup k jednotlivým paměťovým buňkám RAM a ROM jsou použity zcela jiné instrukce. Navíc je možné k MCS-51 připojit i externí paměti RAM a ROM a vytvořit tak vlastně základ mikropočítačového systému.

Obrázek 6: Nástroj gpsim obsahuje i disassembler.

Osmibitové mikrořadiče PIC jsou taktéž založeny na Harvardské architektuře s oddělenou pamětí údajů od paměti programu. Paměť údajů o kapacitě řádově desítky až stovky bajtů je adresovatelná po jednotlivých bajtech, stejně jako v případě MCS-51 (i když se v případě mikrořadičů PIC hovoří o sadě universálních a speciálních registrů, jedná se o obdobu RAM u čipů 8051). Ovšem struktura paměti programu je v případě mikrořadičů PIC zcela odlišná. Namísto organizace této paměti po bajtech se používají slova o šířce 12, 14 či 16 bitů (v závislosti na verzi použitého čipu, resp. na jeho rodině). Na první pohled netypická velikost zpracovávaných slov je ovšem umožněna dvěma fakty: již zmíněnou Harvardskou architekturou (která zcela odděluje ROM od RAM) a taktéž tím, že se u většiny mikrořadičů PIC (kromě některých modelů z rodiny PIC17 a PIC18) využívá pouze interní paměť programu, nikoli paměť externí, takže není zapotřebí, aby se mikrořadiče PIC musely při práci s externí pamětí „podřizovat“ okolnímu osmibitovému či šestnáctibito­vému světu.

Obrázek 7: Krokování programu v nástroji gpsim.

Na tomto místě je možná vhodné se zmínit o tom, že dalším konstruktérem mikroprocesorů a mikrořadičů, který se odmítl smířit s tím, že paměti musí mít šířku datové sběrnice 8, 16 či 32 bitů, byl Chuck Moore (mj. tvůrce programovacího jazyka FORTH), který například u svého mikrořadiče F21 zvolil dvacetibitovou architekturu pamětí i aritmeticko-logické jednotky. Vraťme se však k mikrořadičům PIC: díky větší bitové šířce instrukcí bylo možné zjednodušit instrukční sadu takovým způsobem, že většina instrukcí má délku pouze jednoho slova, tj. 12, 14 nebo 16 bitů, a navíc je počet instrukcí zredukován, v některých případech pouze na 33 instrukcí (viz následující kapitoly). Mikrořadiče MCS-51 a PIC se odlišují ještě v jednom detailu: zatímco zásobník je u MCS-51 umístěn přímo v paměti údajů (takže ho lze modifikovat a navíc je jeho velikost teoreticky omezena na velikost celé RAM), u mikrořadičů PIC se zásobník nachází mimo adresovatelnou oblast a u většiny čipů je poměrně malý, což poněkud komplikuje práci programátorů například při zpracování přerušení nebo při přepínání úloh. Ovšem současně je nutné říci, že na tuto činnost nejsou mikrořadiče PIC, zejména rodiny PIC10PIC16, určeny a u rodiny PIC18 má již zásobník větší kapacitu.

Obrázek 8: Editace obsahu paměti RAM v nástroji gpsim.

4. Rozdělení osmibitových mikrořadičů PIC do rodin

V předchozích kapitolách jsme se prozatím bez vysvětlování dalších podrobností zmínili o tom, že osmibitové mikrořadiče PIC jsou rozděleny do takzvaných rodin. Čipy z jednotlivých rodin se od sebe odlišují především počtem vstupně/výstupních portů (a tím pádem i pinů), počtem universálních registrů (neboli kapacitou paměti údajů), kapacitou paměti programu a v neposlední řadě také instrukční sadou – nejjednodušší mikrořadiče, konkrétně se jedná o mikrořadiče spadající do rodiny PIC10, mají ve své instrukční sadě pouze 33 instrukcí, pouzdra těchto čipů mají v extrémním případě jen šest vývodů (což je například méně než počet vývodů známého obvodu 555), kapacita paměti programu dosahuje 256 nebo 512 bajtů a počet universálních registrů je roven 16 nebo 24 (takže kapacita interní RAM je 16 či 24 bajtů). Naproti tomu některé mikrořadiče z rodiny PIC18 jsou umístěny v pouzdře s 28 až 40 piny, jejich instrukční sada má 75 instrukcí, paměť pro uložení programu může mít kapacitu 8 kB a počet universálních registrů dosahuje typicky 256 bajtů.

Obrázek 9: Časovač 555 má více pinů než nejjednodušší mikrořadiče PIC.

Základní rozdělení osmibitových mikrořadičů PIC je znázorněno na následujícím obrázku. Povšimněte si, že jedním z hlavních ukazatelů je nejenom počet pinů (který omezuje i počet modulů, například přítomnost sériového portu, A/D převodníku či PWM) ale i bitová šířka instrukcí, protože u čipů s větším počtem universálních registrů (RAM) i větší kapacitou paměti programu (ROM) je nutné v instrukčním slově rezervovat větší množství bitů pro uložení indexu universálního registru nebo adresy, na které se má provést skok:

Obrázek 10: Základní rozdělení osmibitových mikrořadičů PIC. Zdroj: firma Microchip Technology.

Pro lepší porovnání možností mikrořadičů z jednotlivých rodin jsou v následující tabulce vypsány parametry některých vybraných mikrořadičů PIC:

Mikrořadič Frekvence (MHz) Pinů RAM (počet registrů) ROM (slov) Instrukční sada – bitů Počet instrukcí
PIC10F200 4 6–8 16 256 12 33
PIC10F206 4 6–8 16 512 12 33
PIC12F683 8 14 128 2048 14 35
PIC16F87 až 20 18 368 4096 14 35
PIC18F1220 až 40 18–28 256 2048 16 78
PIC18F1320 až 40 18–28 256 4096 16 78

5. Instrukční sady mikrořadičů PIC

Instrukční sada osmibitových mikrořadičů PIC se v několika ohledech odlišuje od instrukční sady, se kterou jsme se seznámili při popisu mikrořadičů MCS-48 a MCS-51. Zatímco u zmíněných dvou typů mikrořadičů byla paměť programu organizována po jednotlivých bajtech a instrukce měly proměnlivou délku jeden až dva bajty i proměnlivou dobu trvání, u mikrořadičů PIC je díky širšímu instrukčnímu slovu o velikosti dvanáct až šestnáct bitů naprostá většina instrukcí uložena pouze v jednom slovu.

Obrázek 11: Source browser – součást nástroje gpsim.

Navíc je instrukční sada velmi pravidelná (v mnoha ohledech ortogonální) a s malým počtem instrukcí (nejmenší mikrořadiče mají pouze 33 instrukcí), což na jednu stranu usnadňuje život programátorům, na stranu druhou vede malá a pravidelná instrukční sada k návrhu jednoduššího řadiče, který je možné implementovat na menší ploše čipu, což je jak levnější, tak i výhodnější z hlediska příkonu celého mikrořadiče. Kromě operačního kódu instrukce se do zmíněných dvanácti až šestnácti bitů ukládá i adresa universálního registru (druhým registrem instrukce je většinou akumulátor W), index bitu u bitových operací, či část adresy, na kterou se má řízení programu přenést instrukcí skoku.

6. Skoky a instrukce typu SKIP

U instrukcí skoku se na chvíli zastavme – zatímco u naprosté většiny ostatních mikroprocesorů i mikrořadičů se v jejich instrukční sadě nachází i instrukce umožňující provádění podmíněných skoků, tj. skoků provedených po splnění nějaké podmínky (nulový, kladný či záporný výsledek předchozí aritmetické či logické operace, přetečení předchozí aritmetické operace, atd.), obsahují osmibitové mikrořadiče PIC (kromě nejvyšší řady) pouze instrukci pro provedení nepodmíněného skoku GOTO a několik instrukcí, které po splnění nějaké podmínky změní programový čítač takovým způsobem, že je následující instrukce přeskočena (skip). Podmíněný skok se tedy implementuje pomocí dvojice instrukcí – některé instrukce typu SKIP s opačnou podmínkou následovanou nepodmíněným skokem. Ovšem v některých případech se skok vůbec nemusí provádět, protože ona jediná instrukce nacházející se za SKIP může nahradit celý podmíněný blok (vyslání bitu na externí port, pokud je splněna nějaká podmínka, reset watchdogu atd.). Ve dvanáctibitové instrukční sadě se nachází následující instrukce umožňující provedení skoků popř. přeskočení jedné instrukce:

Operační kód (bin) Jméno instrukce Stručný popis instrukce
0010 11d fffff DECFSZ f,d d = f – 1, vynechání následující instrukce pokud je výsledek nula
0011 11d fffff INCFSZ f,d d = f + 1, vynechání následující instrukce pokud je výsledek nula
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ý
1001 kkkkkkkk CALL k zavolání podprogramu na adrese k
1000 kkkkkkkk RETLW k návrat z podprogramu s nastavením akumulátoru
101 kkkkkkkkk GOTO k skok na adresu specifikovanou devíti bity

Obrázek 12: V některých zařízeních s mikrořadiči se využívají jednoduché paměťové moduly se sériovým přenosem adres i dat.

7. Seznam instrukcí dvanáctibitové instrukční sady

V následující tabulce je vypsána instrukční sada mikrořadičů PIC s pamětí programu organizovanou po dvanácti bitech. Povšimněte si, že instrukce lze rozdělit do čtyř kategorií, přičemž instrukce v každé kategorii mají jednotný formát. Konkrétními vlastnostmi této instrukční sady, například tím, jak jsou adresovány universální registry, se budeme zabývat v příští části tohoto seriálu:

# Operační kód Jméno instrukce Stručný popis instrukce
01 0000 0000 0000 NOP neprovede se žádná operace
02 0000 0000 0010 OPTION obsah akumulátoru se přesune do speciálního registru OPTION
03 0000 0000 0011 SLEEP přechod do režimu spánku
04 0000 0000 0100 CLRWDT reset watchdogu
05 0000 0000 01ff TRIS f zápis akumulátoru na port (f=1..3)
06 0000 001 fffff MOVWF f přenos akumulátoru to do universálního registru 0–31
07 0000 010 xxxxx CLRW vynulování akumulátoru
08 0000 011 fffff CLRF f vynulování universálního registru 0–31
09 0000 10d fffff SUBWF f,d d = f – W
10 0000 11d fffff DECF f,d d = f – 1
11 0001 00d fffff IORWF f,d d = f OR W
12 0001 01d fffff ANDWF f,d d = f AND W
13 0001 10d fffff XORWF f,d d = f XOR W
14 0001 11d fffff ADDWF f,d d = f + W
15 0010 00d fffff MOVF f,d d = f
16 0010 01d fffff COMF f,d d = NOT f
17 0010 10d fffff INCF f,d d = f + 1
18 0010 11d fffff DECFSZ f,d d = f – 1, vynechání následující instrukce při nulovém výsledku
19 0011 00d fffff RRF f,d rotace doprava přes carry
20 0011 01d fffff RLF f,d rotace doleva přes carry
21 0011 10d fffff SWAPF f,d prohození nibblů universálního registru
22 0011 11d fffff INCFSZ f,d d = f + 1, vynechání následující instrukce při nulovém výsledku
23 0100 bbb fffff BCF f,b vynulování jednoho bitu universálního registru
24 0101 bbb fffff BSF f,b nastavení (na 1) jednoho bitu universálního registru
25 0110 bbb fffff BTFSC f,b Bit test f, vynechání následující instrukce pokud je bit nulový
26 0111 bbb fffff BTFSS f,b Bit test f, vynechání následující instrukce pokud je bit jedničkový
27 1000 kkkkkkkk RETLW k návrat z podprogramu s nastavením akumulátoru
28 1001 kkkkkkkk CALL k zavolání podprogramu na adrese k
29 101 kkkkkkkkk GOTO k skok na adresu specifikovanou devíti bity
30 1100 kkkkkkkk MOVLW k W = k
31 1101 kkkkkkkk IORLW k W = k OR W
32 1110 kkkkkkkk ANDLW k W = k AND W
33 1111 kkkkkkkk XORLW k W = k XOR W

8. Obsah následující části seriálu

V následující části seriálu o architekturách počítačů si popíšeme tři řady osmibitových mikrořadičů firmy Microchip Technology. Bude se jednat o řady PIC10F, PIC12F a především o velmi populární řadu PIC16F, která pro mnoho typů zapojení představuje takřka ideální poměr mezi možnostmi tohoto mikrořadiče (rychlosti, kapacity obou pamětí, instalovaných modulů) a jeho velikostí (většinou se jedná o čipy s osmnácti piny), spotřebou a v neposlední řadě i jeho příznivou cenou. Taktéž si popíšeme některé vývojové a simulační nástroje, které je možné pro vývoj aplikací pro mikrořadiče PIC použít. Zaměříme se samozřejmě především na nástroje šířené ve formě open source, například na projekt picasm (assembler použitelný pro většinu typů mikrořadičů PIC), gpsim (simulátor těchto mikrořadičů), gputils (assembler, disassembler a několik dalších užitečných utilit pro vývoj) a FlashForth (de facto ucelené vývojové prostředí a současně i operační systém založený na programovacím jazyce Forth).

CS24_early

Obrázek 13: Vývojový kit BASIC Stamp ve verzi vybavené rozhraním universální sériové sběrnice (USB).

Obrázek 14: Vývojový kit Amicus s mikrořadičem PIC. Tento vývojový kit byl inspirován kitem Arduino určeným pro mikrořadiče Atmel AVR.

Nesmíme taktéž zapomenout ani na některé zajímavé aplikace, které ve svém zapojení využívají osmibitové mikrořadiče PIC. Jedním z těchto zařízení, které může být zajímavé například i z hlediska výuky programování, je jednoduchá vývojová deska nazvaná BASIC Stamp, jejíž součástí je jeden z čipů PIC (konkrétní verze závisí na variantě BASIC Stampu) a taktéž externí sériová paměť, v níž je uložený tokenizovaný BASICový program, jehož délka může pro variantu s 256 bajty externí paměti dosahovat cca 80 programových řádků (viz též obrázek číslo 13). Další verze BASIC Stampu je již vybavena i rozhraním universální sériové sběrnice (USB). Další zajímavou aplikací s čipy PIC je vývojový kit Amicus inspirovaný známějším kitem Arduino určeným pro změnu pro vývoj s využitím mikrořadičů Atmel AVR. Nákres vývojového kitu Amicus je uveden na čtrnáctém obrázku.

9. Odkazy na Internetu

  1. Microchip Technology
    http://www.mi­crochip.com/
  2. Výběr z různých modelů mikrořadičů PIC
    http://www.mi­crochip.com/ste­llent/idcplg?Id­cService=SS_GET_PA­GE&nodeId=2661
  3. Řada 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 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 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 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)
    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.