Toto je jeden z témat, o kterých se může velmi diskutovat. Existuje tolik různých úhlů pohledu a různé věci jsou důležité pro různé lidi. Pokusím se dát komplexní odpověď, ale pochopte, že vždy se najde někdo, kdo nesouhlasí. Jen pochopte, že ti, kteří se mnou nesouhlasí, se mýlí. (Jen si dělám srandu.)
Rychlé shrnutí:
Tato odpověď bude dlouhá, dovolte mi tedy ji shrnout předem. Pro drtivou většinu lidí nejnovější plodina čipů ARM Cortex-M0 / M3 / M4 nabízí nejlepší řešení a nejlepší vlastnosti za cenu. To platí dokonce i při srovnání těchto 32bitových MCU s jejich 8 a 16bitovými předky, jako jsou PIC a MSP430. M0 je možné koupit za méně než 1 USD / kus a M4 za méně než 2 USD / každý, takže s výjimkou aplikací velmi citlivých na cenu jsou řešení ARM velmi pěkná. M0 mají velmi nízkou spotřebu a pro většinu lidí by měly být dost dobré. Pro ty, kteří jsou velmi citliví na napájení, může být MSP430s stále lepší volbou, ale M0s stojí za zvážení i pro tyto aplikace.
Pokud vás zajímá podrobnější analýza, přečtěte si, jinak nyní můžete přestat číst.
Nyní se podívám na jednotlivé oblasti a porovnám různé MCU:
Rychlost provedení
Samozřejmě 32bitové MCU budou rychlejší. Mají tendenci mít vyšší rychlost hodin, ale také dělají více práce pro každý z těchto hodin. MCU jako ARM Cortex-M4 obsahují instrukce pro zpracování DSP a mohou mít dokonce podporu s plovoucí desetinnou čárkou v hardwaru. 8 a 16bitové CPU mohou pracovat na 32bitových číslech, ale není to efektivní. Tímto způsobem rychle spotřebujete registry CPU, taktovací cykly CPU a flash paměť pro ukládání programu.
Snadný vývoj
Podle mého názoru je to nejcennější důvod pro použití moderních 32bitových MCU - ale také nejvíce nedoceněný. Nejprve to porovnám s 8bitovými PIC. Toto je srovnání v nejhorším případě, ale také nejlepší pro ilustraci mých bodů.
Menší PIC v zásadě vyžadují, aby bylo programování prováděno v assembleru. Je pravda, že pro 8bitové PIC existují kompilátory C, ale tyto kompilátory jsou buď zdarma, nebo dobré. Nemůžete získat kompilátor, který je dobrý i bezplatný. Bezplatná verze kompilátoru je zmrzačena tím, že její optimalizace není tak dobrá jako verze „Pro“. Verze Pro má přibližně 1 000 USD a podporuje pouze jednu rodinu čipů PIC (8, 16 nebo 32 bitových čipů). Pokud chcete použít více než jednu rodinu, musíte si koupit další kopii za dalších 1 000 USD. "Standardní" verze kompilátoru zajišťuje střední úroveň optimalizace a stojí přibližně 500 USD za každou rodinu čipů. 8bitové PIC jsou podle moderních standardů pomalé a vyžadují dobrou optimalizaci. Můžete buď rozdvojit peníze za dobrý kompilátor, nebo můžete psát v montážním jazyce - v tomto případě dávám přednost sestavení.
Pro srovnání existuje mnoho dobrých překladačů C pro ARM MCU, které jsou zdarma. Pokud existují omezení, jsou tato omezení obvykle na maximální velikosti podporované paměti Flash. U nástrojů Freescale Codewarrior je tento limit 128 kB. To je pro většinu lidí na tomto fóru spousta.
Výhodou použití kompilátoru C je, že se nemusíte tolik obtěžovat s podrobnostmi mapy paměti CPU na nízké úrovni. Stránkování na PIC je obzvláště bolestivé a nejlépe se mu vyhnout, pokud je to možné. Další výhodou je, že se nemusíte obtěžovat nepořádkem při předávání 16 a 32 bitových čísel na 8bitovém MCU (nebo 32bitových čísel na 16bitovém MCU). I když to není těžké v assembleru, je to bolest v zadní části a náchylné k chybám.
Existují i jiné překladače jiné než ARM C, které fungují dobře. Zdá se, že kompilátor MSP430 odvádí rozumnou práci. Nástroje Cypress PSoC (zejména PSoC1) jsou chybné.
Model ploché paměti
MCU, která má stránkovanou RAM / registry / Flash, je prostě hloupá. Ano, mluvím o 8bitových PIC. Hloupý, hloupý, hloupý. To mě natolik vyřadilo z PIC, že jsem se ani neobtěžoval podívat se na jejich novější věci. (Zřeknutí se odpovědnosti: to znamená, že nové PIC mohou být vylepšeny a já o tom prostě nevím.)
S 8bitovým MCU je obtížné (ale ne nemožné) získat přístup k datovým strukturám větším než 256 bajtů. S 16bitovým MCU, který se zvýší na 64 kbytů nebo kwords. S 32bitovými MCU, které dosahují až 4 gigabajtů.
Dobrý kompilátor jazyka C toho může skrýt před programátorem (neboli vy), ale i tak to ovlivní velikost programu a rychlost jeho spuštění.
Existuje mnoho aplikací MCU, s nimiž to nebude problém, ale samozřejmě existuje mnoho dalších, které s tím budou mít problémy. Většinou jde o to, kolik dat potřebujete (pole a struktury) v RAM nebo Flash. Se zvyšující se rychlostí CPU se samozřejmě zvyšuje šance na použití větších datových struktur!
Velikost balíčku
Některé malé PIC a další 8bitové MCU jsou k dispozici ve skutečně malých baleních. 6 a 8 kolíků! V současné době nejmenší ARM Cortex-M0, o kterém vím, je v QFN-28. Zatímco QFN-28 je pro většinu lidí dost malý, není dost malý pro všechny.
Náklady
Nejlevnější PIC je asi jedna třetina cena nejlevnější ARM Cortex-M0. Ale to je ve skutečnosti 0,32 USD vs. 0,85 USD. Ano, pro některé je tento cenový rozdíl důležitý. Ale domnívám se, že většina lidí na tomto webu se nestará o ten malý rozdíl v nákladech.
Podobně při srovnání schopnějších MCU s ARM Cortex-M0 / M3 / M4 ARM Cortex obvykle vychází „zhruba rovnoměrně“ nebo nahoře. Když vezmeme v úvahu jiné věci (snadnost vývoje, náklady na překladače atd.), Pak jsou ARM velmi atraktivní.
Druhé shrnutí
Myslím, že skutečný otázka zní: Proč byste NE používali ARM Cortex-M0 / M3 / M4? Když jsou absolutně důležité absolutní náklady. Když je kritická super nízká spotřeba energie. Když je vyžadována nejmenší velikost balení. Když rychlost není důležité. Ale pro drtivou většinu aplikací nic z toho neplatí a ARM je v současné době nejlepším řešením.
Vzhledem k nízké ceně, pokud není dobrý důvod nepoužívat ARM Cortex, pak má smysl použít jeden. Umožní to rychlejší a snadnější vývojový čas s menšími bolestmi hlavy a většími okraji návrhu než většina ostatních MCU.
K dispozici jsou i jiné 32bitové MCU jiné než ARM Cortex, ale já ano Nevidí pro ně žádnou výhodu. Standardní architektura CPU má mnoho výhod, včetně lepších vývojových nástrojů a rychlejší inovace technologie.
Věci se samozřejmě mohou a mohou změnit. To, co říkám, platí dnes, ale nemusí platit za rok nebo dokonce za měsíc. Udělejte si vlastní domácí úkol.