Procesory PIC používám už hodně dlouho, cca od roku 95, od roku 96 pracuji
výhradně na Linuxu. Za tu dobu jsem tyto procesory použil v cca 40-ti
aplikacích, zde jsou ukázky některých z nich.
Výběr procesoru
V dnešní době spousta lidí zastává názor, že 8bit procesory jsou přežitek.
Já si myslím, že i dnes jsou aplikace kde je 8bit procesor nejvhodnější řešení.
Vidím dvě oblasti uplatnění. První jsou levné jednoduché přístroje a
druhá velmi perspektivní oblast jsou systémy s distribuovaným řízením.
Systémy s distribuovaným řízením fungují tak, že místo jednoho centrálního
procesoru, který řídí celý systém, použijete pro každý modul jeden procesor.
Např. máte zařízení, kde potřebujete řídit dva motory, tři ventily a
stav zobrazovat na displeji. Místo jedné složité elektroniky s výkonným
procesorem která řídí vše, použijete dvě jednotky pro řízení motoru, tři
jednotky pro řízení ventilu a jednu pro displej. Vše propojíte vhodnou
komunikací. Místo jednoho procesoru za cca 500Kč použijete 6 procesorů
za cca 80Kč, takže cenově je to stejné, ale získáte spoustu výhod.
Jednodušší propojování, sníží se množství drátů, vše je propojeno jen
komunikací a napájením.
Jednodušší oživování. Každý modul oživíte zvlášť a pak je jen namontujete
do celku.
Snadný servis. Při poruše elektroniky nemusíte měnit celou desku,
vyměníte jen poškozený modul.
Snadná rozšiřitelnost. Není problém přidat další moduly.
Opakovaná použitelnost jednotlivých modulů. Stejný modul můžete použít
ve více zařízeních.
Pokud jde o 8bit procesory Microchip, jediná perspektivní řada je PIC18,
obzvláště nové 3.3V procesory (PIC18xxK a PIC18xxJ) mají velmi zajímavý
poměr cena výkon. Např. PIC18F26J11-I/SS 64kB Flash, 3.8kB RAM,
2x sériový port, 2x I2C/SPI, 10bit AD převodník a spousta dalších periferií
stojí v 1kuse cca 70Kč a při 1000ks cca 50Kč.
Samozřejmě nezavrhuji ani výkonnější procesory. Naopak, jsou aplikace, kde se
8-bit procesory vyloženě nehodí. Co se týče firmy microchip, tak samozřejmě
dělá i 16 a 32 bit procesory. 16 bitové jsem ještě nezkoušel, ale použil jsem
32 bitový PIC, zkušenosti jsou zde.
Potupy při aplikaci
Hardware
V první fázi je potřeba mít zadání, co nejpřesnější specifikaci
toho co má zařízení umět. Pak vybírám procesor, snažím se aby
maximum požadovaných funkcí dělal přímo procesor. Dneska mají
procesory velmi bohaté periferie, takže s nimi lze dělat spoustu věcí,
od kapacitní klávesnice přes všemožné měření, řízení výkonových tranzistorů
až po generování pomocných napětí.
Software
Naprogramování procesoru
Nahrání programu dělám systémem ISP, to znamená programování
procesoru přímo v aplikaci. Je na to potřeba myslet při návrhu
hardware a vyvést potřebné piny na nahrávací konektor.
Pro nahrávání používám vlastní software pprg ,
ten využívá paralelní port na PC.
Tento systém má nevýhodu, že pro update software musíte většinou
přístroj otevřít. To je v některých případech problém, proto jsem
vyvinul zavaděč, který umí nahrávat program přes různé typy
komunikace. Zatím podporuje nahrávání přes RS232, I2C a CAN.
Zavaděč se nahraje klasickým způsobem a přes něj se pak nahrává a spouští
vlastní aplikace. Po zapnutí napájení je nějakou dobu aktivní zavaděč,
pokud s ním v této době nezačneme komunikovat, spustí aplikaci.
Ladění programu
Dnes už existuje dost nástrojů pro simulaci a ladění programů.
V době kdy jsem s procesory PIC začínal, nebylo pro Linux
nic takového k dispozici. Pro ladění jsem používal LED diody a
komunikaci RS232. U tohoto způsobu jsem zůstal dodnes. Proto
se na každou desku snažím dát alespoň jednu LED diodu a hlavně
konektor se sériovou komunikací. Na konektor vyvedu signály přímo
z procesoru a pak používám převodník na RS232 nebo USB. Tato
komunikace se dost často hodí i při testování a nastavování různých
konstant. V aplikacích, kde není volná sériová komunikace, používám
softwarovou emulaci.
Nástroje
V současné době existuje spousta linuxových nástrojů pro vývoj
software na procesory PIC. Tady je seznam některých z nich: