pso
Petr Porazil
Návrh hardware
adr
bvh

Programovaní procesorů PIC v Linuxu


Petr Porazil Home
peda
Linux a PIC
PIC32MX
Zavaděč (boot)
Programátor pprg
RS232 příklad
RS232 knihovna
TTL RS232
Solární systém
Ukázky aplikací PIC
Download

Úvod

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.
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:

(C) Petr Porazil 2010-11, poslední úprava 06.05.2010