JESLI SZUKASZ INFORMACJI TO NIE CZYTAJ TEGO AKAPITU (;
Padla inicjatywa stworzenia zestawu przyklejonych tematow, ktore odpowiadalyby na pytania powtarzajace sie czesto na forum - takie mini kompendium. Wypali to tylko jesli mnie wspomozecie, bo wszystkiego to ja nie wiem, a moje doswiadczenie jest bardzo mizerne. Dlatego prosze was o pomoc w tworzeniu tego posta:
- podawanie pytan ktore sie pojawiaja lub pojawic moga,
- podawanie odpowiedzi na pytania, wlasnych spostrzezen, przemyslen i waznych informacji,
- uzupelnianie informacji zawartych w tym poscie,
- cokolwiek co uznasz za wazne i przydatne.
Tylko prosze, naprawde prosze - jak cos wysylacie, to od razu sformatujcie to jakos tak, zeby tu pasowalo, zebym nie musial poprawiac, formatowac, przerabiac itp [;
TUTAJ ZACZYNAJA SIE INFORMACJE ->
I. Co to są PICe?
PICe to szeroka gama mikrokontrolerów RISC produkowanych przez firmę Microchip. Na chwilę obecną jest to ogromna gama układów 8-mio bitowych (273 układy w rodzinach PIC10, PIC12, PIC14, PIC16 i PIC18), 16-to bitowych (147 ukladow w rodzinach PIC24 i dsPIC) oraz 32-bitowych (obecnie dopiero wchodzą do produkcji, rodzina PIC32).
I.1. O co chodzi z PICami 8-bitowymi?
Ogromna ilość układów 8-mio bitowych spowodowana jest bardzo dużym wyborem 'konfiguracji' peryferiów i możliwości układów. Wspólne cechy wszystkich 8-mio bitowych mikrokontrolerów PIC to:
- 4 cyklowy potok rozkazowy, co oznacza, że do wykonania jednego rozkazu potrzebne są 4 takty zegara (4MHz = 1MIPS)
- architektura Harvardzka - osobna przestrzeń adresowa kodu i danych
- bardzo niewielka ilosc instrukcji assemblerowych (33 w ukladach podstawowych, do 77 w ukladach o najwiekszych mozliwosciach), co sprawia, ze bardzo latwo programuje sie te mikrokontrolery w jezyku niskiego poziomu
- stronicowana (bankowana) pamięć danych
- jeden wspolny wektor przerwan
- sprzetowy stos
Zasadniczo wyróżnione zostało 5 rodzin 8-mio bitowych, różniących się możliwościami i przeznaczeniem. Mamy wiec:
- PIC10, przeznaczone do najprostszych zastosowan, gdzie glownym czynnikiem decyzyjnym jest cena i/lub rozmiar, charakteryzujace sie wyjatkowo malymi obudowami 6-8 pinow, pamiecia FLASH do 250 slow, pamiecia RAM do 24bajtow, moc obliczeniowa do 1MIPSa,
- PIC12, bedace drozsza i nieco mocniejsza wersja PIC10, dostepne w obudowach 8pinowych, do 2k slow pamieci kodu, do 64bajtow pamieci danych, moc obliczeniowa do 2MIPSow,
- PIC14 - [kto wie o co chodzi z PIC14? <: ]
- PIC16 - najpopularniejsza rodzina wraz z PIC18, szeroka gama ukladow w obudowach do 64 pinow (choc w tym wymiarze jest tylko jeden uklad w tej obudowie, reszta jest w obudowach o max 40/44 nozkach), do 8k slow pamieci kodu i do 368bajtow pamieci RAM, moc obliczeniowa do 5MIPSow - uklady bardzo proste w programowaniu w assemblerze, poniewaz posiadaja jedynie 35 instrukcji, ktore pozwalaja na calkiem sporo (; ,
- PIC18 - najmocniejsze, najwieksze (i najdrozsze [; ), jeszcze szersza gama niz poprzednio, pamiec kodu do 64 slow, pamiec danych do ~4kB, max 100 pinow, bardzo szeroka gama peryferiow, wlacznie z USB, wiekszosc PIC18 pozwala na prace z moca do 10MIPSow, choc obecnie wchodza do sprzedazy uklady o mocy do 16MIPSow, rodzina ta jest czesciowo zoptymalizowana pod jezyki wysokiego poziomu
I.2. O co chodzi z PICami 16-bitowymi?
16-to bitowe mikrokontrolery sa swoista rzadkoscia, a juz na pewno nie mozna o nich powiedziec, ze sa popularne. niemniej jednak mozna zaryzykowac twierdzenie, ze 16-to bitowe PICe sa jednymi z najpopularniejszych. Zasadniczo sa ich 4 rodzaje: PIC24F, PIC24H, dsPIC30 i dsPIC33. Podzielic je mozna wg conajmniej kilku czynnikow:
-> wg przeznaczenia
- mikrokontrolery - PIC24F, PIC24H
- mikrokontrolery sygnalowe (cos pomiedzy uC a DSP) - dsPIC30, dsPIC33
-> wg napiecia zasilania
- 5V - dsPIC30
- 3.3V - PIC24F, PIC24H, dsPIC33
-> wg mocy obliczeniowej
- max 16MIPS - PIC24F
- max 30MIPS - dsPIC30
- max 40MIPS - PIC24H, dsPIC33
Rodzina 16b procesorow nie jest juz tak spojna jak 8-bitowcow, istnieje calkiem sporo roznic miedzy dsPIC30 a reszta (czyli miedzy ukladami zasilanymi z 5V a tymi zasilanymi z 3.3V). Najbardziej zasadnicza roznica jest taka, ze dsPIC30 wymagaja 4 cykli zegara na jedna instrukcje, a reszta ukladow 16-to bitowych - tylko 2.
16-to bitowe procesory PIC maja calkiem spore mozliwosci: wystepuja w obudowach do 100pinow, pojemnosc pamieci flash do 256kB (co daje ok 86k slow), pojemnosc pamieci RAM nawet do 32kB, jednocyklowe sprzetowe mnozenie, 18-to cyklowe sprzetowo-programowe dzielenie (2 instrukcje), instrukcje typu MAC (tylko dsPIC), itd, itd. - dlugo by wymieniac. wszystko to do wykonania przy uzyciu ok 75 (PIC24) lub 85 (dsPIC) instrukcji bardzo prostego i przyjaznego assemblera. w procesorach tych zniknelo uciazliwe bankowanie pamieci, maja one do 118 wektorow przerwan, co pozwala na bardzo szybka reakcje na przerwania (2-3 cykle, czyli max 75ns), maja one bardzo nowoczesna architekture, co czyni je doskonalymi do programowania w jezykach wyzszego poziomu (szczegolnie C), programowy stos moze miec ogromna pojemnosc.
I.3. O co chodzi z PICami 32-bitowymi?
[kto chetny, zeby cos natworzyc [; ? ]
II. Czym mozna zaprogramowac PICa?
Dostepna jest szeroka gama programatorow, z ktorych wiekszosc (wszystkie?) mozna sobie poskladac samodzielnie. Sa wiec:
- programatory na port COM
- programatory na port LPT
- programatory na port USB
- debuggery na port COM
- debuggery na port USB
II.0. Uwagi dotyczace debuggowania
PICe 8bitowe mające <20 nóżek (wszystkie?) nie mają możliwości bezpośredniego debugowania. Aby debugować je potrzebny jest specjalny "Header" z uK w wersji ...-ICD, np. dla PIC16F690 będzie to PIC16F690-ICD (Part No: AC162061).
II.1. Programatory na port COM
DL4YHF
Opis i dyskusję można znaleźć na forum elektrody.
[czekamy na tworce]
II.2. Programatory na port LPT
[czekamy na tworce]
II.3. Programatory na port USB
Brenner8
Programuje bardzo dużo układów, tani i prosty w budowie, niestety wymaga innego programatora, aby zaprogramować procesorek wchodzący w jego skład.
PicKit2 - ktory kosztuje ok 100-150zl, pozwala on programowac praktycznie kazdy procesor PIC (8, 16, 32-bity). W internecie dostepny jest schemat i wsady do tego programatora, co pozwala sobie taki stworzyc samodzielnie
ICD2 - ktory kosztuje duzo wiecej, ale mozna sobie go bezproblemowo poskladac samemu, koszt ok 100zl. Gotowe projekty mozna znalezc na stronie poswieconej klonom tego ukladu jak i na forum elektrody, w conajmniej dwoch tematach: [1] [2]
II.4. Debuggery na port COM
[czekamy na tworce]
II.5. Debuggery na port USB
PicKit2 - patrz wyzej - debugguje on calkiem spora game procesorow PIC, a liczba ta stale sie powieksza.
ICD2 - patrz wyzej - debugguje on kazdy procesor PIC, ktory tylko ma w ogole mozliwosc debuggowania (czyli wszystkie wieksze)
III. W czym zaprogramowac PICa?
Uklady PIC mozna programowac w wielu jezykach, w tym w trzech najpopularniejszych: assembler, C, Basic. Co do srodowiska, to firma Microchip udostepnia darmowe srodowisko IDE zwane MPLAB, ktore posiada wbudowanego assemblera do wszystkich PICow, oraz pozwala na integracje niektorych kompilatorow jezykow wyzszego poziomu
Pojawiło się ostatnio nowe środowisko IDE, a mianowicie SourceBoost IDE. Oprogramowanie to jest darmowe i pozwala na integrację kompilatorów firmy Source Boost, assemblera MPASM oraz kompilatora Hi-Tech PICC Lite.
III.1. Jaki assembler?
Najlepszym wyborem do pisania programow w assemblerze bedzie srodowisko MPLAB, ktore w standardzie zawiera assemblery do wszystkich istniejacych procesorow PIC. Dodatkowo zawiera ono bardzo rozbudowane symulatory ukladow, ktore pozwalaja na szybkie sprawdzenie poprawnosci dzialania stworzonego kodu.
III.2. Jaki kompilator C/C++?
Sprawa jest bardziej zakrecona niz przy assemblerze, poniewaz kompilatorow jest calkiem sporo, a kazdy do czego innego.
- PICC Lite
[czekamy na tworce, dobra podstawa do tworczosci]
- mikroC
http://www.mikroe.com/
[czekamy na tworce, dobra podstawa do tworczosci]
- CCS
[czekamy na tworce, dobra podstawa do tworczosci]
- IAR
[czekamy na tworce, dobra podstawa do tworczosci]
- C18
C18 jest to kompilator stworzony przez firme Microchip, przeznaczony jedynie do procesorow z rodziny PIC18. Kompilator ten jest komercyjny, jednak dostepna jest wersja tzw. 'studencka', ktorej jedynym ograniczeniem po uplywie 60 dni jest wylaczenie niektorych opcji dotyczacych optymalizacji. Kompilator ten integruje sie doskonale w srodowisku MPLAB, co pozwala na pisanie, debuggowanie, symulowanie i programowanie procesorow w jednym programie.
- C30
C30 to kompilator stworzony przez firme Microchip na podstawie gcc. Kompilator ten - przeznaczony do procesorow 16-to bitowych - obecnie wystepuje w dwoch wariantach - dla PIC24 i dla dsPIC. Obydwa warianty sa komercyjne, jednak - jak w przypadku C18 - istnieje wersja 'studencka', w ktorej po 60 dniach mozliwa jest optymalizacja na maksymalnie 1 poziomie. Kompilator bezproblemowo integruje sie ze srodowiskiem MPLAB.
- C32
C32 to (jak mozna sie domyslic) kompilator dla 32-bitowych procesorow z rodziny PIC32. Jak wyzej jest on komercyjny i jak wyzej istnieje wersja 'studencka', jednak tym razem firma Microchip postanowila wprowadzic limit kodu wynikowego - 64kB. Jak wszystkie kompilatory Microchipa i ten doskonale integruje sie ze srodowiskiem MPLAB.
- BoostC
Kompilator ten stanowić ma w zamyśle twórców konkurencję dla kompilatora Hi-Tech C. Przeznaczony jest on głównie dla układów z rodzin PIC16 i PIC18, ale obsługuje też kilka mikrokontrolerów z rodziny PIC12. Dostępna jest darmowa wersja z ograniczeniem wielkości kodu wykonywalnego i używanej ilości pamięci RAM - szczegóły. Kompilator ten można zintegrować z środowiskiem MPLAB IDE lub z firmowym rozwiązaniem producenta kompilatora - SourceBoost IDE.
- BoostC++
Podobnie jak wyżej - kompilator ten obsługuje rodziny PIC16, PIC18 oraz wybranych przedstawicieli rodziny PIC12. Również dostępna jest darmowa wersja z ograniczeniami. Kompilator ten integruje się ze środowiskiem MPLAB IDE lub z firmowym rozwiązaniem producenta kompilatora - SourceBoost IDE.
III.3. Jaki kompilator Basic?
http://www.mikroe.com/
http://www.melabs.com/products/pbc.htm
- BoostBasic
Kompilator języka BASIC obsługujący - podobnie jak pozostałe produkty firmy Source Boost - mikrokontrolery z rodziny PIC16, PIC18 oraz kilka modeli typu PIC12. Kompilator ten można zintegrować z środowiskiem MPLAB IDE lub z firmowym rozwiązaniem producenta kompilatora - SourceBoost IDE. Producent udostępnia darmową wersję kompilatora z kilkoma ograniczeniami.
[czekamy na tworce]
III.4. Jakies inne jezyki?
Pascal - http://www.mikroe.com/ [czekamy na tworce opisu]
IV. Jak nauczyc sie programowac te procesory?
IV.0. Datasheety
Bardzo wiele informacji mozna znalezc w datasheetach. 16- i 32-bitowe mikrokontrolery sa jednak na tyle rozbudowane, ze informacje rozproszone sa po wielu miejscach - w datasheetach znajdziemy jakby skrot, peryferia i rdzenie omowione sa dokladnie w tzw Family Reference Manual, a doglebny opis modelu programistycznego i wszystkich instrukcji assemblerowych znajdziemy w Programmers Model. Poznanie datasheeta i mozliwosci procesora oraz zasady jego dzialania, jego slabych i mocnych stron to ABSOLUTNA PODSTAWA. Tego kroku nie da sie ominac, chocbys mial zainstalowany najbardziej idiot-friendly kompilator. Bez znajomosci tych podstaw bedziesz tylko partaczem, a nie programista. To latwo poznac, ze ktos nie czytal datasheeta, wiec nie zdziw sie, ze na glupie pytanie o podstawy opisane w datasheecie, zadane na forum otrzymasz odpowiedz typu RTFM albo nie otrzymasz jej wcale.
IV.1. Ksiazki
[czekam na wpisy]
Mikrokontrolery PIC16F8x w praktyce - Tomasz Jabłoński, wydawnictwo BTC
Jedna z niewielu książek w języku polskim. Od architektury, przez narzędzia programistyczne, po przykłady aplikacji.
Programming 16-bit Microcontrollers in C - Learning to Fly the PIC24 - Lucio Di Jasio
Bardzo dobra pozycja w jezyku angielskim dotyczaca najnowszych procesorow 16-to bitowych.
Programming 32-bit Microcontrollers in C: Exploring the PIC32 - Lucio Di Jasio
ENG, PIC32, przypuszczalnie dobra jak ta powyzej [;
Mikrokontrolery PIC12Fxxx w praktyce - dr Stanisław Pietraszek , BTC, 2005rok.
Programowanie mikrokontrolerów PIC w jezyku C - Jabłoński i Pławsiuk, BTC, 2005r.
Mikroprocesory jednoukładowe PIC - Stanisław Pietraszek, Helion, 2002
IV.2. Internet
W internecie znalezc mozna calkiem sporo ciekawych kursow, stron, for itp. Warte polecenia zamieszczone sa ponizej.
[czekam na wpisy]
Polskie forum Microchip'a
Electronic Circuits & Radio Controlled Modeling - warta polecenia strona z bardzo porzadnie (wrecz wzorcowo) stworzonymi projektami na PIC16. Pierwszej klasy kody zrodlowe.
Mike's Cybot Page - strona zawierajaca tutorial podstaw assemblera dla PIC16
WinPicProg Page - strona softu do programowania PICow, ale znajdzie sie tez tutorial
Moonmoth's Home Page - absolutne podstawy assemblera dla 16-bitowych PICow
IV.3. Strona Microchipa
Na stronie firmowej Microchipa, znalezc mozna setki przykladowych kodow, not aplikacyjnych, przykladow, a nawet tutoriali. Znalezc tam mozna schematy wszystkich modulow ewaluacyjnych oferowanych przez Microchip'a. Czesto mozna natrafic na dokumenty opisujace 'jak zaczac' wspolprace ze srodowiskiem. Nic tylko szukac [;
IV.4. Praktyka
Teoria sobie, praktyka sobie. Trzeba zmontowac sobie po prostu jakis ukladzik i przysiasc nad kodem. Potem zmienic ukladzik i rozbudowac kod. Powtorzyc ostatnie dwa kroki, dopoki nie otrzymamy czegos tak fajnego, ze warto to wrzucic do DIY, coby banda etatowych komentatorow mogla ocenic jakosc lutow i dopasowanie do obudowy oraz projekt plytki [; sama przyjemnosc <: skoncz juz wiec czytac fora i zabierz sie do roboty wreszcie!
V. ...
_______________________________________
changelog:
15.05.2008 - initial release, dodana ksiazka od don diego
16.05.2008 - dodano ksiazke od K_o_n_r_a_d, dodano info o debuggowaniu, dodano link do forum microchip'a
27.05.2008 - dodano info o progu na COM, brennerze
17.06.2008 - dodano dwie knigi
26.06.2008 - kolejna ksiazka
06.10.2008 - info o produktach firmy Source Boost
_______________________________________
credits:
Balu, don diego, Freddie Chopin, K_o_n_r_a_d, Mat_91, robson24-78. Wiechoobike, ...
_______________________________________
0x41 0x56 0x45!!
Padla inicjatywa stworzenia zestawu przyklejonych tematow, ktore odpowiadalyby na pytania powtarzajace sie czesto na forum - takie mini kompendium. Wypali to tylko jesli mnie wspomozecie, bo wszystkiego to ja nie wiem, a moje doswiadczenie jest bardzo mizerne. Dlatego prosze was o pomoc w tworzeniu tego posta:
- podawanie pytan ktore sie pojawiaja lub pojawic moga,
- podawanie odpowiedzi na pytania, wlasnych spostrzezen, przemyslen i waznych informacji,
- uzupelnianie informacji zawartych w tym poscie,
- cokolwiek co uznasz za wazne i przydatne.
Tylko prosze, naprawde prosze - jak cos wysylacie, to od razu sformatujcie to jakos tak, zeby tu pasowalo, zebym nie musial poprawiac, formatowac, przerabiac itp [;
TUTAJ ZACZYNAJA SIE INFORMACJE ->
I. Co to są PICe?
PICe to szeroka gama mikrokontrolerów RISC produkowanych przez firmę Microchip. Na chwilę obecną jest to ogromna gama układów 8-mio bitowych (273 układy w rodzinach PIC10, PIC12, PIC14, PIC16 i PIC18), 16-to bitowych (147 ukladow w rodzinach PIC24 i dsPIC) oraz 32-bitowych (obecnie dopiero wchodzą do produkcji, rodzina PIC32).
I.1. O co chodzi z PICami 8-bitowymi?
Ogromna ilość układów 8-mio bitowych spowodowana jest bardzo dużym wyborem 'konfiguracji' peryferiów i możliwości układów. Wspólne cechy wszystkich 8-mio bitowych mikrokontrolerów PIC to:
- 4 cyklowy potok rozkazowy, co oznacza, że do wykonania jednego rozkazu potrzebne są 4 takty zegara (4MHz = 1MIPS)
- architektura Harvardzka - osobna przestrzeń adresowa kodu i danych
- bardzo niewielka ilosc instrukcji assemblerowych (33 w ukladach podstawowych, do 77 w ukladach o najwiekszych mozliwosciach), co sprawia, ze bardzo latwo programuje sie te mikrokontrolery w jezyku niskiego poziomu
- stronicowana (bankowana) pamięć danych
- jeden wspolny wektor przerwan
- sprzetowy stos
Zasadniczo wyróżnione zostało 5 rodzin 8-mio bitowych, różniących się możliwościami i przeznaczeniem. Mamy wiec:
- PIC10, przeznaczone do najprostszych zastosowan, gdzie glownym czynnikiem decyzyjnym jest cena i/lub rozmiar, charakteryzujace sie wyjatkowo malymi obudowami 6-8 pinow, pamiecia FLASH do 250 slow, pamiecia RAM do 24bajtow, moc obliczeniowa do 1MIPSa,
- PIC12, bedace drozsza i nieco mocniejsza wersja PIC10, dostepne w obudowach 8pinowych, do 2k slow pamieci kodu, do 64bajtow pamieci danych, moc obliczeniowa do 2MIPSow,
- PIC14 - [kto wie o co chodzi z PIC14? <: ]
- PIC16 - najpopularniejsza rodzina wraz z PIC18, szeroka gama ukladow w obudowach do 64 pinow (choc w tym wymiarze jest tylko jeden uklad w tej obudowie, reszta jest w obudowach o max 40/44 nozkach), do 8k slow pamieci kodu i do 368bajtow pamieci RAM, moc obliczeniowa do 5MIPSow - uklady bardzo proste w programowaniu w assemblerze, poniewaz posiadaja jedynie 35 instrukcji, ktore pozwalaja na calkiem sporo (; ,
- PIC18 - najmocniejsze, najwieksze (i najdrozsze [; ), jeszcze szersza gama niz poprzednio, pamiec kodu do 64 slow, pamiec danych do ~4kB, max 100 pinow, bardzo szeroka gama peryferiow, wlacznie z USB, wiekszosc PIC18 pozwala na prace z moca do 10MIPSow, choc obecnie wchodza do sprzedazy uklady o mocy do 16MIPSow, rodzina ta jest czesciowo zoptymalizowana pod jezyki wysokiego poziomu
I.2. O co chodzi z PICami 16-bitowymi?
16-to bitowe mikrokontrolery sa swoista rzadkoscia, a juz na pewno nie mozna o nich powiedziec, ze sa popularne. niemniej jednak mozna zaryzykowac twierdzenie, ze 16-to bitowe PICe sa jednymi z najpopularniejszych. Zasadniczo sa ich 4 rodzaje: PIC24F, PIC24H, dsPIC30 i dsPIC33. Podzielic je mozna wg conajmniej kilku czynnikow:
-> wg przeznaczenia
- mikrokontrolery - PIC24F, PIC24H
- mikrokontrolery sygnalowe (cos pomiedzy uC a DSP) - dsPIC30, dsPIC33
-> wg napiecia zasilania
- 5V - dsPIC30
- 3.3V - PIC24F, PIC24H, dsPIC33
-> wg mocy obliczeniowej
- max 16MIPS - PIC24F
- max 30MIPS - dsPIC30
- max 40MIPS - PIC24H, dsPIC33
Rodzina 16b procesorow nie jest juz tak spojna jak 8-bitowcow, istnieje calkiem sporo roznic miedzy dsPIC30 a reszta (czyli miedzy ukladami zasilanymi z 5V a tymi zasilanymi z 3.3V). Najbardziej zasadnicza roznica jest taka, ze dsPIC30 wymagaja 4 cykli zegara na jedna instrukcje, a reszta ukladow 16-to bitowych - tylko 2.
16-to bitowe procesory PIC maja calkiem spore mozliwosci: wystepuja w obudowach do 100pinow, pojemnosc pamieci flash do 256kB (co daje ok 86k slow), pojemnosc pamieci RAM nawet do 32kB, jednocyklowe sprzetowe mnozenie, 18-to cyklowe sprzetowo-programowe dzielenie (2 instrukcje), instrukcje typu MAC (tylko dsPIC), itd, itd. - dlugo by wymieniac. wszystko to do wykonania przy uzyciu ok 75 (PIC24) lub 85 (dsPIC) instrukcji bardzo prostego i przyjaznego assemblera. w procesorach tych zniknelo uciazliwe bankowanie pamieci, maja one do 118 wektorow przerwan, co pozwala na bardzo szybka reakcje na przerwania (2-3 cykle, czyli max 75ns), maja one bardzo nowoczesna architekture, co czyni je doskonalymi do programowania w jezykach wyzszego poziomu (szczegolnie C), programowy stos moze miec ogromna pojemnosc.
I.3. O co chodzi z PICami 32-bitowymi?
[kto chetny, zeby cos natworzyc [; ? ]
II. Czym mozna zaprogramowac PICa?
Dostepna jest szeroka gama programatorow, z ktorych wiekszosc (wszystkie?) mozna sobie poskladac samodzielnie. Sa wiec:
- programatory na port COM
- programatory na port LPT
- programatory na port USB
- debuggery na port COM
- debuggery na port USB
II.0. Uwagi dotyczace debuggowania
PICe 8bitowe mające <20 nóżek (wszystkie?) nie mają możliwości bezpośredniego debugowania. Aby debugować je potrzebny jest specjalny "Header" z uK w wersji ...-ICD, np. dla PIC16F690 będzie to PIC16F690-ICD (Part No: AC162061).
II.1. Programatory na port COM
DL4YHF
Opis i dyskusję można znaleźć na forum elektrody.
[czekamy na tworce]
II.2. Programatory na port LPT
[czekamy na tworce]
II.3. Programatory na port USB
Brenner8
Programuje bardzo dużo układów, tani i prosty w budowie, niestety wymaga innego programatora, aby zaprogramować procesorek wchodzący w jego skład.
PicKit2 - ktory kosztuje ok 100-150zl, pozwala on programowac praktycznie kazdy procesor PIC (8, 16, 32-bity). W internecie dostepny jest schemat i wsady do tego programatora, co pozwala sobie taki stworzyc samodzielnie
ICD2 - ktory kosztuje duzo wiecej, ale mozna sobie go bezproblemowo poskladac samemu, koszt ok 100zl. Gotowe projekty mozna znalezc na stronie poswieconej klonom tego ukladu jak i na forum elektrody, w conajmniej dwoch tematach: [1] [2]
II.4. Debuggery na port COM
[czekamy na tworce]
II.5. Debuggery na port USB
PicKit2 - patrz wyzej - debugguje on calkiem spora game procesorow PIC, a liczba ta stale sie powieksza.
ICD2 - patrz wyzej - debugguje on kazdy procesor PIC, ktory tylko ma w ogole mozliwosc debuggowania (czyli wszystkie wieksze)
III. W czym zaprogramowac PICa?
Uklady PIC mozna programowac w wielu jezykach, w tym w trzech najpopularniejszych: assembler, C, Basic. Co do srodowiska, to firma Microchip udostepnia darmowe srodowisko IDE zwane MPLAB, ktore posiada wbudowanego assemblera do wszystkich PICow, oraz pozwala na integracje niektorych kompilatorow jezykow wyzszego poziomu
Pojawiło się ostatnio nowe środowisko IDE, a mianowicie SourceBoost IDE. Oprogramowanie to jest darmowe i pozwala na integrację kompilatorów firmy Source Boost, assemblera MPASM oraz kompilatora Hi-Tech PICC Lite.
III.1. Jaki assembler?
Najlepszym wyborem do pisania programow w assemblerze bedzie srodowisko MPLAB, ktore w standardzie zawiera assemblery do wszystkich istniejacych procesorow PIC. Dodatkowo zawiera ono bardzo rozbudowane symulatory ukladow, ktore pozwalaja na szybkie sprawdzenie poprawnosci dzialania stworzonego kodu.
III.2. Jaki kompilator C/C++?
Sprawa jest bardziej zakrecona niz przy assemblerze, poniewaz kompilatorow jest calkiem sporo, a kazdy do czego innego.
- PICC Lite
[czekamy na tworce, dobra podstawa do tworczosci]
- mikroC
http://www.mikroe.com/
[czekamy na tworce, dobra podstawa do tworczosci]
- CCS
[czekamy na tworce, dobra podstawa do tworczosci]
- IAR
[czekamy na tworce, dobra podstawa do tworczosci]
- C18
C18 jest to kompilator stworzony przez firme Microchip, przeznaczony jedynie do procesorow z rodziny PIC18. Kompilator ten jest komercyjny, jednak dostepna jest wersja tzw. 'studencka', ktorej jedynym ograniczeniem po uplywie 60 dni jest wylaczenie niektorych opcji dotyczacych optymalizacji. Kompilator ten integruje sie doskonale w srodowisku MPLAB, co pozwala na pisanie, debuggowanie, symulowanie i programowanie procesorow w jednym programie.
- C30
C30 to kompilator stworzony przez firme Microchip na podstawie gcc. Kompilator ten - przeznaczony do procesorow 16-to bitowych - obecnie wystepuje w dwoch wariantach - dla PIC24 i dla dsPIC. Obydwa warianty sa komercyjne, jednak - jak w przypadku C18 - istnieje wersja 'studencka', w ktorej po 60 dniach mozliwa jest optymalizacja na maksymalnie 1 poziomie. Kompilator bezproblemowo integruje sie ze srodowiskiem MPLAB.
- C32
C32 to (jak mozna sie domyslic) kompilator dla 32-bitowych procesorow z rodziny PIC32. Jak wyzej jest on komercyjny i jak wyzej istnieje wersja 'studencka', jednak tym razem firma Microchip postanowila wprowadzic limit kodu wynikowego - 64kB. Jak wszystkie kompilatory Microchipa i ten doskonale integruje sie ze srodowiskiem MPLAB.
- BoostC
Kompilator ten stanowić ma w zamyśle twórców konkurencję dla kompilatora Hi-Tech C. Przeznaczony jest on głównie dla układów z rodzin PIC16 i PIC18, ale obsługuje też kilka mikrokontrolerów z rodziny PIC12. Dostępna jest darmowa wersja z ograniczeniem wielkości kodu wykonywalnego i używanej ilości pamięci RAM - szczegóły. Kompilator ten można zintegrować z środowiskiem MPLAB IDE lub z firmowym rozwiązaniem producenta kompilatora - SourceBoost IDE.
- BoostC++
Podobnie jak wyżej - kompilator ten obsługuje rodziny PIC16, PIC18 oraz wybranych przedstawicieli rodziny PIC12. Również dostępna jest darmowa wersja z ograniczeniami. Kompilator ten integruje się ze środowiskiem MPLAB IDE lub z firmowym rozwiązaniem producenta kompilatora - SourceBoost IDE.
III.3. Jaki kompilator Basic?
http://www.mikroe.com/
http://www.melabs.com/products/pbc.htm
- BoostBasic
Kompilator języka BASIC obsługujący - podobnie jak pozostałe produkty firmy Source Boost - mikrokontrolery z rodziny PIC16, PIC18 oraz kilka modeli typu PIC12. Kompilator ten można zintegrować z środowiskiem MPLAB IDE lub z firmowym rozwiązaniem producenta kompilatora - SourceBoost IDE. Producent udostępnia darmową wersję kompilatora z kilkoma ograniczeniami.
[czekamy na tworce]
III.4. Jakies inne jezyki?
Pascal - http://www.mikroe.com/ [czekamy na tworce opisu]
IV. Jak nauczyc sie programowac te procesory?
IV.0. Datasheety
Bardzo wiele informacji mozna znalezc w datasheetach. 16- i 32-bitowe mikrokontrolery sa jednak na tyle rozbudowane, ze informacje rozproszone sa po wielu miejscach - w datasheetach znajdziemy jakby skrot, peryferia i rdzenie omowione sa dokladnie w tzw Family Reference Manual, a doglebny opis modelu programistycznego i wszystkich instrukcji assemblerowych znajdziemy w Programmers Model. Poznanie datasheeta i mozliwosci procesora oraz zasady jego dzialania, jego slabych i mocnych stron to ABSOLUTNA PODSTAWA. Tego kroku nie da sie ominac, chocbys mial zainstalowany najbardziej idiot-friendly kompilator. Bez znajomosci tych podstaw bedziesz tylko partaczem, a nie programista. To latwo poznac, ze ktos nie czytal datasheeta, wiec nie zdziw sie, ze na glupie pytanie o podstawy opisane w datasheecie, zadane na forum otrzymasz odpowiedz typu RTFM albo nie otrzymasz jej wcale.
IV.1. Ksiazki
[czekam na wpisy]
Mikrokontrolery PIC16F8x w praktyce - Tomasz Jabłoński, wydawnictwo BTC
Jedna z niewielu książek w języku polskim. Od architektury, przez narzędzia programistyczne, po przykłady aplikacji.
Programming 16-bit Microcontrollers in C - Learning to Fly the PIC24 - Lucio Di Jasio
Bardzo dobra pozycja w jezyku angielskim dotyczaca najnowszych procesorow 16-to bitowych.
Programming 32-bit Microcontrollers in C: Exploring the PIC32 - Lucio Di Jasio
ENG, PIC32, przypuszczalnie dobra jak ta powyzej [;
Mikrokontrolery PIC12Fxxx w praktyce - dr Stanisław Pietraszek , BTC, 2005rok.
Programowanie mikrokontrolerów PIC w jezyku C - Jabłoński i Pławsiuk, BTC, 2005r.
Mikroprocesory jednoukładowe PIC - Stanisław Pietraszek, Helion, 2002
IV.2. Internet
W internecie znalezc mozna calkiem sporo ciekawych kursow, stron, for itp. Warte polecenia zamieszczone sa ponizej.
[czekam na wpisy]
Polskie forum Microchip'a
Electronic Circuits & Radio Controlled Modeling - warta polecenia strona z bardzo porzadnie (wrecz wzorcowo) stworzonymi projektami na PIC16. Pierwszej klasy kody zrodlowe.
Mike's Cybot Page - strona zawierajaca tutorial podstaw assemblera dla PIC16
WinPicProg Page - strona softu do programowania PICow, ale znajdzie sie tez tutorial
Moonmoth's Home Page - absolutne podstawy assemblera dla 16-bitowych PICow
IV.3. Strona Microchipa
Na stronie firmowej Microchipa, znalezc mozna setki przykladowych kodow, not aplikacyjnych, przykladow, a nawet tutoriali. Znalezc tam mozna schematy wszystkich modulow ewaluacyjnych oferowanych przez Microchip'a. Czesto mozna natrafic na dokumenty opisujace 'jak zaczac' wspolprace ze srodowiskiem. Nic tylko szukac [;
IV.4. Praktyka
Teoria sobie, praktyka sobie. Trzeba zmontowac sobie po prostu jakis ukladzik i przysiasc nad kodem. Potem zmienic ukladzik i rozbudowac kod. Powtorzyc ostatnie dwa kroki, dopoki nie otrzymamy czegos tak fajnego, ze warto to wrzucic do DIY, coby banda etatowych komentatorow mogla ocenic jakosc lutow i dopasowanie do obudowy oraz projekt plytki [; sama przyjemnosc <: skoncz juz wiec czytac fora i zabierz sie do roboty wreszcie!
V. ...
_______________________________________
changelog:
15.05.2008 - initial release, dodana ksiazka od don diego
16.05.2008 - dodano ksiazke od K_o_n_r_a_d, dodano info o debuggowaniu, dodano link do forum microchip'a
27.05.2008 - dodano info o progu na COM, brennerze
17.06.2008 - dodano dwie knigi
26.06.2008 - kolejna ksiazka
06.10.2008 - info o produktach firmy Source Boost
_______________________________________
credits:
Balu, don diego, Freddie Chopin, K_o_n_r_a_d, Mat_91, robson24-78. Wiechoobike, ...
_______________________________________
0x41 0x56 0x45!!