illik tudni

Embed Size (px)

DESCRIPTION

fgf gf gfdg df gdf gdf gfd gdfg df gdf gfd fdg fd fg fd gdf gdf gdf gfd gdfgfd gdf gdf gdf gdf gdf gfd gfd gdf gfd gfg dgdf gdfg df gdf gdfg

Citation preview

Peripheral Interface Controller (PIC)Definition - What does Peripheral Interface Controller (PIC) mean?A peripheral interface controller (PIC) is a type of microcontroller component that is used in the development of electronics, computers, robotics and similar devices. The PIC was produced by Microchip Technology and is based on Harvard Computing architecture, where code and data are placed in separate registers to increase input/output (I/O) throughput.A PIC is also known as a programmable interface controller (PIC) and programmable intelligent computer (PIC).Techopedia explains Peripheral Interface Controller (PIC)The PIC was designed to improve the performance of I/O operations from a computer's peripheral devices. It works as a standard microcontroller that has small processors, memory, registers and storage. Typically, a PIC enhances I/O operations from a peripheral devices by separating I/O-based programs and data from the core central processing unit (CPU).A PIC has a built-in data memory, data bus and dedicated microprocessor for processing all I/O functions and processes. It consists of temporary and permanent storage mechanisms, in the form of random access memory (RAM) and erasable programmable read-only memory (EPROM), where RAM stores data/processes that are used and EPROM stores created values. It also may contain a flash memory, which is used to perform multiple instances of READ, WRITE and ERASE functions.

MCLR: Specilis lb, mely vezrli az egsz PIC futst. Egy digitlis bemenet ez, melyet tpfeszltsgre hzva kiveszi a MASTER CLEAR zemmdbl, vagyis elindul a processzor. Fldre hzva ki van kapcsolva a PIC, ha nem ktd sehova, akkor pedig instabil hasznlhatatlan kis processzort kapsz. .

Bit: Egyetlen logikai rtk. Kt llapota lehet, 1 vagy 0. Byte: A byte egy szm tpus. Egy bjt 256 rtket vehet fel (28). sszesen 8 bitbl ll. s 0-255-ig lehet rtket adni neki. (0-255-ig 256 klnbz szm van) Nibble: Egy fl bjt. Vagyis ngy bit. Nibble swap-nl az als s fels 4 bitet megcserljk egymssal. Interface: Minden esetben egy olyan csatol fellet, mellyel vagy mellyen keresztl brmit hozzkthetnk a PIC-hez. Ezek egy fajtja maguk a PORT-ok. Digitlis portok: Olyan regiszterek, melyek tartalma kiolvashat a PIC kls interface-en keresztl. Magyarul leegyszerstve, kzelebb hozva hozznk, ha egy Port valamelyik bit-jre kirunk egy 1-est, akkor a kimenete logikai egyes szintet fog adni. Vagyis ha LED-et ktnk r, vilgtani fog. A PIC digitlis portjai byte szervezsek, vagyis egy port maximum 1 bjt lehet. Ilyen portok pl. a PORTB, PORTC, PORTD... Analg mkdsre is kpes portok: Ezek olyan portok, melyeket szoftveres ton lehet belltani, hogy hogyan mkdjn. Lehet egy analg bemenet (kt feszltsgrtk kztt vgtelen sok rtket felvehet) vagy lehet digitlis ki/bemenet. Tipikusan ilyenek a PORTA, PORTE. Mikrovezrl: Olyan integrlt ramkr, mely felptsben hasonlt egy komplett szmtgpre. Ezrt is hvjuk mikroszmtgpnek. Tartalmaz memrit, "httrtrat", Aritmetikai Logikai Egysget (ALU), kzponti vezrl egysget, buszokat, interface-eket. PIC: A Microchip ltal gyrtott 8-bites mikrovezrl. Regiszter: egy bjtot trolni kpes memria "darabka". ICSP: Microchip szabadalma, az In-Circuit Serial Programming. Ezen az interface-en keresztl tudod programozni majdnem az sszes PIC mikrovezrlt. (PGD, PGC, PGM lbak) MCLR: Specilis lb, mely vezrli az egsz PIC futst. Egy digitlis bemenet ez, melyet tpfeszltsgre hzva kiveszi aMASTER CLEAR zemmdbl, vagyis elindul a processzor. Fldre hzva ki van kapcsolva a PIC, ha nem ktd sehova, akkor pedig instabil hasznlhatatlan kis processzort kapsz. GND/Vss/Vdd/Vpp: GND logikusan a GrouND-ot jelenti vagyis a fldet, a tpegysg nulla pontjt. Vss, ez is ugyan azt. Vdd, ez maga a tpfeszltsg lba a PIC-nek, Vpp-vel pedig ltalban a programozsnl hasznlt MCLR lb feszltsgt rtik.

A htkznapi elektronika, a tvkzls s az ipari elektronika gyakran sok hasonlsgot mutat a ltszlag fggetlen konstrukcikban. Pldul majdnem minden rendszerben tallhat:intelligens vezrl (ltalban mikrokontroller),ltalnos cl ramkrk (pl. LCD vezrl, nll I/O portok, RAM, EPROM, adatkonverterek),alkalmazs-orientlt ramkrk, mint pldul rdi s televzi rendszerek jelfeldolgoz ramkrei, telefonok DTMF genertorai, hmr IC-k.A Philips cg kifejlesztett egy egyszer, ktirny, ktvezetkes buszrendszert IC-k kztti vezrlsre azrt, hogy mind a rendszertervezk, mind a kszlkgyrtk kihasznlhassk ezen hasonlsgokban rejl elnyket, valamint maximalizlhassk a hardver hatkonysgt. A buszt Inter IC-nek, vagy csak rviden I2C busznak nevezik. Minden I2C-busszal kompatbilis eszkz tartalmaz egy interfszt, ami az I2C buszon lehetv teszi a tbbi eszkzzel a kzvetlen kommunikcit.

1.1. Az I2C busz nhny jellemzje:Csak kt buszvezetk szksges a mkdshez, egy soros adatvonal (SDA) s egy soros rajel (SCL).

Mindegyik csatlakoztatott eszkz programbl cmezhet egy egyedi cmmel s a kztk fennll egyszer master/slave kapcsolat segtsgvel. A master kpes adknt s vevknt is zemelni.

Tbb master-es rendszerek kialaktshoz tkzsdetektlssal s arbitrcival rendelkezik az adatveszts elhrtsra, ha kt vagy tbb master egyidejleg kezdene parancsokat kldeni.

Az adatforgalom ktirny, soros, 8 bites rendszer, melynek sebessge norml zemmdban 100 kbit/s, gyors zemmdban 400 kbit/s.

Az IC-k I2C interfszbe szr van beptve, ami kiszri az adatvonalon lev zavarokat.

Az egy buszra csatlakoztatott IC-k szmt csak a busz kapacitsa korltozza, ami maximum 400 pF lehet.

1.2. Az I2C buszrendszer nhny elnye:A funkcionlis blokkok a blokk-diagramban megegyeznek a valdi integrlt ramkrkkel; a tervezk ezrt gyorsan haladhatnak a blokk-diagramtl a vgs elrendezsig.

Nem szksges megtervezni a busz interfszt, mert a chip-ek mr tartalmazzk azt.

Az integrlt cmzsi s adattviteli protokoll lehetv teszi a rendszer teljesen szoftveres defnilst.

Ugyanazon IC-tpusok sok eltr alkalmazsban is hasznlhatak.

IC-ket adhatunk, illetve vehetnk el a rendszerbl anlkl, hogy az a buszon ms ramkrkre kihatna.

Az IC-k ramfelvtele alacsony, zajtrsk nagy, szles zemi feszltsg- s hmrsklettartomnnyal rendelkeznek.

A ktvezetkes rendszer rvn a tervezett ramkrkben kevesebb IC lbat kell felhasznlni s kevesebb huzalozst tartalmaz az ramkr, melynek eredmnyeknt az kisebb s olcsbb lesz.

2. I2C busz specifikcik2.1. A busz szerkezeteAz SDA s SCL vezetkek egyarnt ktirnyak s egy-egy felhz ellenllson keresztl mindkett a pozitv tpfeszltsgre van ktve. Ha a busz szabad, mindkt vezetk magas logikai szint. A huzalozott S fggvny megvalstsa rdekben az eszkzk buszra csatlakoz fokozatai nyitott kollektorosak vagy nyitott drain-ek.

2.2. AdatrvnyessgAdattvitel sorn az adatnak az SDA vezetken stabilnak kell lennie az rajel magas peridusa alatt. A magas-alacsony llapot csak akkor vltozhat meg, amikor az SCL vezetken az rajel logikai 0.

2.3. START s STOP felttelekAz I2C buszon az adatforgalom kezdett, vgt, illetve az adatramls irnynak megvltozst kln jelekkel jelzik.Az egyik ilyen eset egy magas-alacsony tmenet az SDA vezetken, mikzben az SCL magas szint. Ez a szituci egy START felttelt vagy adatramls irnyvltozst, azaz ismtld START felttelt jelez.Az SCL magas szintje melletti alacsony-magas tmenet az SDA vezetken egy STOP felttelt definil.A START s STOP feltteleket mindig a master generlja. A busz a START felttel utn foglaltnak tekinthet s ksbb ismt szabadnak tekinthet egy STOP jel utn.

2.4. Az adatok tviteleAz SDA vezetken minden byte nyolc bites. Az egy tvitel alatt tvihet byte-ok szma korltlan. Az adat tvitele a legnagyobb helyirtk bit (MSB) tvitelvel kezddik. Ha a vev nem kpes az adat kvetkez byte-jt fogadni, mert egyb funkcikat kell kiszolglnia, akkor alacsonyan tarthatja az rajel vezetket, ezzel az tvitelt vrakozsi helyzetbe knyszertve. Az ad egszen addig nem adhat tovbb, amg minden eszkz a buszon felhzza az SCL vonalat s az vgre logikai 1 szintre nem kerl.Az tvitel sorn minden byte-ot egy nyugtzs bit kvet. A nyugtzssal kapcsolatos rajel impulzust a master generlja. A kld szabadd teszi az SDA vezetket (magas llapottal) a nyugtzs rajel impulzusa alatt. Amennyiben a fogad elfogadja az adott byte-ot, akkor le kell hznia az SDA vezetket a nyugtzs rajelimpulzusa kzben gy, hogy az stabilan alacsony maradjon az rajel magas peridusa alatt.Ha az tvitel sorn az eszkz nem kpes vagy mr nem kell neki tbb byte-ot fogadni, a masternek meg kell szaktania az tvitelt. Ezt a slave azzal jelzi, hogy a kvetkez byte-nl nem generl nyugtzst. A slave magasban hagyja az adatvezetket, a master meg generl egy STOP felttelt.Ha a master fogadknt vesz rszt egy tvitelben, jeleznie kell az adat vgt a kld slave-nek azzal, hogy a slave-tl kihozott utols byte utn nem generl nyugtzst. A kld slave-nek szabadd kell tennie az adatvezetket, hogy lehetv tegye a masternek egy STOP vagy egy ismtelt START felttel generlst.

2.5. Eszkzk megcmzseAz I2C buszrendszer ktfajta cmzsi mdot ismer: a 7 bites s a 10 bites cmzst. 7 bites formtum esetn a START felttel utn elszr a megcmzend slave eszkz cme kerl elkldsre. Ez a cm 7 bit hossz, kiegsztve egy nyolcadik, adatirnyt jelz bittel (R/W). Ennek a nulla rtke az adatkldst (rst), mg 1 rtke adatkrst (olvasst) jelent. Ez utn kvetkezik a nyugtzs bit, amelyet a slave eszkz kld s ami nulla rtke azt jelenti, hogy a megcmzett eszkz mkdik s kszen ll az adatcserre. A kvetkez byte-ok az adatbyte-ok, amelyek szintn nyolc bitesek. Minden byte utn egy nyugtzs bitet is elkld a slave eszkz. Az utols adatbyte utn nincs nyugtzs, ezzel jelzi a slave az adattvitel vgt. Ez utn a master egy STOP felttelt generl.7 bites cmzs esetn nem hasznlhat fel az sszes 7 bites cm, ugyanis nmelyik specilis funkcik elltsra van lefoglalva.Nagymret rendszerek esetn elfordulhat, hogy a 7 bites cmzs nem elg, mert ennl tbb eszkz van felpakolva a buszra. Ehhez talltk ki a 10 bites cmzst, amivel jabb eszkzk telepthetk a buszra. 10 bites cmzs esetn els byte-knt egy a 7 bites cmzsben nem felhasznlhat cmet, az 1111 xxx cmet adja ki a master els byte-knt. Az xxx a 10 bites cm fels hrom bitjt jelenti. Az als ht bitet a kvetkez byte-ban adja meg a master.A 10 bites cmzsnl is vannak nem hasznlhat cmek, amelyek a tovbbi bvtseket teszik lehetv.

2.6. ArbitrciEgy master csak akkor kezdemnyezhet tvitelt, ha a busz szabad. Ekkor viszont elfordulhat, hogy kt vagy tbb master egyszerre generl egy START felttelt. Ekkor mindegyik master elkezdhet egyszerre biteket adni. Ilyenkor az a master, amelyik magas szintet kld, mialatt egy msik alacsonyat, lekapcsolja a kimeneti fokozatt mivel a busz jelszintje nem felel meg az ltala belltottnak. Ekkor ez a master tadja a buszt. Az arbitrci folytatdhat akr tbb biten keresztl. Mivel az arbitrci az I2C buszra kerl bitek s a kikldt bitek sszehasonltsval trtnik, ezrt nincs adatveszts.Ha egy master ellt slave funkcit is s a cmzsi fzisban elveszti az arbitrcit, elfordulhat, hogy a gyztes master t prblja megcmezni, teht a vesztes masternek azonnal t kell kapcsolnia slave zemmdba fogadknt.

Az I2C busz felptsrl s mkdsrl tovbbi informcik olvashatk magyarul ahttp://www.extra.hu/magii/ weboldalon. Ennl frissebb angol nyelv lers a Philips honlapjn (www.philips.com) tallhat

Ajnlott sszefoglal PIC kezdknekAz sszefoglal Istvnfi Bla s Braun Gbor munkja, kiegsztve a ChipCAD levlista tagjainak szrevteleivel.Ahhoz, hogy a mikrovezrld mkdjn, az albbiakra lesz szksged::1. Mindenekeltt nmi olvasnival:
a PIC katalgusa, a 16Cxx Reference Manual s az Application Note-ok. Ezek mind rajta vannak a Microchip CD-n, angolul. Magyar nyelven is ltezik nmi szakirodalom, pl. Tietze Schenk: Analg s Digitlis ramkrk c. knyve, ebbl is a Mikroszmtgpek c. fejezet. Ez nem a PIC-ekrl szl, hanem ltalnossgban tisztz nhny alapfogalmat. A PIC-ekrl is van nmi magyar nyelv irodalom, ezek a ChipCad Kft-nl beszerezhetek, pr szz forintrt. A CD ingyenes. Ha ezeket ttanulmnyozod, ismerni fogod a PIC mikrovezrlk lelkivilgt. Albb pr mondatban sszefoglaljuk a lnyeget: A PIC mikrovezrl csald sokfle elemet tartalmaz, ezeknek rengeteg kzs tulajdonsga van. Minden PIC-et hasonl, majdnem azonos nyelven lehet programozni. A klnbsg abban rejlik, hogy klnfle PIC-ek ms-ms integrlt hardver eszkzket tartalmaznak, mint pldul beptett A/D konverter, EEPROM adatmemria, stb. Minden PIC mikrovezerl beptve tartalmaz egy RISC CPU-t, programmemrit amely lehet PROM, EPROM, EEPROM, RAM adatmemrit, 1 db 8 bites hardveres szmllt, watchdog s resetramkrt, valamint oszcilltort. A 16C5x-es csald utn megjelent kontrollerek tartalmaznak megszaktsvezrlt, az jabbak pedig beptett brown-out reset ramkrt is. A fentiekkel bizonyra tisztban vagy, de azrt foglaljuk ssze a dolgokat: RISC CPU: Reduced Instruction Set Central Processing Unit, azaz cskkentett utastskszlet CPU. Valamikor a szmtstechnikai skorban kt irnyba szakadt szt a CPU-k fejlesztse. Az egyik irny, hogy minel tbb komplex utastst, - akr szorzst is - valstson meg a processzor (ez volt a CISC, Complex Instuction Set Cpu), a msik pedig, hogy kevs, egyszer utastst tudjon, de azt gyorsan. Ez lett a RISC. RISC esetben a bonyolultabb mveleteket (pldul szorzs) programbl kell megcsinlni. Mivel a programok csupn 2%-nak van szksge szorzsra, gy nem baj, hogy nem kell minden esetben megfizetni a hardverbe integrlt szorzt... gy lett a RISC egyszer, ezrt olcs, s gyors. A PIC fizikai felptse lnyegesen eltr pldul az INTEL tpus mikroprocesszoroktl (pl 80286, vagy a Motorola 68HC05-s mikrovezrl csaldja), mert a PIC-nek kln van a programmemrija s kln az adatmemrija. Ezt a konstrukcit Harward architektrnak hvjk, szemben a 286-osok s HC05-sk von Neumann architektrjval, (Neumann Jnos tiszteletre hvjk gy) ahol a program s az adatok ugyanannak a memrinak klnbz cmein tallhatak. Programmemria: az a memria, amiben a vgrehajtand program van. Ez egy kiss fura dolog a RISC procikon, ugyanis ott 1 utasts az 1 programhelyet foglal el, szemben pld. a 80x86-os procikkal, ahol 15 byte = 1 utasts a 'cscs'. Nos, a furcsasg oka az, hogy a programmemria nem 8, hanem 12, vagy 14, vagy 16 bites szervezs. gy ez esetben nem program byte-okrl, hanem program word-krl beszlnk. 1 RISC utasts = 1 'word'. Ha egy PIC-nek van 2048 word memrija, abba 2048 utastsnyi programot tehetsz. Fizikailag minden PIC-nek van 'ablaktalan', egyszer programozhat (vagy OTP = One Time Programmable) verzija, nhnynak ltezik kvarcablakos, EPROMos kivitele. A kett kztt csak a tokozs jelent klnbsget. A 16C84 volt az els olyan PIC tpus, ami EEPROM memrival kerlt forgalomba, gy olcs volt (mert nem kell r kvarcablak), s mgis knnyen jraprogramozhat. Manapsg mr sokfle EEPROM-os PIC van. (Aprsg: a 16C84 utni sszes EEPROM-os tpusnak Flash EEPROM memrija van.) A programmemria tipikus mrete 512-1024-2048-4096 word. Adatmemria: RAM memria, melyben a program tmenetileg (amg be van kapcsolva a PIC) trolhat adatokat, vltozkat, stb. A RAM 8 bit szlessg, byte szervezs. A RAM memria els kb. 12 - 32 byte-ja 'foglalt' (ez tpustl fgg), utna tpustl fggen 40-50 byte memria ll rendelkezsre. Az els foglalt 12 - 32 byte-ban a PIC perifriit (idzt, szmll, A/D konverter) lehet elrni, gy, mintha a memriban 'ltszannak' Hardveres szmll / idzt: egy 8 bites szmll, ami a kvetkezket tudja: - Az RA.4 lbon bellthat jelszintvltozsra nvekedik az rtke, vagy
- a PIC rajele/4 frekvencival nvekszik az rtke Mindkt esetben rendelkezsre ll egy beptett hardveres oszt, ami 2..256-os frekiosztst tud, kivlaszthatan. Ez praktikus, ha viszonylag nagyobb frekvencikat kell megmrni. Ha a szmll rtkt az rajel nveli, akkor idztt kapsz.. Watchdog: 'rz-vd kutya', egy kis, fggetlen ramkr, ami a PIC-et reseteli, ha esetleg a benne fut program valami programhiba, de sokkal inkbb tpzavar, ipari krnyezet, stb. hatsra 'elszll'. Ez gy mkdik, hogy a watchdog egy kb. 20 ms-os idzt, ami elindul. Ha 20 ms alatt nem trtnt CLRWDT utasts a programban (a program 'lefagyott'), akkor reseteli a processzort. Ha megvolt a CLRWDT, akkor jraindul a 20 ms. A fentebb emltett elosztval a 20ms-os watchdog timeout rtkt megnvelheted, max. 128-szorosra. Reset ramkr: A tpfeszltsg megjelensekor automatikusan reseteli a PIC-et. (Rgen, mg a Z80, 8051-es idkben erre egy kln RC tagot kellett kvlrl odaragasztani...) Nhny tpusban van egy PWRT = PoWer staRtup Timer, ami a 'megfelelnek' vlt reset utn 200ms-ig mg resetben tartja a PIC-et, a biztonsg kedvrt. Nem szriatartozk, csak az jakban van: a brown-out reset ramkr. Ez akkor nagyszer, ha a tpfeszltsg fura mdon piciket vltozik. Pl.: tipikusan el szoktam kvetni azt a hibt, hogy dida, nagyElk, stabkocka... Ez esetben a tp megszntekor a PIC-en a tp lassan fog megsznni, mert az elk tartja a tpfeszt. A tp lassan lemszik 3V-ig, aztn valaki megint bekapcsolja... s ekkor a norml resetramkr nem mindig / nem jl resetel. A brown-out reset ezt kszbli ki. (Ha nincs benne BO reset, akkor kls resetkockval kell(ene) prblkozni.) Oszcilltor: A PIC-re kermia rezontort, kvarcot, RC oszcilltort, alacsony frekis kvarcot tudsz rtenni, az oszcilltor tbbi rsze a tokba van integrlva. Te mondod meg, hogy mid van, s az oszcilltor ramkr a tokon bell gy rendezi el magt, hogy az adott konfigurci mkdjn. A programod elejn tudod meghatrozni, hogy mifle oszcilltorod van. Az MPLAB help-ben olvasd el a __CONFIG direktvt. Ide kvnkozik a power management is: egy SLEEP nev utasts a PIC-et alv llapotba helyezi: ekkor az oszcilltor megll, s az ramfelvtel pr mA-re cskken a tetemes tipikus 4mA-rl. Az alvsbl reset, watchdog timeout, vagy valami megszakts tudja felbreszteni a PIC-et. Megszakts vezrl: A 'megszakts' azt jelenti, hogy a program normlis, szekvencilis futsa valamilyen kls hats miatt tmenetileg felfggesztdik, s a vezrlst egy kln rutin, a megszaktskezel kapja meg. Miutn a megszaktskezel vgzett, a program a futst - mintha semmi se trtnt volna - folytatja. A kls hatsok tipikusan: jelvltozs valamelyik bemeneten, a hardver szmll / idzt 255-rl 0-ra vltsa (tlcsordulsa), vagy pld. az A/D konverter jelzse, hogy kszen van a konverzi. A megszakts vezrl feladata, hogy:
- legyenek megszaktsok
- egyesvel, vagy globlisan lehessen a megszaktsokat engedlyezni, vagy letiltani.Kezdetben valsznleg nem fogsz a megszaktsokkal foglalkozni, de hamar elrkezik ennek is az ideje. Ha nem kell az interrupt, gondoskodj arrl, hogy az INTCON regiszter 00-ban legyen. Ezzel minden megszaktst letiltottl.

2. Egy mikrovezrl, amiben knnyen tudod cserlni a programot. Ez lehet egy ablakos eszkz is, de ez kicsit macers, mert UV fnnyel (germicid lmpa ajnlott, s vigyzz, a fnye ne jusson a szemedbe !) kell trlni. Az ablakos eszkzknl kicsit olcsbb a Flash memris PIC, ezt anlkl tudod jraprogramozni, hogy eltte fnnyel kellene trlnd. Kezdknek a PIC 16 F 84-et ajnljuk, ez egy 18 lb IC, jraprogramozhat s nem tl drga. 3. A mikrovezrlt fel kell programozni, teht kell egy program. Ezt Te fogod megrni. Kezdetnek azt javasoljuk, hogy az egyik I/O port valamelyik kivezetse legyen kimenet, s ennek segtsgvel villogtass egy LED-et. Arnylag egyszer feladat, nhny sornyi programmal megoldhat, mgis elegend arra, hogy a programrs alapszablyait megtanuld. Ha valami nem
megy, nyugodtan krj segtsget a ChipCad listn, de arra krnk, hogy NE azt krd, hogy valaki rjon neked egy ilyen - olyan programot. HANEM pl.: "itt ez a pr soros program, n rtam, s nem akar mkdni. Segtsetek mr, mi lehet rossz! " s itt kvetkezik a nhny soros kis program, amit elkvettl. gy sokkal knnyebb segteni (teht hamarabb kapsz vlaszt), s Te is tbbre jutsz vele. 4. A program megrshoz kell egy fejlesztkrnyezet. Ez ingyenes, MPLAB-nak hvjk, letlthet a www.microchip.com -rl, vagy a Microchip CD-rl. A program 3.1-es vagy annl jabb Windows alatt fut. Van benne szvegszerkeszt, assembler (ez fordtja le a szveges utastsokat gpi kdra), szimultor, amivel ellenrizheted, hogy a programod mit csinl. Ms fejlesztkrnyezet is ltezik, pl a Parallax fle, s DOS alatt is lehet programot rni PIC-re, csak nem olyan knyelmes. 5. Ha megrtad a programot, akkor azt valahogyan bele kell tltened a PIC-be, ezt a folyamatot a zsargonban getsnek hvjuk. Kln kszlket ignyel, ami ssze van ktve a PC-ddel, bele tudod tenni a PIC-et s felprogramozod. Tbbfle ilyen kszlk van forgalomban, de magad is pthetsz egyet. A doksikat az Internetrl ssze lehet szedni hozz. 6. A felprogramozott (begetett) PIC-et ki is kell prblni, ehhez egy kis hardvert kell ptened. Ha elfogadod a 2. pontbli LED villogtatst, akkor egy csupalyuk prbapanelre tgy egy 18 lb IC foglalatot (hogy a PIC-et ki tudd venni programozs cljbl), valamelyik I/O portra soros 220 -500 ohm-on keresztl kss egy LED-et. A PIC oszcilltora legolcsbb esetben egy RC tag, a katalgusbl ki tudod olvasni az rtkeket. Kell mg neki tpfeszltsg: legyen mondjuk 5V, fontos, hogy stabilizlt legyen! Ha ez nincs, egy 4,5V-os zseblmpaelem is megteszi. (A stabilizlt tpfesz azrt kell, mert zajos, brummos feszltsgrl nem fog jl mkdni a mikrovezrl. A szrazelem nem zajos, teht megfelel.) A hozzvalkat elektronikai alkatrszboltokban megkapod. 7. Kell nmi kitarts is. Ne add fel az els kudarc utn! 8. A PIC elgg jl sikerlt mikrovezrl, stabilan mkdik s tarts, de ehhez nhny klszablyt be kell tartanod. Pldul: - ne adj r soha fordtott tpfeszltsget!
- ne terheld tl a kimeneteket! (nincs rvidzrvdelem a kimeneteken!)
- a bemeneteket hatrozott potencilra (0-ra vagy 1-re) ksd !
- vedd figyelembe azt, hogy bekapcsols utn a PIC minden I/O portja bemenet, s a programbl kapcsolod t azokat kimenett. Ha lg a levegben valamelyik kivezets, az, amg bemenet, sszeszedhet zajokat, s lehet, hogy ettl rosszul mkdik majd az ramkrd. Hatrozott potencilra viszont csak ellenllson keresztl ksd (kb 500 ohm), mert ha a programban kimenetknt lltasz be egy I/O vonalat, s 0-ba programozod, mikzben az a tpfeszre van ktve, akkor tnkremehet a vezrld. Ezeket az ellenllsokat azrt nem rajzoltuk r az brkra, hogy a rajzok egyszerek legyenek, csak a lnyeget mutassk.

9. Ha mgse mkdik, az albbiakat ellenrizd: tpfesz van? megfelel lbakra van ktve? A + s a - is be van ktve?

oszcilltor jl van bektve? Rezeg? (ezt tutira csak oszcilloszkppal tudod megnzni)

arra a lbra kttted a LED-et, amit a program kezel? Nincs-e fordtva a LED?

Ha vilgt, de nem villog: nem tl gyors-e a villogs frekvencija ahhoz, hogy szemmel is lsd?

bemeneteket nem hagytad-e a levegben lgni? Klnsen a MCLR bemenet rzkeny erre.

10. Vgl nhny alapvet bra, segdanyag a gyakorlati felhasznlshoz :
1. bra : ajnlott tplls

2a. bra : alap bekts 4MHz-es kermia rezontorral

2b. bra : alap bekts kvarccal

3. KIMENETEK

3a. bra : LED a kimenetre

3b. bra : rel a kimenetre

A rel tekercsvel prhuzamosan kttt dida alapvet fontossg! Ne hadgyd ki!
Hasonl mdon tudsz kapcsolni brmely picike fogyasztt, lmpt, stb. Ne kss azrt r 230V-ot.. Ha induktiv fogyasztt hasznlsz (tekercs, rel, motor), akkor a dida mindenkppen FONTOS!

3c. bra : Optocsatol a kimenetre:

4. BEMENETEK

4a. egyszer gombok:

4b. bra : az elz gomb bolondbiztos vltozata, ami minden lehetsges hiba ellen vdett

4c. bra : vagy gomb egyszerbben, kihasznlva az RB porton bepitett felhuzellenllsokat:

Ez a tblzat olyan, "klnleges" assembly utastsokat tartalmaz, amit az MPLAB elfogad 16C5x s 16Cxx processzorokhoz. Fordtskor automatikusan helyettesti ezeket az utastsokat az "Egyenrtk mvelet" oszlopban lev, eredeti assembly kdokkal.

MnemonicDescriptionLersEgyenrtk mveletSttuszbit

ADDCF f,dAdd Carry to fileCarry-t hozzadja egy regiszterhezBTFSC 3,0 INCF f,dZ

ADDDCF f,dAdd Digit Carry to fileDigit Carry-t hozzadja egy regiszterhezBTFSC 3,1 INCF f,dZ

B kBranchUgrs (Branch)GOTO k-

BC kBranch on CarryUgrs, ha Carry=1BTFSC 3,0 GOTO k-

BDC kBranch on Digit CarryUgrs, ha Digit Carry=1BTFSC 3,1 GOTO k-

BNCBranch on No CarryUgrs, ha Carry=0BTFSS 3,0 GOTO k-

BNDCBranch on No Digit CarryUgrs, ha Digit Carry=0BTFSS 3,1 GOTO k-

BNZBranch on No ZeroUgrs, ha nem 0BTFSS 3,2 GOTO k-

BZBranch on ZeroUgrs, ha 0BTFSC 3,2 GOTO k-

CLRCClear CarryCarry trlseBCF 3,0-

CLRDCClear Digit CarryDigit Carry trlseBCF 3,1-

CLRZClear ZeroZero bit trlseBCF 3,2-

LCALLLong CallTvoli hvsBSF/BCF 0A,3 BSF/BCF 0A,4 CALL k-

LGOTOLong GotoTvoli ugrsBSF/BCF 0A,3 BSF/BCF 0A,4 GOTO k-

MOVFW fMove File to WAz f regisztert W-be tesziMOVF f,0Z

NEGF fNegate FileAz f regisztert negljaCOMF f,1 INCF f,dZ

SETCSet CarryCarryt 1-be lltjaBSF 3,0-

SETDCSet Digit CarryDigit Carryt 1-be lltjaBSF 3,1-

SETZSet ZeroZero bitet 1-be lltjaBSF 3,2-

SKPCSkip on CarryHa Carry=1, a kvetkez utastst tugorjaBTFSS 3,0-

SKPDCSkip on Digit CarryHA Digit Carry=1, a kvetkez utastst tugorjaBTFSS 3,1-

SKPNCSkip on No CarryHa Carry=0, a kvetkez utastst tugorjaBTFSC 3,0-

SKPNDCSkip on No Digit CarryHa Digit Carry=0, a kvetkez utastst tugorjaBTFSC 3,1-

SKPNZSkip on Non ZeroHa a Zero bit=0, a kvetkez utastst tugorjaBTFSC 3,2-

SKPZSkip on ZeroHa a Zero bit=1, a kvetkez utastst tugorjaBTFSS 3,2-

SUBCF f,dSubtract Carry from FileCarry bitet kivonja egy regiszterblBTFSC 3,0 DECF f,dZ

SUBDCF f,dSubtract Digit Carry from FileA Digit Carry bitet kivonja egy regiszterblBTFSC 3,1 DECF f,dZ

TSTF fTest FileRegiszter ellenrzseMOVF f,1Z

Ez az rs letlthet .pdf formtumban :.http://www.elektronline.hu/konyvtar/other/pickezdo/PICkezdo.pdf

Elektronika, PICMi kszl itt?Nos itt egy kis sszefoglal lesz, illetve gyakorlatiasabb dolgok. Idvel persze.
Az oldal hamarosan bvlni fog; kritikkat vrom az e-mail cmemen: felhasznlnv: nzsb, domain: transistor pont hu
Tmhoz kapcsold szakdolgozatom letlthet innen PDF formtumban. Eddigi PICes projecteim6x14seg

Mind machine (elmegp)

Cyberax

Microchip PIC mikrokontrollerekA PICek elmletvel terjedelmes mennyisg irodalom foglalkozik. Itt csak megemltek egy prat:www.t-es-t.hu: Tudomny s Technika

PIC kezd

Knya Lszl: Mikrovezrlk alkalmazstechnikja

Mindenkppen rgd t ezeket, mieltt hozzkezdenl a gyakorlati rszhez.
A PICekhez adatlapokat s minden egyb lerst megtallsz a Microchip honlapjn.
Microchip termkek magyarorszgi forgalmazst a Chipcad Kft. vgzi.
A PICekkel val bartkozshoz elengedhetetlen kzpszint elektronikai ismeretekkel (csak behatrolskpp: tranzisztor, open collector, TTL szintek, RS232) s magabiztos programozsi ismeretekkel rendelkezned. Ha ez megvan, nyitva az t eltted, hogy brmit meg tudj csinlni. Kezdetnek egy 16F877-es PICet ajnlok, 4Mhz-en. PIC fordtkTermszetesen a hatkony kdok rsa itt is assemblyben trtnik, de vsrolhatunk bartsgosabb fordtkat is. Albb felsorolnm a legelterjedtebb fordtkat, a teljessg ignye nlkl.Microchip MPASM: az MPLAB IDE rsze.

GNU PIC ASM (GPASM): a gputils rsze, open source assembly fordt.

Pic Basic Pro: a microEngineering Labs kezdk krben igen kzkedvelt fordtja igen b fggvnyknyvtrral. Ha nem ismered az assemblyt, ezzel kezdj.

P2C Pascal: ezt nem hasznltam, rnzsre egy elgg erletett fordt, csak hogy legyen pascalos is...

CCS C: grafikus IDE-vel elltott magasan optimalizlt C-fordt

Hi-Tech PICC(18): legkedveltebb C fordt, melyhez ltezik egy igen j multitaszk kiegszts is, a Salvo. Sajnos csak DOSos IDE van hozz, de szerintem ilyen kis programok esetben az IDE szksgtelen.

IAR PIC C: IAR C fordtja. Nem tartalmaz IDE-t.

mikroPascal, mikroC s mikroBasic: shareware fordtk.

PIC felprogramozsaEzekbe az IC-kbe valahogy bele kell tenni a programot. Ezt hvjuk a PICek programozsnak. A sokfle programmemris tpus kzl hobbi clokra flash memrisokat clszer vsrolni (lteznek egyszer programozhat, One Time Programmable (OTP) verzisak vagy EEPROMosak, stb.). Rengeteg gyri s otthon is elkszthet programoz ltezik. sszevetve a programozsnak kt fajtja van: tisztn, kvlrl programozs s bootloaderes, nprogramozs. Els esetben bjtrl bjtra te mondod meg, hogy mi legyen az IC-ben. Utbbinl az IC-ben egy program fut, ez a bootloader, mely valamilyen mdon (RS232, I2C, vagy egyszeren csak az egyik lbon) olvassa az adatokat, s ezt rja bele a memriba. Persze a bootloadert az elbbi mdszerrel elzetesen bele kell helyezni a PIC-be. Utna viszont sokkal knnyebb, gyorsabb s egyszerbb a programozs, az IC-t nem kell kivenni a mr ksz ramkrbl sem. A bootloader tipikusan 256 szt foglal el, viszont nem minden tpusnl hasznlhat. A j bootloaderek az els 3 szba egy long jumpot raknak, mely elugrik a tnyleges bootloaderre, mely a programemria vgn helyezkedik el. Ez leellenrzi, hogy a bootloader induljon-e el avagy a PIC-ben lev tnyleges program. Gyri programozkIgen drgk, a legolcsbb Microchip termk mg a PicStart+. Ennek ra is 40000 forint krl van a Chipcadnl. ppen ezrt csak bizonytalan elektronikai tudssal, ellenben sok pnzzel rendelkezk vsroljk meg tapasztalataim szerint (viszont ktsgkvl kevesebb knlds van vele mint egy otthon ptettel). Elnye, hogy mindent programoz. Htrnya, hogy hivatalosan bele kne rakni az IC-t. Lehet trkkzni kbelekkel (5 kbeles ICSP-vel mkdik).
Alternatvja van, sok; melyek mg kszen rendelhetk, viszont korntsem rnek fel az elzvel. Ilyenekrt mr akr 5000 forintrt vagy mg olcsbban is hozz lehet jutni az Interneten.
Kiemelten ajnlom Sisco Benachtl megrendelhet teljesen sszeszerelt, tesztelt s mkdkpes programozt (GTP-USB PLUS), mely USB 2.0-n csatlakozik a szmtgphez (pr msodperc alatt betlti a progit!), nem ignyel kln ramforrst, rengeteg tpust tud programozni, mg I2C FlashROMokat s nhn ATMEL IC-t is. Bvebb inf: perso.wanadoo.es/siscobf/index.html. Otthon kszlt programozk: prhuzamos s soros portEzek otthon forraszgatott s sszelltott programozk, melyek vagy mkdnek vagy nem. Tbbnyire nem szoktak. Viszont kitart bvszkeds, s olyan programozt kapsz, mellyel a bootloaderedet mr begetheted, mg ha csak harmadszorra sikerl is. Ezen bell vannak olyanok, amelyek a PC-bl kijv feszltsggel programoznak (prhuzamos port esetn +5V, soros esetn kb. 12V, laptopokon kevesebb), ezeknek az a htrnyuk, hogy nem felelnek meg a PIC-ek programozsi specifikcijnak, melyek tbbnyire 14-16V-ot rnak el. Ezrt vannak, amelyek kls feszltsgforrst ignyelnek (traf). Ezeket ajnlom, ha ilyeneket szeretnl pteni. Ezek a programozk mind az In Circuit Serial Programming (ICSP) eljrst hasznljk, mely abbl ll, hogy a programoz feszltsget (>13V) az MCLR lbra adjk, majd az RB6 s RB7 lbokon adjk be az rajelet s az adatokat sorosan.
n Oshon programozjt ptettem meg, mely tulajdonkppen David Tait hardvern alapul (a linken - nem tl j - letlt program is van).
Oshon programja elg gagyi, gy ha nem jrsz sikerrel prbld ki mg a ic-prog-ot s a Win PIC-t.
Sajnos Oshon programozja nem mindig mkdik tkletesen (nekem 3 ptsbl valamirt mr egyik sem megy), azrt kiprblhatod a kvetkezket: Ms gprl

Ms prhuzamos porti belltssal (ECP, EPP, SPP stb.)

Rvidebb kbellel

Ms programmal

Ms IC-vel (nekem gy tnt, a 16F84 nem tl ignyes ebbl a szempontbl)

Ms opercis rendszer alatt

Ha tbb Vdd vagy Vss van, rakd fel mindet a fldre s a nullra

Prblj ki ms hex invertereket (Schottky-s, nem Schottky-s)

LVP lbat hzd le a fldre

Fldeld le a prhuzamos porti csatlakoz sszes GND tskjt, s a hzat is

Ha ezek utn sem mkdik, ptsd meg jra, j alkatrszekbl

BootloaderekldrkeyNa ezek j dolgok. ltalnos tjkoztatt ezekrl feljebb olvashatsz. Sokfajta bootloader van. Sajna nem a legjobb a legelterjedtebb, legalbbis itthon. Az els az az, amit Knya knyvhez is adnak. Ez pl. az RB7-es lbon ellenrzi, hogy fel van-e hzva a lb, s ha igen, akkor indul a bootloader. A lbkiosztst (ami nincs a knyvhz mellkelve) a kpen lthatod. A SIGNAL lbat kell pl. az RB7-re ktni. Egy htrnyt mr lthatjuk is: ha lg a levegben a lb, a bootloader indul el a bels felhzellenlls miatt. A letltprogram nem nylt forrskd, gy nem lehet benne kijavtani a hibkat s nem tudjuk fejleszteni. Pl. nem menti el a belltsokat. Ezentl nekem minden msodik alkalmommal befejezi a program letltst s megll 99%-nl, majd 100%-on eszi a CPU-t. Elfordult mr, hogy bizonyos programoknl a programot ugyan letlttte, de valamirt a bootloader nem ette meg (a folyamatosan eg piros LED jelzi a letltn hogy hiba trtnt). Nincs tmogats a klnbz fordtkhoz, hogy mit kell belltani, sokszor patchel programokat kell rni, mg kln. A Hi-Tech PICC fordtt az -ICD paramterrel kell fordtani, majd az els hrom (res) bjtot le kell harapni. Erre rtam egy kis progit, ez az ldrkeyfix (forrskddal). Ami poztivum hogy lltlag a Chipcad 100Ft-rt begeti ezt a bootloadert neked. Ezentl egyszeren hasznlhat, nincs forrasztgats.

Nagyon j alternatvja ennek a www.microchipc.com-on tallhat open source megolds, mely az RS232-t hasznlja tvitelre. Ehhez ugyan kell ptened egy kln ramkrt egy (pl.) MAX232-vel, de megri. Programja intelligens, nem fagy le, s a sebessge tnyleg annyi, amennyit belltasz neki. A hibt a program jelzi vissza, letlts kzben ellenriz, az elz belltsokat elmenti.
max232 kapcsolsMegptve a max232TancsaimStabil tpfeszltsggel dolgozz. Ha megmagyarzhatatlan mkdst tapasztalsz, zavar van a tpban. Ekkor berakhatsz mg prhuzamosan egy 10uF-es elkt, esetleg mg minden Vss s Vdd kz egy 100nF-os monolitikust. Ha lehet, prbld ki programodat szimultorokban is (MPLAB SIM, Oshon Simulator IDE). Ha a lbakat outputknt hasznlod, vigyzz hogy ne vegyl le rla a megengedettnl tbb ramot (tipikusan 25mA). Elg strapabr IC-k, de a nagy gondatlansgot nem szeretik. Az IC-ket vkonyfej csavarhzval vedd ki a tokbl vagy a Bread Board-bl. Mint minden IC-nl, itt is hasznlj IC-aljzatot, ha forrasztasz. PIC linkekwww.nomad.ee/PIC/links.html: David Tait PIC linkjei

www.microchipc.com: igen hasznos C segdletek

www.piclist.com: hatalmas tudstr (sznalmas sajt keresmotorral)

NyktervezsA j marats kulcskrdse a nyktervezs. n az ExpressPCB-t hasznlom nykok tervezsre. Egyszer program, de jobb mint pl. a Circuitmaker TraxMakerje (utbbi elgg bugos szerintem), s mg ingyenes is.
Nyktervezskor (s maratskor) figyelj oda, hogy mikor dolgozol a tkrkppel. Ne az alkatrszek beltetsekor derljn ki, hogy egy tkrkpet marattl...
Sok-sok tancs van, legjobb ha utnanzel a neten, mivel most csak nhny jut itt az eszembe: ne vezesd sokig prhuzamosan a fldet s a tpfeszt, mert ez kapacitst jelent. Ne csinlj les kanyarokat (L-alakban), inkbb grbtsd vagy trd el tbb helyen. A vonalak szlessge legyen fix, ne vastagodjon meg itt-ott. MaratsSokfle maratsi eljrs van. Mindegyikre igaz, hogy a marat anyag (mely sokszor ssavat is tartalmaz!) igen veszlyes. Ezrt krltekinten jrj el.
Legegyszerbb, kiindul mdszer lehet ha a vsrolt nyklemezre indigval tnyomod a tervet, majd alkoholos filccel tbbszr trajzolodot. Clszer a lehet legtbbszr tmenni rajta, mert a mar anyag sokszor a filcbl is mar. Ezutn belerakod a maratfrdbe, melyet ha melegtesz avagy mozgatod benne a lemezt, sokkal gyorsabban megy a folyamat vgbe. Mind a maratanyagot (vas-III-klorid), mind a filcet elektronikai boltokban megkapod. A maratanyagra figyelni kell, ugyanis nem ntheted a lefolyba, mivel azt sztmarja, mg higtva is. Veszlyes hulladkknt kell vele elbnni.
Ha ksz a nykod, esetleg befuttathatod nnal az egszet, gy kzeltvn az rkkvalsg mess vilga fel kedvenc nyklapodat. Persze ez plusz kapacitsok is jelenthet, gy fontold meg. De vehetsz kmiai nozt is.
J lersok: korosprocik.freeweb.hu/NYAKgyartas/nyak.html

http://www.dmaster.hu/pcbmake.htm

Ezek utn (s fleg ha megtapasztalod a marats minden csnjt-bnjt), szreveheted hogy mindez krlmnyes, nehzkes s ktoldali nykok maratsrl mg nem is esett sz, amire valsznleg kicsit bonyolultabb project esetn szksged lesz. Ezrt bzzk sokan a profikra a maratst, viszonylag alacsony ron sok cg elvgzi azt helyetted s teljesen j minsgben.E3, E6, E12, E24 szmozsi sklaEz egy exponencilisan (E) nveked szmozsi skla, amit ellenllsok, kondenztorok szmrtkeihez hasznlnak, azaz ettl eltrek mr specilis alkatrszek, s elg ritkk. Az E utni szm tkp. azt jelzi, hogy hny rtk tartozik a sklba (E24 esetn 24). A ksbbiek magukba foglaljk a korbbiakat is (azaz az E24 az E3, E6, E12 rtkeit is tartalmazza). Ezek az rtkek:E310224768

E6101522334768

E12101215182227333947566882

E24101112131516182022242730333639434751566268758291

Katalgusokwww.geocities.com/waklobe: van minden, csak rekurzvan kiss nehezebb lementeni a globlis hivatkozsok miatt
www.lh-electric.4t.com - audifrekvencis tranzisztorok
razod.free.fr
www.gotronic.fr
www.pemberton.electronics.btinternet.co.uk: elg sok minden van itt
katalog.elektroda.net: adatlapokat is le lehet tlteni elg sok mindenhez, csak sajna egybe lerntani az egszet nem lehet
ftp.jetedata.cz/pub/ham/ knnyen s egyszeren letlthet nagy mennyisg adatlap
www.alldatasheet.com: eddig itt mg mindent megtalltamElektronikai linkekkapcsolasirajz.lap.hu
elektronika.lap.hu
www.hobby-elec.org
www.kpsec.freeuk.com
www.satcure-focus.com
www.elektronline.hu
Vissza a foldalra