Srovnání mikrokontrolerů
Michal Pták
Srovnávané typy
• PIC12F675R (Microchip)
• PIC17C42R (Microchip)
• M68HC11 (Motorola)
• M68HC12 (Motorola)
• AT89LS8252 (Atmel)
• ST6200CR
R - RISC
Srovnávané vlastnosti
• druh a velikost paměti
• I/O možnosti
• přerušovací mechanismy
• bezpečnostní mechanismy
• provozní podmínky
• další výbava (ADC,…)
Druhy pamětí
• ROM - obsah „zadrátován“ už při výrobě
• EPROM - uložení programu, případně statických dat, zapisovatelná pouze ve fázi programování za použití vyššího napětí, mazatelná ultrafialovým zářením
• EEPROM - mazatelná elektronicky, tedy použitelná i pro zápis
• FLASH - jako EEPROM, přepisování však probíhá po blocích, a tedy rychleji
• RAM - závislá na napětí
Opakované programování
• opakovatelně programovatelné
• jednou programovatelné (OTP)
• naplněné (dodaným kódem) již od výrobce
S ohledem na flexibilitu či naopak minimální cenu při výrobě ve velkém se rozlišují následující varianty programových pamětí:
I/O možnosti
• Mikrokontrolery mají různý počet obecně použitelných I/O pinů. Skupina n pinů tvoří n-bitový port. Vyspělejší typy mívají portů několik.
• Pokud některý takový pin plní jinou funkci (vstup/výstup hodinového signálu, externí RESET,…), přestává být I/O pinem.
Obsluha přerušení
• Přerušení lze rozdělit do několika skupin dle původu. Obvykle je lze různě konfigurovat (povolit/zakázat, priority).
• Čím méně přerušení sdílí jeden vektor (adresu obslužné rutiny), tím rychleji na ně lze zareagovat.
Obsluha přerušení
• Zatímco CPU je v úsporném módu („spí“), jeho periférie mohou pracovat. Když skončí (ADC dokončí převod, sériové rozhraní přijme byte,…), mohou procesor probudit, aby zpracoval výsledek jejich činnosti.
Přerušovací mechanismy
Zdroje přerušení - externí, přetečení timerů, změna na vstupu, periférie (dokončení činnosti,…)
Každé přerušení má bit, kterým se povoluje, a bit signalizující požadavek na přerušení - na konci obslužné rutiny se vynuluje.
Mapování přerušení na vektory lze u pokročilých procesorů customizovat, včetně nastavování priorit.
Bezpečnostní mechanismy
• Watchdog - V každém taktu se inkrementuje jeho čítač. Při jeho přetečení se provede RESET. Je proto potřeba „čas od času“ čítač watchdogu vynulovat. To brání uváznutí programu při SW chybě.
• Prescaler - Pomocí něj lze zajistit, že se watchdog inkrementuje jen jednou za x taktů.
Bezpečnostní mechanismy
• Low Voltage Detector - Při poklesu napětí může resetovat procesor.
• Oscillator Safeguard - Filtruje výkyvy na oscilátoru. Může plnit i další funkce, např. poskytovat záložní hodinový signál LFAO (Low Frequency Auxiliary Oscillator).
• Code Protection - Ochrana kódu, případně dat, proti čtení.
Bezpečnostní mechanismy
• Illegal Opcode Detection - Obvod může vyvolat nemaskovatelné přerušení při nepovolené instrukci.
Úsporné režimy
• WAIT (Idle) - Procesor se zastaví, ale hodiny běží dál. Probudit procesor může přerušení nebo reset.
• STOP (Power Down) - Zastaví se i hodiny. Běžet dál (a vzbudit procesor přerušením) mohou pouze periférie s jiným zdrojem hodinového signálu.
Další výbava• AD převodník - Změří napětí na vstupu,
výsledek uloží do registru.
• Analogový komparátor - Srovnává hodnotu vstupního a referenčního napětí.
• Některé piny mohou sloužit přímo pro ovládání LED, k němuž je třeba vyšších proudů (20 mA).
Další výbava
• Sériové rozhraní - Synchronní nebo asynchronní komunikace, různá rychlost (baud rate), přístup přes registry - není nutné „ručně tahat za jednotlivé dráty“.
Srovnávání
Paměť
data (RAM)PIC12F675 64 1024 (14, F) 128 (EE)PIC17C42 232 2k (16, E)M68HC11A8 256 8k (R) 512 (EE)M68HC12A4 1k 4k (EE)AT89LS8252 256 8k (F) 2k (EE)ST6200C 64 1k (E)
ROM, EPROM, EEPROM, FLASH
program & další
Zařízení mohou být vybavena další externí pamětí.
I/O možnostiI/O piny Porty (# pinů)
PIC12F675 6 6PIC17C42 33 6, 8, 8, 8, 3M68HC11A8 40 8, 9, 9, 6, 8M68HC12A4 40 8, 8, 8, 8, 8AT89LS8252 32 8, 8, 8, 8ST6200C 9 3, 6
Některé piny mohou mít směr (In/Out) pevně nastavený, u ostatních se řídí nastavováním „směrového“ registru. Lze nastavovat další chování pinů (interrupt-on-change,…).
Přerušovací mechanismyzdroje vektory priority
PIC12F675 7 1PIC17C42 11 4M68HC11A8 18 18 xM68HC12A4 22 22 xAT89LS8252 9 6 xST6200C 5 5
Někde se do kategorie interruptů zahrnují také různé druhy resetů. Zde nikoliv.
Ve sloupci priority jsou označena zařízení umožňující alespoň částečně nastavovat priority různým zdrojům přerušení.
Bezpečnostní mechanismyWD LVD OSG CP IOD
PIC12F675 x x xPIC17C42 x x xM68HC11A8 x x x xM68HC12A4 x x x xAT89LS8252 x xST6200C x x x x
Watchdog, Low Voltage Detector (alias Brown-out Detect), Oscillator Safeguard (alias Clock Monitor), Code Protection,
Illegal Opcode Detection
Provozní podmínky
napětí [V] fmax [MHz] tmin [ns] teplota [oC]
PIC12F675 W 2.0 - 5.5 20 200 -40 - +85PIC17C42 W 2.5 - 6.0 33 121 -40 - +85M68HC11A8 W, S 3.0 - 5.0 12 333 -40 - +125M68HC12A4 W, S 4.5 - 5.5 16 125 -40 - +125AT89LS8252 W, S 2.7 - 6.0 12 1000 -55 - +125ST6200C W, S 3.0 - 6.0 8 1625 -40 - +125
provozúsporné režimy
• úsporné režimy - WAIT a STOP
• udána maximalní frekvence hodinového signálu a minimální délka taktu, lze odvodit, z kolika tiků se skládá jeden takt
Další výbava
rozlišení [bity] kanályPIC12F675 10 4 x - xPIC17C42 - - - USART -M68HC11A8 8 8 - SCI, SPI -M68HC12A4 8 8 - SCI0, SCI1, SPI -AT89LS8252 - - - SCI, SPI xST6200C 8 4 - - -
ICSPAD převodník
komparátor sériová rozhraní
Označení - USART (synchronně asynchronní), SCI (asynchronní), SPI (synchronní)
ICSP - In-Circuit Serial Programming
Konec