Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tutorial | Uvod u programiranje PIC mikrokontrolera u jeziku C
#1
<p><em>Kao sto sam naslov kaze, ova tema ce biti posvecena svima koji zele da se oprobaju u pisanju programa za Microchip PIC mikrokontrolere.</em></p>

<p><em>Tema ce biti pisana deo po deo tj koliko budem mogao vremena da odvojim a prateci neke druge prirucnike tako da zaokruzim i predjem bitna poglavlja oko ove problematike.</em></p>

Zamolio bih clanove foruma da u ovom kontekstu u ovoj temi ne postavljaju pitanje ili daju komentare kako bi odrzali temu bas u duhu tutorijala a da eventualna pitanja vezano za ovo postave u novoj temi.

<p>Pa da krenemo lagano … Wink

Početkom devedesetih godina nama već prošloga veka, na polju elektronike i mikroelektronike se pojavio vrlo zanimljiv proizovod sa nazivom "PIC".</div>

<div>Proizvođač Microchip je napravio pravi bum na tržištu kada je predstavio prve serije programibilnih integrisanih kola (IC) koja su po prvi put do tad imali sve u sebi od potrebnih logičkih jedinica i funkcija neophodnih za rad tj. izvšavanja programiranih zadataka.</div>



<div>Jedan ovakav IC u sebi poseduje pravi mali računar sa potpuno istim logičkim delovima kao i naš PC sa koga čitamo ovaj tekst, CPU jedinica, memorija, ulazno i izlazni portovi, generatori takta (clock) i ostale napredne jedinice.?</div>

<div>Tokom godina, proizvođač je u svoju paletu proizvoda uključio nekoliko stotina različitih modela za upotrebu u širokoj paleti električnih uredjaja koje su podeljenje u nekoliko serija, počevši od mikrokontrolera iz serije PIC10, PIC12 preko serija sa pobošanim periferijama iz serije PIC16, zatim modernih 16-bitnih serija PIC18 sve do serija sa veoma snažnim CPU jedinicama obogaćeni različitim periferijama iobiljem memorije iz serije dsPIC i PIC32. ?

PIC integrisana kola mogu se naći u najrazličitijim kućistima, od malih 8-pin plastičnih kučista (TH) do kućišta sa velikim brojem nožica u SMD tehnici.



Dakle pred nama je jedan IC koji ima sve nama bitne delove za izvršavanje nekog korisničkog programa koji je preko ulazno-izlaznih nožica spojen sa ostatkom elektronike.</p>
<p>Svaki model PIC mikrokontrolera je spečifican na svoj način i detaljna specifikacija se može naći online ali je bitno naglasiti da su svi modeli bazirani na istoj <a data-ipb='nomediaparse' href='http://sr.wikipedia.org/wiki/%D0%A5%D0%B0%D1%80%D0%B2%D0%B0%D1%80%D0%B4%D1%81%D0%BA%D0%B0_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0'>modifikovanoj Harvard arhitekturii</a> sto?praktično znači da je programiranje IC-ova i pisanje programa isto (ili vrlo slično) za sve serije <a data-ipb='nomediaparse' href='http://sr.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%B5%D1%80'>PIC mikrokontrolera</a>. Konkretan izbor PIC-a zavisi od zahteva aplikacije koja se projektuje ali za ovaj tutorial će biti (naknadno) usvojen neki lako dostupan model iz PIC18F ili dsPIC serije.

Za potrebe ovog tutorijala neophodno je pripremiti nekoliko stvari kako bi mogli da osposobimo razvojno okruženje gde je moguće pisati i testirati programe kao i napisan program prebaciti u PIC mikrokontroler pomoću programatorskog uređaja (PICkit2, PICkit3 i dugi).?

Programski razvojni alat za ovaj tutorijal će biti baziran na besplatnoj verziji <a data-ipb='nomediaparse' href='https://www.microchip.com/pagehandler/en-us/family/mplabx/'>MPLAB X IDE</a> uz korišćenje takođe besplatnog Microchip <a data-ipb='nomediaparse' href='https://www.microchip.com/pagehandler/en_us/devtools/mplabxc/'>XC prevodioca</a> (compiler). Ovi programski paketi su raspoloživi za Windows, Linux i Mac OS X operativne sisteme. Tačnu proceduru za instalaciju možete potražiti online.

Napisan program može takodje da se simulira na samom PC računaru bez programiranja PIC-a što je zgodno u početku jer nisu neophodne razvojne pločice, PIC i programatori ali u nekom trenutku će svakako zatrebati kada se želi taj program pokrenuti u nekom praktičnom električnom kolu.

Razvojni proces jednog uređaja sa mikrokontrolerom se može ukratko svesti na sledeće faze:</p>

<p>1) Razrada idejnog plana, algoritmi rada, skice</p>
<p>2) Dizajniranje električne šeme</p>
<p>3) Izbor adekvatnog/optimalnog modela mikrokontrolerskog čipa za datu aplikaciju</p>
<p>4) Dizajniranje štampane pločice</p>
<p>5) Pisanje programa</p>
<p>6) Testiranje programa u simulatoru (opciono)</p>
<p>7) Prebacivanje gotovog programa u mikrokontroler (programiranje / flešovanje)</p>
<p>8) Detaljno testiranje u električnom kolu</p>
<p>9) Popravka i oklanjanje programskih grešaka tj "debagiranje" (ponavljanje faza 5 do 9)</p>

Svaka faza zahteva pažnju, detaljno razmatranje zahteva i mogućih problema kao i određeno znanje i veštine za postizanje željenog cilja.</p>

<p>Pošto je tema oko programiranja mikrokontrolera (PIC ili bilo kog drugog) vrlo široka i obimna, jako je teško napisati sve bitne stvari vrlo sažeto.</p>
<p>Glavni problem potiče iz predpostavke da je za pisanje programa potrebno neko predznanje koje je pre svega vezano za <strong>razumevanje <a data-ipb='nomediaparse' href='http://sr.wikipedia.org/wiki/%D0%91%D1%83%D0%BB%D0%BE%D0%B2%D0%B0_%D0%B0%D0%BB%D0%B3%D0%B5%D0%B1%D1%80%D0%B0'>Bulove algebre</a> tj logike (digitalna logika) kao i poznavanje raspoloživih mogućnosti nekog mikrokontrolerskog čipa</strong>.</p>

<p>PIC mikrokontroleri poseduju veoma veliki spektar raspoloživih mogućnosti i konkretan izbor za neku traženu aplikaciju može da bude vrlo mukotrpan posao posebno ako se rade velike serije gde je bitno svesti troškove materijala na minimum.</p>
<p>Ovde se dodatno stvari malo komplikuju jer je u nekim slučajevima moguće na nivou programa nadomestiti/realizovati neke kompleksne funkcije umesto da se izabere "jači" (obično i skuplji) mikrokontroler koje takve komplekse funkcije može da radi na nivou unutrašnjih specializovanih pod-sklopova tj modula.</p>

<p>Kao čest primer ovakvih stvari je realizacija npr <a data-ipb='nomediaparse' href='http://en.wikipedia.org/wiki/RS232'>RS232</a> ili <a data-ipb='nomediaparse' href='http://en.wikipedia.org/wiki/I2c'>I2C</a> seriskog protokola za komunikaciju koji moze bez specializovanih HW modula da se realizuje čisto adekvatnim napisanim programom. Međutim, to nije ni malo jednostavan zadatak jer obično zahteva apsolutno poznavanje problematike tog protokola i zato se sve češće umesto prostih i jeftinih modela PIC-a biraju modeli koji takve funkcije imaju realizovane na nivou HW-a a programeru se daje "na izvolte" mali skup potrebnih parametara i opcija sa kojim na jednostavan način mogu iz svog programa da upravljaju tim modulima. Dodatno, HW funkcije su često daleko brže i pouzdanije u radu nego ekvivalent čisto programskom rešenju. Naravno, neke jako složene funkcije praktično i nisu moguće da se realizuju samo preko programa nego je neophodan specializovani modul u mikrokontroleru zaduže za te stvari kao npr <a data-ipb='nomediaparse' href='http://en.wikipedia.org/wiki/Usb'>USB</a> komunikacioni port ili <a data-ipb='nomediaparse' href='http://en.wikipedia.org/wiki/I2s'>I2S</a> port za povezivanje sa Audio <a data-ipb='nomediaparse' href='http://en.wikipedia.org/wiki/A/D'>A/D</a> ili <a data-ipb='nomediaparse' href='http://en.wikipedia.org/wiki/D/A'>D/A</a> čipovima.</p>


Attached Files Thumbnail(s)

Reply


Messages In This Thread
Tutorial | Uvod u programiranje PIC mikrokontrolera u jeziku C - by mikikg - 02-18-2014, 10:10 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)