Nekupujte dinosaury

 

Nebojte, nebude to o prazvířátkách. V dobách, kdy jsem začínal s mikrořadiči PIC, byly aktuální a oblíbené některé typy, které jsou k mání i dnes. Doba však pokročila, a my si na ně proto malinko posvítíme.

 

Tehdy jsem psal hned v úvodu (dnes již dobového) článku o programátoru PIC na COM: „Poslední dobou začínaly nabývat na popularitě hlavně PIC16F84 a PIC16F627 a -8 od americké firmy Microchip, a to zejména díky dobré koncepci, dobrému výkonu i parametrům, bohaté obvodové výbavě přímo na čipu (watchdog, eeprom apod.) a zejména díky faktu, že obsahují paměť typu Flash (vícenásobně přepisovatelnou, neocenitelná pomoc při vývoji SW) a tohle celé je ještě pořád za vcelku přijatelnou cenu...”

Tyto typy (plus některé další) se staly skutečně oblíbené a vzniklo okolo nich mnoho literatury, přeložené dokumentace, návodů i různých webových stránek. Díky tomu, a díky uživatelské setrvačnosti jsou oblíbené i dnes (přestože k tomu až na výjimky není racionální důvod), protože kdokoliv chce začít s mikrořadiči od Microchipu, narazí první právě na informace o těchto typech, koupí je, pohraje si s nimi - a stvoří nějaké webovky (třeba). Informací „o těch správných” typech tak přibude - a kolečko se uzavřelo. Tento článek si klade za cíl udělat tomu alespoň částečně přítrž.


PICeratops Microchipus
Dinosaurus - PICeratops Microchipus, baterkožravec

Cena, za kterou jsem tehdy kupoval svou první PIC16F84A, byla celkem „maso” - dal jsem za ni slonovi s dlouhým chobotem okolo 120,- Kč, a za první PIC16F627 pak okolo 80,- Kč (a to možná včetně nějakého toho poštovného, ale to už si vážně nepamatuji). Z dnešního pohledu ceny vpravdě astronomické - potíž je ovšem v tom, že se od dob minulých ceny těchto typů zas tolik nepohnuly, a to je důvod vzniku tohoto článku. Ukážeme si, co s tím můžeme dělat.

Nejdřív lehké porovnání aktuálních cen těchto typů u běžných maloobchodních prodejců (listopad 2013):

  GME GES SOS TME
PIC16F84A-04/P 79,-- 76,-- 96,80 106,50
PIC16F84A-20/P 200,-- ----- ----- 88,80
PIC16F627A-I/P 56,-- ----- ----- 54,90
PIC16F628A-I/P 56,-- 56,-- 66,20 46,60
PIC16F876A-I/SP 131,-- 126,10 90,20 103,60
PIC16F877A-I/P 166,-- 165,-- 204,60 113,80

Jen tak pro zajímavost jsem některé „extrémní” ceny (ať již v jednom, nebo druhém směru) označil barevně. Z tabulky je celkem patrné, kdo s kým na trhu „drží basu” a kdo je „černá ovce”, ale to není podstatné. Podstatné je to, co není vidět z tabulky - že existují i jiné, výbavou či cenou (či obojím) zajímavější typy (mimochodem, všechny ty výše zmíněné typy bez „A” na konci značení mohou být ještě o něco dražší - ne abyste to kupovali kdyby vám to někdo nutil! Často tam jsou i odlišnosti v programování, některých registrech atp - prostě starší typy. Ostatně ony už se dnes nevyrábějí ani typy s „A”, kromě PIC16F627A/628A).

Zde bych si ale ještě dovolil malou vsuvku:

Při koupi mikrořadiče jste omezeni především tím, co zvládne váš programátor. Ovšem programátory se nestaví, programátory se kupují - má to své důvody, které by vydaly možná i na samostatný článek. Pokud jste si ale postavili nějaký z programátorů uvedených dříve na těchto stránkách, naprogramovali jste párkrát svůj první PIC, zjistili jste že vás to baví a teď se poohlížíte po nějakém lepším „broukovi”, tak pro vás nastala přesně ta pravá chvíle pořídit s k němu i lepší programátor (buď rovnou originální, nebo pokud si přeci jen nedáte říci, tak aspoň nějaký obsahující mikrořadič - návodů na stavbu např. klonu PICkitu2 nebo GTP USB jsou na webu přehršle, pokud zkousnete sem tam nějaké to omezení, jako třeba nemožnost programovat 3V3 mikrořadiče). Vřele doporučuji, ceny jsou velmi příznivé, komfort práce s pořádným programátorem je úplně někde jinde, a v důsledku si ušetříte i dost starostí a času (a čas jsou dneska peníze).

A teď se můžeme vrátit k výběru procesoru: Začátečníci dělají povětšinou tu chybu, že si chtějí koupit typ, který má málo I/O vývodů, a naopak mnoho paměti. Nebojte se větších pouzder, ony ty I/O piny při prvních pokusech začnou hodně rychle scházet, 28 vývodů pouzdra je pro začátek rozumné minimum! Pokud se nebudete bát vůbec a koupíte si k pořádnému nepájivému kontaktnímu poli rovnou něco v PDIP40, tím líp. Co se týče velké paměti - pokud jste začali programovat rovnou v C, budiž. Není sice nutná, s pár kilo paměti pro začátek naděláte mnoho parády i v C, ale neztratí se. Pokud ale jedete ASM, je obrovská pamět naprosto zbytečná! Dřív, než využijete např. 4K (natož třeba 8K), budete už dávno znát všechna zákoutí konkrétního mikrořadiče, a dávno chtít něco vybavenějšího. Tenhle článek vám má pomoci ušetřit v začátcích - pokud vás to brzo přestane bavit a švihnete s tím do koše, je zbytečné tam házet se zbastleným programátorem taky mikrořadič za dvě stovky. Pozn: Je mi jasné, že s radou „míň paměti” tu jdu proti obecnému internetově fórovému mínění a mnozí vás budou přesvědčovat že je to blbost, vycházím ale z vlastní zkušenosti. Například mnou naposledy v ASM tvořené zařízení (minutka pro osvitku) má se všemi svými funkcemi jako tlačítka s autorepeatem, ukládání času do paměti a dalšími blbůstkami (plus samozřejmě hlavní funkcí, odčítáním času) 394 instrukcí přeloženého kódu. Mám pocit, že ten program se sám v 8K paměti bojí Smile

Takže mrkneme se na to trošku z hlediska výbavy i ceny (snažil jsem se vybírat méně „profláklé” typy podobné výbavy, případně varianty téhož s menší pamětí, každopádně však s nižší cenou) - nemusím doufám zdůrazňovat, že jádra prakticky všech mikrořadičů řady 16F krom nejnovějších jsou pořád stejná, a je proto jedno, jestli si hrajete s řadičem takovým, nebo makovým. Váš PRVNÍ mikrořadič pro „bastlprogramátory” z těchto stránek by mohl být třeba tento (když mi slíbíte, že hned s dalším vaším PICem si pořídíte i pořádný programátor):

PIC16F716: Možná náhrada jak za oblíbeného dinosaura PIC16F84A, tak za PIC16F627A/628A. Nemá EEPROM paměť, zato má osmibitový AD převodník, UART, SSP, CCP, PWM a „kilo navíc”, tedy 2K flash paměti celkem. Oproti PIC16F627A/628A nemá interní oscilátor, bude potřeba přidat krystal, a má o trochu míň RAM (ale zase dvojnásobnou RAM oproti PIC16F84A). Frekvence 20MHz. Někteří říkají, že tenhle kousek se moc nepovedl, ale zase ta cena... proč ho nezkusit. Jiná náhrada ze starších typů co zvládnou i „bastlprogramátory” stejně neexistuje.

PIC16F886:Náhrada za PIC16F876A - nástupce, vylepšený typ. Prakticky totožný, s tím rozdílem že má i vnitřní oscilátor. Ušetříte za krystal, pokud ovšem mikrořadič správně nakonfigurujete - má dvě konfigurační slova.

PIC16F882:Též možná náhrada za PIC16F876A. Má 4x míň paměti flash a asi 2,5x míň RAM, jinak je totožný s předcházejícím. Za ušetřených 10 Kč oproti předchozímu to možná ani nestojí - zvažte sami.

PIC16F887:Náhrada za PIC16F877A - nástupce, vylepšený typ. To samé co u PIC16F886 s tím rozdílem, že se bavíme o 40pin pouzdře. Zde si prosím povšiměte, že za příplatek 4,- Kč oproti PIC16F886 dostanete podstatně větší kus mikrořadiče (28pin pouzdro vs. 40pin pouzdro).

Tabulka by teď mohla vypadat nějak takhle:

  GME GES SOS TME
PIC16F716-I/P ----- ----- ----- 28,80
PIC16F882-I/SP ----- ----- ----- 37,30
PIC16F886-I/SP ----- ----- ----- 47,20
PIC16F887-I/P ----- ----- ----- 50,90

Vážení, tato tabulka je z hlediska prodejců naprostá katastrofa, která překvapila i mě samotného. Opravdu mě TME neplatí za reklamu, takto zoufalá situace skutečně na našem trhu je. Je z toho krásně vidět, že prodejci nejsou až na výjimky ochotní prodat vám to co chcete (a co se aktuálně vyrábí), ale čekají, až vyprodají své skladové zásoby starších typů (často již VELMI starých a dnes svými vlastnostmi mnohdy nepoužitelných - např. bateriové napájení a chybějící XLP, potřeba externího krystalu, apod). Takto opravdu ne. Hledal jsem ještě jinou firmu, která by vedla ucelený sortiment Microchipu podobně jako TME a dodávala jej na český trh, našel jsem už jen Farnell. Pokud víte o nějaké další, neváhejte se o informace podělit. Nutno ještě dodat, že při objednávce v TME i Farnellu budete platit poštovné, neboť tyto nemají v Česku kamenné prodejny jako ostatní prodejci z tabulky (a ti to dobře vědí, je to svým způsobem takové psychologické držení v šachu - „Buď si kup teď tady náš drahý starý obvod, nebo si zaplať ještě dražší poštovné a navíc si počkej”). Nutno ještě podotknout, že TME ani není autorizovaný distributor firmy Microchip pro ČR - na webu Microchipu je tak uveden kde kdo, ale ten jediný prodejce, který tu zboží Microchipu ve velkém skutečně prodává, bez rozdílu, zda se jedná o firmu či jednotlivce (dodávají obyčejným lidem i výrobním firmám, to vím ze své praxe jistě) tam prostě není. Trochu smutné.

Předchozí odstavec (tedy převážně zjištění v něm) staví celý tento článek tak trochu „na hlavu”, nicméně vrátíme se k tématu. Srovnáním s předchozí tabulkou vidíme, že v případě, kdy nebudeme na obyčejné hraní si požadovat přesně to, co je obvyklé a zažité, můžeme ušetřit někdy i dost korunek. Poštovné nám to sice poněkud kazí, ale pokud se domluvíte s kamarádem, nebo si vezmete víc různých typů do zásoby, ušetříte i tak. „Profláklé” typy mikrokontrolérů pro první pokusy se tak vyplatí brát pouze v případě, že vám je dá hodný strýček, nebo kamarád který „s tím praštil”, nebo pokud je najdete někde ve slevě nebo na burze za třetinovou cenu.

Nicméně ještě nekončíme. Máte kvalitní programátor a kupujete svůj DRUHÝ (či další) mikrořadič? Pro vás je volba jasná: Kupujte jedině řadu Enhanced Midrange, tedy všechny 16F mikrořadiče, které mají za tím „F” čtyři číslice, z nichž první je jednička (tedy PIC16F1xxx, např. PIC16F1939). Má to jen samé výhody - přepracovaná architektura jádra s některými novými fajn instrukcemi, rozšířený zásobník, zdvojené nepřímé adresování, auto context saving, bohatší výbava, vyšší frekvence vnitřního oscilátoru (standardně až do 32MHz s 4x PLL)... ceny jsou zhruba stejné jako v předchozí tabulce s tím, že kupujete lepší (modernější) mikrořadič. A nebo... A NEBO si kupte rovnou nějaký mikrořadič z řady PIC18F! Není třeba se toho bát, dělá se s nimi fakt hezky, líp než s řadou 16F.

Závěrem ještě důležité upozornění - nikde tu netvrdím, že zmiňované typy mikrořadičů PIC jsou přímé náhrady a půjde s nimi nahradit i mikrořadič v nějaké hotové konstrukci - to opravdu nejsou, žádné nahrazování v hotových konstrukcích není možné (nebo ne bez často velmi rozsáhlých úprav)! Řeč je tu celou dobu o vlastním hraní si s mikrořadiči na nepájivém kontaktním poli a podobně, a článek měl za cíl vám ukázat, že mnohdy stačí otevřít oči, trochu popřemýšlet, nebát se a porozhlédnout se co je k mání a jaké jsou možnosti. Není potřeba vzít „za draho” hned první, co se namane (a to platí pořád, nejen v případě prvního či druhého mikrořadiče).

Úplně závěrem bych jen dodal, že všechny mikrokontroléry byly uvažovány v pouzdrech pro THT montáž (vývodovou, skrz desku), a všechny ceny v tabulkách jsou uvedeny včetně DPH (období listopad 2013).

Ještě malý dodatek - některé programy k „bastlprogramátorům” nemusí podporovat některé zmíněné typy mikrořadičů (např. IC-Prog). Je potřeba si s tím trochu pohrát a najít jiný software a nastavení k němu (například WinPic800). Hezký přehled je u Dovedy.. Tedy než si objednáte nějaký mikrořadič, tak si nejdřív ověřte, jestli vůbec budete schopni ho rozjet, ať pak nejste zklamaní... případně si vyberte jiný typ (ale to už jsem tu psal, viz vsuvka).


*** Oprava - 9. prosince 2013 ***

S hrůzou jsem dnes zjistil, že do první tabulky s cenami se mi v případě SOS El. vloudily ceny bez DPH (celý sloupec). Obratem opraveno, nicméně za chybu a případné potíže se omlouvám.