programiranje slika. Programiranje pic kontrolera - programi - radio-bes - kućna elektronika


15. studenog 2009. u 14:56 sati

Programiranje mikrokontrolera PIC16/PIC18 u jeziku C. Članak drugi. Osnovne informacije o platformi. Prvi program

  • Programiranje mikrokontrolera

Ako je sve dobro funkcioniralo u prvom članku, dobili smo osnovno programsko okruženje za nastavak učenja.

Kao što sam ranije rekao, za sada ću objasniti na temelju MK PIC16F628A.
Obavezno preuzmite dokumentaciju za to. Preporučeno za pretraživanje - alldatasheet.com
DataSheet - glavni dokument u razvoju koji se temelji na MK.
Preporučam ispisivanje glavnih tablica i odjeljaka radi lakšeg korištenja.

Otvaramo DS.

Najvažnije informacije o kristalu:
- maksimalna radna frekvencija - 20 MHz;
- 2048x14 bitni flash ROM;
- 224 bajta statičkog RAM-a;
- 128 bajtova nepromjenjivog ROM-a;
- 16 dostupnih zaključaka;
- primopredajni modul;
- 3 mjerača vremena.

Ovaj kristal je predstavnik takozvanog srednjeg raspona MK PIC obitelji.

Ukratko opišite što trebate razumjeti.

Memorija podataka uređaji podijeljeni u 4 staklenka.
Banke sadrže registre posebne namjene (SFR) i registre opće namjene (GPR).
SFR - koristi se za upravljanje uređajem i njegovim modulima.
Registri opće namjene predstavljeni su kao statički RAM, gdje možemo pohraniti naše varijable.
Posebni registri zauzimaju 32 početna mjesta u svakoj banci.
LH na stranicama 18-21 prikazuje sve registre posebne namjene. Ispišite ih - dobro će vam doći više puta.

Ovo je prilično obimna tema i nemoguće ju je preskočiti.
S druge strane, dosadno i nezanimljivo.
Pokušajte se nadvladati i pročitajte o organizaciji memorija i registara posebne namjene u LH i Shpaku (spominje se u prvom članku).

I/O portovi.

Na ovaj uređaj dva priključka: PORTA i PORTB.
Svaki port pin se može koristiti izravno kao jednostavan pin ili kao pin drugih MCU modula.
Na samom početku LH-a trebali ste primijetiti da svaki pin, osim glavnog naziva, na primjer, RB1, sadrži i drugi naziv za RX i DT.
Ovdje je RX sekundarna funkcija izlaza - kao ulaz primopredajnika.
No, za sada nećemo dirati periferne module uređaja.

Svaki pin porta može funkcionirati kao ulaz ili kao izlaz.
Na primjer, ako trebamo upaliti LED, tada konfiguriramo pin na koji je spojen kao izlaz i na njemu postavljamo odgovarajuću razinu.
Ali ako trebamo spojiti gumb na port i pročitati činjenicu pritiska, onda ovdje već moramo konfigurirati ovaj izlaz kao ulaz.
Konfiguracija ulaza/izlaza vrši se pomoću registara TRIS.
Ako upišete 1 u odgovarajući bit TRIS registra, tada će ovaj pin postati ulaz, ako je 0 - izlaz (očito zbog sličnosti 1 i ulaza, te 0 i izlaza)
Na primjer:

TRISA=0; // Svi pinovi porta A su izlazi
TRISB=0xff; // Svi pinovi porta B su ulazi
TRISA5 = 1; // 5 pin port A - ulaz. Usput, ne mogu svi prevoditelji izravno pristupiti svakom izlazu.

Nazivi registara mogu se pronaći u mapi HT-PICC\include za odgovarajući kontroler.

Za postavljanje određene razine na izlazu koristite registar PORT.
Na primjer:

PORTA=0; // Svi pinovi priključka A su niski
PORTB=0xff; // Svi pinovi priključka B su visoki
RB5 = 1; // Port B Pin 5 Visok

Tako. Dolazimo do trenutka kada je potrebno napraviti digresiju o samom jeziku C.
Možda ću ovdje napisati mali primjer. Sastavimo. Pokrenimo ga u Proteusu, a o osnovnom jeziku C pisat ću u sljedećem članku.

Napišimo mali program. Treperi LED.
Koristimo prethodno izrađeni projekt, ili kreiramo novi, prema shemi iz prvog članka.

Prvo, uključimo datoteku zaglavlja.


Ne biramo konkretan model, već označavamo pic.h. Ako ga otvorite, vidjet ćemo skriptu za odabir određene datoteke na temelju odabranog uređaja prilikom izrade projekta.
void main (neispravan)
{
dok (1);
}

Na početku pišemo:
TRISA=0; // Port A - svi pinovi su izlazi
PORTA=0; // s logičkom nulom
TRISB = 0; // Port B - svi pinovi su izlazi
PORTB=0; // S logičkom nulom

Idemo na "HT-PICC mapa\samples\delay".
Odatle kopirajte delay.c i delay.h i zalijepite ih u mapu projekta.

Dodajmo redak na početak:
#include "delay.c"
Koristit ćemo funkciju DelayMs(x) za stvaranje pauze između LED prekidača.

Recimo da je LED spojena na RB0.
Da biste ga prebacili, koristit će se logično isključivo "ILI":


Kao rezultat, kod izgleda ovako:
#uključiti #include "delay.c"

Void main (void)
{
TRISA=0;
PORTA=0;
TRISB = 0;
PORTB=0;

dok (1)
{
DelayMs (250); // Pauza na pola sekunde
DelayMs (250);
RB0 ^= 1; // invertiraj izlaz
}
}

Firmware je spreman.
Sada postavimo konfiguracijske bitove.
Klik Konfiguracija -> Konfiguracijski bitovi.
Uklanjamo daw "Konfiguracijski bitovi postavljeni u kodu", budući da nismo ništa postavili u kodu.

Vidimo nekoliko stavki.
Izlažemo kao na ekranu.
Oscilator- HS - kao generator takta koristit će se visokofrekventni kvarcni rezonator.
WatchDog Timer- Isključeno, ako je omogućeno, mikrokontroler će se povremeno resetirati kako bi se izbjegla bilo kakva zamrzavanja. Imamo takvu priliku do ne treba.
Tajmer za napajanje- Omogućeno, MCU će biti u stanju resetiranja sve dok napon napajanja ne dosegne potrebnu razinu praga.
Otkrivanje smeđih boja- Uključeno, resetiranje MK, ako napon napajanja padne ispod određene razine.
Program niskog napona- Onemogućeno, zabranjujemo korištenje niskonaponskog programiranja u krugu MK-a. Ovdje već ovisi o vašem programeru.
Data EE Read Protect- Isključeno, dopuštamo čitanje podataka i EEPROM memorije MK-a.
Code Protect- Isključite, isključite zaštitu koda u MK. Ako je postavljeno na On, tada će biti nemoguće čitati program s MC-a. NAS do ova opcija nije potrebna.

Ponovno pritisnite F10.
Zatvaramo.

Pokrenimo program u Proteusu.
Pokrećemo Proteus ISIS.
Biti u sekciji komponentni način rada klik Odaberite iz knjižnica i pomoću pretraživanja dodajte komponente u obrazac:
- PIC16F628A;
- LED-CRVENA;
- OIE;

Dvaput kliknite na svaki od njih i postavite parametre.
Za MK - odaberite * .hex firmware datoteku iz mape našeg projekta i postavite frekvenciju na 4 MHz.
Za LED-RED odaberite Tip modela - Digitalni.
Za otpornik odaberite otpor od 300 ohma.
Dodajte u obrazac Prizemlje u odjeljku terminalski način rada i povežite se kao na snimci zaslona.

Pritisnite Play - LED bi trebao treptati.

U sljedećem članku pomno ću pogledati jezik C.
Slijedit će članak o periferiji kontrolera i primjerima koda za to.
I nakon toga planiram govoriti o USB-u i PIC-u 18.
Evo plana za sada :-)

Dakle, došlo je vrijeme da proučim mikrokontrolere, a zatim ih programiram, a htio sam i sastaviti uređaje na njima, čije su sheme sada na internetu, pa samo more. Pa našli smo sklop, kupili kontroler, skinuli firmware .... i čime bljesnuti ??? I tu se postavlja pitanje za radioamatera koji počinje svladavati mikrokontrolere - izbor programera! Želio bih pronaći najbolju opciju, u smislu svestranosti - jednostavnosti kruga - pouzdanosti. "Brendirani" programeri i njihovi analozi odmah su isključeni zbog prilično složenog sklopa koji uključuje iste mikrokontrolere koje je potrebno programirati. Odnosno, ispada "začarani krug": da bi se napravio programer, potreban je programer. Tako su potraga i eksperimenti počeli! U početku je izbor pao na PIC JDM. Ovaj programer radi od com port i odatle se hrani. Ova opcija je testirana, samouvjereno sam programirao 4 od 10 kontrolera, s odvojenim napajanjem, situacija se popravila, ali ne mnogo, na nekim računalima je odbijala učiniti bilo što i ne pruža zaštitu od "budala ". Zatim je proučavan programer Pony-Prog. U principu, gotovo isto kao JDM. Pony-prog programer je vrlo jednostavan sklop, napaja se računalnim com portom, u vezi s kojim se na forumima, na Internetu vrlo često postavljaju pitanja o kvarovima pri programiranju jednog ili drugog mikrokontrolera. Kao rezultat toga, odabir je napravljen na modelu "Extra-PIC". Pogledao sam dijagram - vrlo jednostavno, kompetentno! Ulaz je MAX 232, koji pretvara signale serijskog porta RS-232 u signale prikladne za korištenje u digitalnim krugovima s TTL ili CMOS razinama, ne opterećuje COM port računala strujom, budući da koristi radni standard RS232, ne ne predstavlja opasnost za COM port .Evo prvog plusa!
Rad s bilo kojim COM-priključcima, standardnim (±12v; ±10v) i nestandardnim COM-priključcima nekih modela modernih prijenosnih računala s podnapon signalne linije, do ±5v - još jedan plus! Podržani uobičajeni programi IC-PROG, PonyProg, WinPic 800 (WinPic800) i drugi - treći plus!
I sve se napaja vlastitim izvorom energije!
Odlučeno je - moramo skupiti! Tako je u časopisu Radio 2007 broj 8 pronađena modificirana verzija ovog programatora. Omogućio je programiranje mikrokontrolera u dva načina.
Postoje dva načina za postavljanje PICmicro mikrokontrolera u način programiranja:
1. S uključenim naponom napajanja Vcc, podignite napon Vpp (na -MCLR pinu) s nule na 12V
2. S isključenim Vcc, podignite Vpp s nule na 12V, a zatim uključite Vcc
Prvi način rada je uglavnom za uređaje ranog razvoja, nameće ograničenja na konfiguraciju pina -MCLR, koji u ovom slučaju može poslužiti samo kao ulaz za signal inicijalne postavke, a u mnogim mikrokontrolerima je moguće okrenuti ovaj pin u redovitu liniju jedne od luka. Ovo je još jedan plus ovog programera. Njegov dijagram je prikazan u nastavku:

Veći
Sve je sastavljeno na matičnoj ploči i testirano. Sve radi dobro i stabilno, nisu primijećeni kvarovi!
Izvučen je pečat za ovog programera.
depositfiles.com/files/mk49uejin
sve je sastavljeno u otvorenom kućištu, čija je fotografija ispod.




Spojni kabel izrađen je neovisno od segmenta kabela s osam jezgre i standardnih konektora Komovsky, ovdje neće raditi nulti modemski konektori, upozoravam vas odmah! Sastavljanje kabela treba pažljivo poduzeti, odmah se riješite glavobolje u budućnosti. Duljina kabela ne smije biti veća od jednog i pol metra.
Fotografija kabela


Dakle, programator je sastavljen, kabel također, došao je red na provjeru cjelokupne ekonomije na operativnost, traženje propusta i grešaka.
Prije svega, instalirajte program IC-prog, koji se može preuzeti s web stranice programera www.ic-prog.com. Raspakirajte program u poseban direktorij. Rezultirajući direktorij trebao bi sadržavati tri datoteke:
icprog.exe - datoteka ljuske programera.
icprog.sys - upravljački program potreban za rad pod Windows NT, 2000, XP. Ova datoteka uvijek mora biti u direktoriju programa.
icprog.chm - datoteka pomoći.
Instaliran, sada bi ga bilo potrebno konfigurirati.
Za ovo:
1. (Samo za Windows XP): desnom tipkom miša kliknite datoteku icprog.exe. Svojstva >> Kartica Kompatibilnost >> Označite okvir pored "Pokreni ovaj program u načinu kompatibilnosti za:" >> odaberite "Windows 2000".
2. Pokrenite datoteku icprog.exe. Odaberite "Postavke" >> "Opcije" >> kartica "Jezik" >> postavite jezik na "ruski" i kliknite "U redu".
Slažete se s izjavom "Morate ponovno pokrenuti IC-Prog sada" (kliknite "U redu"). Shell programera će se ponovno pokrenuti.
Postavke" >> "Programer

1. Provjerite postavke, odaberite COM port koji koristite, kliknite "U redu".
2.Sljedeće, "Postavke" >> "Opcije" >> odaberite karticu "Općenito" >> potvrdite okvir za "Uključeno". NT/2000/XP drajver" >> Kliknite "U redu" >> ako upravljački program prije nije bio instaliran na vašem sustavu, u prozoru koji se pojavi "Potvrdi" kliknite "U redu". Upravljački program će se instalirati i ljuska programatora će se ponovno pokrenuti.
Bilješka:
Za vrlo brza računala možda će biti potrebno povećati postavku I/O Latency. Povećanje ovog parametra povećava pouzdanost programiranja, međutim, povećava se i vrijeme utrošeno na programiranje mikrosklopa.
3. "Postavke" >> "Opcije" >> odaberite karticu "I2C" >> potvrdite okvire: "Omogući MCLR kao VCC" i "Omogući blok snimanje". Kliknite "U redu".
4. "Postavke" >> "Opcije" >> odaberite karticu "Programiranje" >> poništite stavku: "Provjeri nakon programiranja" i potvrdite okvir "Provjeri tijekom programiranja". Kliknite OK.
Ovdje je postavljeno!
Sada bismo željeli testirati programator na mjestu s IC-progom. A ovdje je sve jednostavno:
Zatim, u programu IC-PROG, u izborniku pokrenite: Postavke >> Testiranje programatora

Prije izvršavanja svake stavke metodologije testiranja, ne zaboravite postaviti sva "polja" na njihov izvorni položaj (svi "kvačice" su poništeni), kao što je prikazano na gornjoj slici.
1. Postavite "kvačicu" u polje "Uključeno. Izlaz podataka”, istovremeno bi se u polju “Unos podataka” trebala pojaviti “kvačica”, a na kontaktu (DATA) konektora X2 treba postaviti razinu dnevnika. "1" (najmanje +3,0 volta). Sada zatvorite jedan kontakt (DATA) i kontakt (GND) konektora X2, dok bi oznaka u polju "Unos podataka" trebala nestati dok su kontakti zatvoreni.
2. Prilikom postavljanja "kvačice" u polju "Uključeno. Sat ", na kontaktu (CLOCK) konektora X2, mora se postaviti razina dnevnika. "jedan". (ne manje od +3,0 volta).
3. Prilikom postavljanja "kvačice" u polju "Uključeno. Reset (MCLR) ", na pin (VPP) konektora X3 treba postaviti razinu od +13,0 ... +14,0 volti, a LED D4 (obično crveno) će zasvijetliti. Ako je prekidač načina rada postavljen na položaj 1 , HL3 LED će zasvijetliti
Ako tijekom testiranja bilo koji signal ne prođe, trebali biste pažljivo provjeriti cijeli put tog signala, uključujući kabel koji se spaja na COM port računala.
Testiranje podatkovnog kanala EXTRAPIC programatora:
1. 13 izlaz DA1 čipa: napon od -5 do -12 volti. Prilikom postavljanja "kvačice": od +5 do +12 volti.
2. 12 izlaz Da1 čipa: napon +5 volti. Kada označite okvir: 0 volti.
3. 6 izlazni čip DD1: napon 0 volti. Prilikom postavljanja "krpelja": +5 volti.
3. 1 i 2 izlazni čip DD1: napon 0 volti. Prilikom postavljanja "krpelja": +5 volti.
4. 3 izlazni čip DD1: napon +5 volti. Kada označite okvir: 0 volti.
5. 14 izlaz DA1 čipa: napon od -5 do -12 volti. Prilikom postavljanja "kvačice": od +5 do +12 volti.
Ako su sva testiranja bila uspješna, programator je spreman za rad.
Za spajanje mikrokontrolera na programator možete koristiti prikladne utičnice ili napraviti adapter na bazi ZIF utičnice (s nultom silom pritiska), na primjer, kao ovdje radiokot.ru/circuit/digital/pcmod/18/.
Sada nekoliko riječi o ICSP-u - programiranju unutar kruga
PIC kontroleri.
Kada koristite ICSP na ploči uređaja, potrebno je predvidjeti mogućnost povezivanja programatora. Prilikom programiranja pomoću ICSP-a, 5 signalnih linija mora biti spojeno na programator:
1. GND (VSS) - zajednička žica.
2. VDD (VCC) - plus napon napajanja
3. MCLR" (VPP) - ulaz za resetiranje mikrokontrolera / ulaz za programiranje napona
4. RB7 (DATA) - dvosmjerna podatkovna sabirnica u načinu programiranja
5. RB6 (SAT) Ulaz sata u načinu programiranja
Preostali pinovi mikrokontrolera se ne koriste u načinu programiranja unutar kruga.
Opcija za spajanje ICSP-a na PIC16F84 mikrokontroler u DIP18 paketu:

1. Linija MCLR" je odvojena od sklopa uređaja pomoću kratkospojnika J2, koji se otvara u načinu programiranja unutar kruga (ICSP), prenoseći MCLR izlaz na isključivu kontrolu programatora.
2. VDD linija u načinu ICSP programiranja je isključena iz kruga uređaja pomoću kratkospojnika J1. To je potrebno kako bi se izbjegla potrošnja struje iz VDD linije od strane kruga uređaja.
3. Linija RB7 (dvosmjerna podatkovna sabirnica u načinu programiranja) izolirana je strujom iz kruga uređaja s otpornikom R1 nominalne vrijednosti od najmanje 1 kOhm. U tom smislu, maksimalna ulazna / odvodna struja koju osigurava ovaj vod bit će ograničena otpornikom R1. Ako je potrebno osigurati maksimalnu struju, otpornik R1 mora se zamijeniti (kao u slučaju VDD) kratkospojnikom.
4. Linija RB6 (PIC sinkronizacijski ulaz u načinu programiranja), kao i RB7, strujno je izolirana iz kruga uređaja otpornikom R2, nominalne vrijednosti od najmanje 1 kOhm. Stoga će maksimalna struja potonuća/poniranja koju osigurava ovaj vod biti ograničena otpornikom R2. Ako je potrebno osigurati maksimalnu struju, otpornik R2 mora se zamijeniti (kao u slučaju VDD) kratkospojnikom.
Položaj ICSP pinova za PIC kontrolere:


Ovaj dijagram je samo za referencu, bolje je razjasniti zaključke programiranja iz podatkovne tablice na mikrokontroleru.
Sada razmotrite firmware mikrokontrolera u programu IC-prog. Razmotrit ćemo primjer konstrukcije odavde rgb73.mylivepage.ru/wiki/1952/579
Ovdje je dijagram uređaja


ovdje je firmware
Treperi PIC12F629 kontroler. Ovaj mikrokontroler za svoj rad koristi osccal konstantu – to je heksadecimalna vrijednost kalibracije internog oscilatora MK-a, s kojom MK javlja vrijeme izvršavanja svojih programa, koje se bilježi u posljednjoj ćeliji podataka o vrhuncu. Ovaj mikrokontroler povezujemo s programatorom.
Snimka zaslona u nastavku prikazuje redoslijed radnji u programu IC-prog crvenim brojevima.


1. Odaberite vrstu mikrokontrolera
2. Pritisnite gumb "Pročitaj čip".
U prozoru "Programski kod" posljednja ćelija bit će naša konstanta za ovaj kontroler. Svaki kontroler ima svoju konstantu ! Nemojte ga brisati, zapišite na papir i zalijepite na čip!
Idemo dalje


3. Pritisnite gumb "Otvori datoteku ...", odaberite naš firmware. U prozoru programski kod pojavit će se kod firmvera.
4. Spuštamo se do kraja koda, desnom tipkom miša kliknemo na zadnju ćeliju i u izborniku odaberemo "edit area", unesemo vrijednost konstante koju ste zapisali u polje "Hexadecimal", kliknite "OK" .
5. Kliknite "programiraj čip".
Proces programiranja će započeti, ako je sve prošlo dobro, program će prikazati odgovarajuću obavijest.
Izvadimo čip iz programatora i ubacimo ga u sastavljeni izgled. Uključujemo struju. Pritisnemo tipku za pokretanje Ura radi! Evo videa bljeskalice u akciji
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
Složio sam to. Ali što ako imamo datoteku izvornog koda u asm asembleru, a trebamo hex datoteku firmware-a? Ovdje je potreban prevodilac. i to je - ovo je Mplab, u ovom programu možete i pisati firmware i kompajlirati. Ovdje je prozor kompajlera


Instalirajte MPlab
Program MPASMWIN.exe nalazimo u instaliranom Mplab-u, obično se nalazi u mapi - Microchip - MPASM Suite - MPASMWIN.exe
Pokrenimo ga. U prozoru (4) Browse nalazimo naš (1) .asm izvorni kod, u prozoru (5) Procesor biramo naš mikrokontroler, kliknemo Assemble i vaš firmware će se pojaviti u istoj mapi u kojoj ste naveli izvorni kod. HEX To je to!
Nadam se da će ovaj članak pomoći početnicima u svladavanju PIC kontrolera! Sretno!

Kada se naprave sklopovi, potrebno je da netko ili nešto nadzire izvođenje potrebnih radnji. Za osobu je to prilično problematično, jer morate koristiti značajan broj različitih elemenata koji vam omogućuju da kontrolirate njihov rad (tranzistori, otpornici, tiristori, diode, kondenzatori i drugi). Ali svi složeni i veliki krugovi mogu se kontrolirati pomoću kontrolera (mikrokontrolera). Što su oni bit će opisani koristeći PIC obitelji kao primjer. Dakle, za lutke? Koja je njihova shema i gdje se koriste.

Što je PIC mikrokontroler

PIC kontroler (ili mikrokontroler) je sredstvo za automatizaciju određenih radnji pomoću unaprijed pripremljenog programa. Značajka predstavnika ove linije proizvoda je jednostavnost programiranja i dostupnost svih potrebnih funkcija za rad. Ocrtavajući njegov dizajn, treba napomenuti da sadrži samo jedan kristal silicija (ovo je karakteristično obilježje svih mikrokontrolera). Osim toga, PIC kontroler ima određeni broj nogu. Neki od njih se mogu koristiti kao logički ulazi, neki kao izlazi, ostali se koriste u oba smjera. Noge mogu biti digitalne ili analogne.

Velika većina PIC kontrolera zahtijeva stabilan napon od 5V za rad. To mu je dovoljno da radi u svom uobičajenom načinu rada i izvršava program koji mu je postavljen. izravno s računala nije moguće. U tu svrhu koristi se programator.

Obitelji kontrolora

PIC kontroler ne postoji u jednoj instanci. Proizvođač proizvodi značajan raspon mikrokontrolera, od kojih svaki ima svoje karakteristike, mogućnosti i potencijalne primjene. Broj samih obitelji prilično je velik i ovisi o klasifikacijskom obilježju, koje se uzima kao glavno. Stoga je vrijedno izvijestiti samo o glavnoj klasifikaciji, u kojoj postoje samo tri obitelji: 8-, 16- i 32-bitna. Oni su pak podijeljeni na druge, ali budući da same obitelji nisu tema članka, o njima se neće govoriti.

Gdje je primjenjivo

Zbog svoje svestranosti, PIC kontroler se može koristiti gotovo svugdje. Sami mikrokontroleri se mogu naći u hladnjacima, televizorima, perilice rublja. Ali PIC linija proizvoda ima osobitost da su sklopovi bazirani na PIC-u popularni među radioamaterima i samoukim robotičarima. Uz njihovu pomoć možete jednostavno konfigurirati rad čvora ili cijelog uređaja. Takvoj popularnosti pridonose razumna cijena, jednostavnost programiranja i značajna količina obrazovnog materijala.

PIC kontroler možete koristiti prilikom izrade robotske ruke i u drugim zanatima koji se mogu napraviti uz skroman proračun. Može se koristiti i za nešto industrijsko - tema izrade automatskih domaćih strojeva kojima upravlja mikrokontroler je prilično popularna. Raspon uporabe je širok, a kompetentnim pristupom može se ispuniti gotovo svaki cilj, pa se sklopovi na PIC kontrolerima mogu vidjeti ne samo na amaterskim kreacijama.

Softver PIC kontrolera

Minimalni potrebni softver je notepad. Ali ipak, zbog besplatne distribucije, možete koristiti i softverski alat MPLAB koji nudi proizvođač. Točnije, linija softverskih alata (razvojna okruženja, kompajleri) MPLAB. Zbog politike tvrtke, distribuira se besplatno, ali ima određena ograničenja. Dakle, s kratkoročnom demo verzijom možete isprobati sve značajke, ali nakon što završi, funkcionalnost programa će biti smanjena. Punopravni program sadrži značajne alate koji olakšavaju stvaranje programa, povoljno traženje različitih problematičnih područja i optimiziranje koda. Ovisno o verziji, značajka optimizacije koda može se ukinuti ili se broj kontrolera koje program podržava može smanjiti. Istine radi, vrijedi reći da tvrtka podršku prepušta isključivo najpopularnijim predstavnicima.

Tu je i broj softver koje pružaju druge tvrtke. Općenito, njihova je funkcionalnost slična, ali postoje razlike. Dakle, mnogi izražavaju nezadovoljstvo što MPLAB ima nelojalan dizajn prema korisnicima. Stoga se proizvođači oslanjaju na očuvanje dotjeranih funkcija i praktičnost rada sa svojim softverom.Programi za PIC kontrolere vrlo su raznoliki, pa je to uvelike stvar ukusa.

Izrada programa za PIC kontroler

Možete stvoriti poseban program pomoću odgovarajućeg softvera, pa čak i u jednostavnoj bilježnici. Ova mogućnost postoji zbog činjenice da radi s programskim jezicima kao što su asembler i C. Glavna razlika leži u količini napisanih informacija i jednostavnosti postavljanja podataka. Čuli ste puno o složenosti C-a, ali asembler je još složeniji i zahtijeva pažljiviji pristup.

Dakle, prilikom izrade programa morate odrediti za koji je kontroler namijenjen. Možda će biti potrebno napraviti brojne prilagodbe, ali one se moraju provesti ako imate iskustva ili samopouzdanja, jer pogreške mogu dovesti do toga da se mikrokontroleri pretvore u obične komade plastike i željeza.

Programiranje s programatorom

Ali kako prenijeti razvijeni program na sam mikrokontroler? Kako se vrši programiranje mikrokontrolera? Posebno za tu svrhu postoje posebni uređaji - programeri. Oni šalju signale mikrokontroleru koji mijenjaju ćelije u memoriji u skladu s programom. Da biste pokrenuli proces prijenosa podataka, trebate umetnuti mikrokontroler u programator i, zauzvrat, spojiti ga na računalo. Zatim, pomoću softvera, trebali biste pokrenuti firmware. Obično programiranje PIC kontrolera traje između trideset sekundi i dvije minute.

Vrste programera

Koji programator odabrati za pisanje programa u mikrokontroler? Uobičajeno se mogu razlikovati tri vrste: domaće, od proizvodne tvrtke i tvornice od drugih tvrtki. Korištenje svakog od njih ima svoje karakteristike.

Dakle, domaći programeri su prilično jeftini. Ali njihova je upotreba ispunjena činjenicom da lako mogu pretvoriti mikrokontroler u komad plastike i željeza. A programski mikrokontroleri se u takvim slučajevima mogu pretvoriti u neugodne posljedice u vidu strujnog udara, stoga treba poštivati ​​sigurnosne mjere. Osim toga, ako to radite sami od nule, često ćete dobiti proizvod s prilično ograničenim mogućnostima u pogledu promjene predmeta rada. No na webu postoji značajan broj tuđih rješenja za ovaj problem koji vam vjerojatno neće stvarati probleme.

Originalni programator proizvođača moći će kvalitetno odraditi svoj posao za bilo koji mikrokontroler. Na njega postoji garancija, a ako nakon primitka ne radi, onda ga nije problem zamijeniti. Ali u redoslijedu stvari, kada se firmware PIC kontrolera izvodi bez problema.

Ali prilično visoka cijena ga sprječava da ga nabavi.

Programeri koje su objavile druge tvrtke imaju prilično širok raspon objekata s kojima rade. Njihova značajka je niska cijena i/ili mogućnost rada s mikrokontrolerima koji nisu PIC. Postoje i uistinu univerzalna "čudovišta" koja mogu pružiti razne vrste posla, ali zbog potrebe stvaranja velikog broja priključaka njihova cijena nije niska.

Shematske značajke

I na kraju, nekoliko riječi o shemama slika. Noge bi se trebali voditi na temelju popratne dokumentacije, budući da se mikrokontroleri često shematski razlikuju od stvarnih zaključaka. Glavna stvar u takvim slučajevima su potpisani zaključci i na njima se treba voditi pri izradi uređaja.

Nedavno sam odlučio sastaviti uređaj na PIC mikrokontroleru, ali me iz nepoznatih razloga Extra-PIC programator odbio. Najvjerojatnije je čip izgorio. MAX232, to se već jednom dogodilo. Bez razmišljanja, pronašao sam na Internetu jednostavan programski sklop, izoštren za IC-Prog i koji radi kroz COM luka.
Ploča mora biti zrcaljena prilikom ispisa. Inače će ploče morati biti zalemljene sa strane staza.


Zatim sam izbušio rupe i počeo lemiti dijelove. Najveći problem su bile zener diode. Počeo sam tražiti zener diode na ploči s CRT monitora. Na ploči su potpisani kao ZD (Zener dioda). Naravno, njihove oznake su nerazumljive i ne zna se gdje i kako tražiti. Za određivanje koliko volti zener dioda može se sastaviti jednostavan krug.


Voltmetar će točno pokazati koliko volti ima zener dioda. Na tako jednostavan način pronašao sam približne zener diode po nominalnoj vrijednosti. Umjesto 5,6V ugradio sam 6,2V, umjesto 12,6V ugradio sam 2 zener diode u seriji 6,2+6,2=12,4V .


Tranzistor se može staviti KT315. stavio sam se C945. Diode su također bilo koje, zalemio sam sva 3 kom. s diodnog mosta iste ploče s monitora. Vrijednost kondenzatora također nije kritična, ali sam ih postavio na nominalnu vrijednost.

Malo o crvenim mrljama na pločama. Ove noge se uopće ne lemljuju na pločama. Gotov uređaj izgleda ovako:


Utičnice su odlučile ne lemiti sve, jer. Trebao sam samo bljeskati PIC16F628A. Nakon lemljenja morate konfigurirati program. Mi ćemo flashati IC-Prog. Preuzmite program, raspakirajte iz arhive, Sve datoteke moraju biti u istoj mapi!

1) Ako koristite Windows NT, 2000 ili XP, desnom tipkom miša kliknite datoteku icprog.exe. " Svojstva" >> kartica " Kompatibilnost" >> Postavite potvrdni okvir na " Pokrenite program u načinu kompatibilnosti za:" >>
odaberite "Windows 2000".

2) Pokrećemo program. Ako je već na ruskom - ništa nije potrebno, prijeđite na korak 3 .

Ako je program na engleskom, pritisnite " Postavke" >> "Mogućnosti" >> kartica " Jezik" >> postavi jezik " ruski i kliknite "U redu".
Slažem se s tvrdnjom Sada morate ponovno pokrenuti IC-Prog" (pritisnite " U redu"). Shell programera će se ponovno pokrenuti.

3) Sada morate konfigurirati programator. kliknite " Postavke" >> "programer". Provjerite postavke, odaberite COM port koji koristite, kliknite " U redu".


Za vrlo "brza" računala možda će biti potrebno povećati postavku I/O Latency. Povećanje ovog parametra povećava pouzdanost programiranja, međutim, povećava se i vrijeme utrošeno na programiranje mikrosklopa.

4) Samo za korisnike Windows NT, 2000 ili XP. kliknite " Postavke" >> "Mogućnosti" >> odaberite karticu " Općenito" >> potvrdite okvir na " Na NT/2000/XP drajver" >> kliknite " U redu" >> ako upravljački program nije ranije instaliran na vašem sustavu, u prozoru koji se pojavi " Potvrdite" kliknite "U redu". Upravljački program će se instalirati i ljuska programatora ponovno će se pokrenuti.

5) Kliknite ponovo" Postavke" >> "Mogućnosti" >> odaberite karticu " I2C" >> postavite potvrdne okvire na stavkama: " Omogućite MCLR kao VCC"i" Omogući snimanje blokova". Kliknite " U redu".

6) "Postavke" >> "Mogućnosti" >> odaberite karticu " Programiranje" >> poništite okvir: " Provjerite nakon programiranja"i označite okvir" Provjera programiranja". Kliknite " U redu".


Gotovo, sada je program potpuno spreman za rad s programatorom. Povezujemo naš programer na COM port, odaberite naš mikrokontroler u programu, otvorite firmware i programirajte bilo koji MK serije PIC. Sretno svima u radu s programatorom i kontrolerima!

PIC kontroleri i dalje su popularni zbog niske cijene, male snage, kompaktnih sustava koji zahtijevaju malo kontrole. Ovi kontroleri omogućuju zamjenu hardverske logike fleksibilnim softverom s kojim je u interakciji vanjskih uređaja kroz dobre luke.

Minijaturni PIC kontroleri su dobri za izgradnju pretvarača serijskih podatkovnih sučelja, za implementaciju funkcija "prijem - obrada - prijenos podataka" i jednostavnih regulatora automatskih upravljačkih sustava.

Microchip distribuira MPLAB, besplatni IDE za uređivanje i otklanjanje pogrešaka programa koji zapisuje binarne datoteke u PIC mikrokontroleri preko programera.

Interakcija MPLAB-a i Matlab/Simulink-a omogućuje razvoj programa za PIC kontrolere u okruženju Simulink - grafička simulacija i analiza dinamičkih sustava. Ovaj rad govori o alatima za programiranje PIC kontrolera: MPLAB, Matlab/Simulink i PIC-KIT3 programator u sljedećim odjeljcima.

Karakteristike minijaturnog PIC kontrolera PIC12F629
Integrirano razvojno okruženje MPLAB IDE
Povezivanje Matlaba/Simulinka na MPLAB
Spajanje programatora PIC-KIT3

Specifikacije minijaturnog PIC kontrolera

Obitelj PIC12xxx sadrži kontrolere u minijaturnom 8-pinskom kućištu s integriranim generatorom takta. Kontroleri imaju RISC arhitekturu i omogućuju izvršenje većine procesorskih instrukcija u jednom strojnom ciklusu.

Kao primjer, ispod su specifikacije PIC12F629, jeftinog kompaktnog 8-bitnog kontrolera s višenamjenskim priključcima, malom potrošnjom energije i širokim rasponom napajanja.

Arhitektura: RISC
Napon napajanja VDD: 2.0V do 5.5V (< 6,5В)
Potrošnja:
- <1,0 мА @ 5,5В, 4МГц
- 20 µA (tip) @ 32 kHz, 2,0 V
- <1,0 мкА (тип) в режиме [e-mail zaštićen].0V
Rasipana snaga: 0,8W
Višenamjenski I/O kanali: 6/5
Maksimalna izlazna struja GPIO portova: 125mA
Struja kroz programibilna povlačenja internog porta: ≥50 (250) ≤400 µA @ 5,0 V
Kontrolni bit: 8
Frekvencija takta iz vanjskog generatora: 20 MHz
Vrijeme strojnog ciklusa: 200 ns
Frekvencija takta iz internog RC oscilatora: 4 MHz ±1%
Vrijeme ciklusa stroja: 1µs
FLASH programska memorija: 1K
Broj ciklusa brisanja/pisanja: ≥1000
RAM memorija podataka: 64
EEPROM memorija podataka: 128
Broj ciklusa brisanja/pisanja: ≥10K (-40°C ≤TA≤ +125°C)
Hardverski registri posebne namjene: 16
Popis naredbi: 35 instrukcija, sve naredbe se izvode u jednom strojnom ciklusu,
osim naredbi za skok koje se izvode u 2 ciklusa
Hardverski stog: 8 razina
Tajmer/brojač TMR0: 8-bitni s predskalerom
Tajmer/brojač TMR1: 16-bitni s predskalerom

Dodatne mogućnosti:
Poništavanje po uključenju (POR)
Tajmer za resetiranje (PWRT) mjerač vremena čekanja početka generatora (OST
Resetiranje podnapona (BOD)
Watchdog timer WDT
Multipleksirani izlaz -MCLR
Prekidni sustav za promjenu razine signala na ulazima
Individualno programabilni pull-up otpornici za svaki ulaz
Programabilna zaštita ulaza
SLEEP način rada niske snage
Odabir načina rada generatora takta
ICSP programiranje unutar kruga pomoću dva pina
Četiri prilagođena ID-a ćelije

Maksimalna radna temperatura za E verziju (prošireni raspon) od -40°C do +125°C;
Temperatura skladištenja od -65°C do +150°C.

Tehnologija CMOS kontrolera omogućuje potpuno statičan način rada, u kojem zaustavljanje generatora takta ne dovodi do gubitka logičkih stanja unutarnjih čvorova.
Mikrokontroler PIC12F629 ima 6-bitni GPIO I/O port. Jedan GP3 pin GPIO porta radi samo kao ulaz, preostali pinovi se mogu konfigurirati da rade i kao ulaz i kao izlaz. Svaki GPIO pin ima pojedinačni bit za omogućavanje prekida za promjenu razine signala na ulazima i bit za omogućavanje internog pull-up otpornika.

Integrirano razvojno okruženje MPLAB IDE

MPLAB IDE - besplatno integrirano okruženje za razvoj softvera za PIC mikrokontrolere uključuje alate za kreiranje, uređivanje, otklanjanje pogrešaka, prevođenje i povezivanje programa, pisanje strojnog koda u mikrokontrolere putem programera.

Besplatne verzije MPLAB-a (uključujući MPLAB 8.92) pohranjene su na web-mjestu Microchipa u odjeljku "PREUZMI ARHIVU".

Napravite projekt

Primjer kreiranja programa programa PIC kontrolera u MPLAB okruženju uključuje sljedeće korake.

1. Pozivanje voditelja projekta.

2. Odaberite vrstu PIC mikrokontrolera.


3. Izbor kompajlera, na primjer, Microchip MPASM za asembler.


4. Odabir puta do direktorija projekta (gumb Browse...) i unos naziva projekta.

5. Prilaganje datoteka projektu u prozoru Čarobnjak za projekte → Četvrti korak može se izostaviti. To se može učiniti kasnije, unutar aktivnog projekta. Tipka Next otvara sljedeći prozor.

6. Završetak izrade projekta (ključ za završetak).

Kao rezultat kreiranja projekta FirstPrMPLAB, MPLAB sučelje poprima oblik prikazan na sl. jedan.


Riža. jedan. MPLAB v8.92 sučelje okruženja i predložak projekta.

Izrada programske datoteke
Program se može izraditi pomoću bilo kojeg uređivača teksta. MPLAB ima ugrađen uređivač koji pruža niz prednosti, na primjer, on-line leksičku analizu izvornog teksta, kao rezultat koje se u tekstu ističu rezervirane riječi, konstante, komentari, korisnički definirana imena.

Kreiranje programa u MPLAB-u može se izvršiti sljedećim redoslijedom.

1. Otvorite uređivač programa: izbornik → Datoteka → Novo. U početku je program dobio naziv Untitled.

2. Upišite ili kopirajte program, na primjer, u asembleru.


Riža. 2. Primjer najjednostavnijeg programa (u asembleru) za izlaz signala kroz portove kontrolera GP0, GP1, GP2, GP4, GP5 na maksimalnoj frekvenciji.

Upisivanjem '1' u TRISIO registarski bit postavlja se odgovarajući izlazni međuspremnik u 3. stanje, u kojem slučaju GP port može raditi samo kao ulaz. Postavljanje TRISIO na nulu postavlja GP port na izlaz.

Bilješka. Prema specifikaciji PIC12F629, GP3 port mikrokontrolera radi samo kao ulaz (odgovarajući bit TRISIO registra nije resetiran - uvijek je u '1').

TRISIO i GPIO registri su u različitim bankama memorijskog područja. Prebacivanje banke vrši se bitom 5 STATUS registra.

Svaki program na asembleru počinje direktivom org i završava direktivom end. Prijelaz goto Metka uzrokuje da program prolazi kroz petlju.

Program (slika 2) koristi sljedeću notaciju.

Direktiva LIST - Dodjela tipa kontrolera
__CONFIG direktiva - postavljanje bitova konfiguracije kontrolera
Direktiva eq - dodjeljivanje numeričke vrijednosti
Direktiva org 0 - početak izvršavanja programa od adrese 0
bsf naredba - postavlja bit navedenog registra na 1
Naredba bcf - resetuje bit navedenog registra na 0
movlw naredba - upisuje konstantu u W registar
movwf naredba - kopira sadržaj registra W u navedeni registar
goto naredba - omogućuje prijelaz bez uvjeta na redak s oznakom
Kraj direktiva - kraj programa

Postavljanje potrebne konfiguracije mikrokontrolera
Konfiguracija mikrokontrolera PIC12F629 ovisi o postavkama konfiguracijske riječi (2007h), koja se može postaviti u programu putem __CONFIG direktive.

Izravno ili putem MPLAB prozora: izbornik → Konfiguriraj → Konfiguracijski bitovi:

Gdje:

Bit 2-0- FOSC2:FOSC0. Odabir sata
111 - Vanjski RC generator. Spojen na pin GP5. GP4 radi kao CLKOUT
110 - Vanjski RC generator. Spojen na pin GP5. GP4 radi kao I/O
101 - Interni RC oscilator 4MHz. GP5 radi kao I/O. GP4 - kao CLKOUT
100 - Interni RC oscilator 4MHz. GP5 i GP4 djeluju kao I/O
011 - EC generator. GP4 radi kao I/O. GP5 - kao CLKIN
010 - HC generator. Rezonator se spaja na GP4 i GP5
001 - XT generator. Rezonator se spaja na GP4 i GP5
000 - LP generator. Rezonator se spaja na GP4 i GP5

Bit 3- WDTE: postavka Watchdog timera
1 - WDTE omogućen
0 - WDTE onemogućen

Watchdog timer sprječava zamrzavanje mikrokontrolera - ponovno pokreće program nakon određenog vremenskog razdoblja ako mjerač vremena nije resetiran. Razdoblje timera je postavljeno u registru OPTION_REG. Resetiranje watchdog timera se poziva naredbom CLRWDT.

Bit 4- PWRTE: Omogućavanje timera uključivanja:
1 - PWRT onemogućen
0 - PWRT omogućen

Tajmer odgađa mikrokontroler u stanju resetiranja kada se primijeni VDD napajanje.

Bit 5- MCLR: odabir načina izlaza GP3/-MCLR
1 - radi kao -MCLR
0 - radi kao GP3 I/O port

Bit 6- BODEN: Omogućite resetiranje podnapona (obično< 2.0В)
1 - BOR resetiranje dopušteno
0 - BOR resetiranje je onemogućeno, mjerač vremena se automatski uključuje

Kada je omogućeno BOR resetiranje, PWRT timer je automatski omogućen.

Bit 7- .CP: Bit zaštite programske memorije od čitanja od strane programatora
1 Zaštita isključena
0 Zaštita je omogućena

Kada je zaštita isključena, briše se cijela programska memorija.

bit 8- .CPD: EPROM zaštitni bit memorije podataka
1 Zaštita isključena
0 Zaštita je omogućena

Nakon što se zaštita isključi, sve informacije će biti izbrisane.

Bit 11-9- Ne koristi se: čita se kao "1".

Bit 13-12- BG1:BG0. Isključivanje Reset kalibracijskih bitova
00 - donja granica kalibracije
11 - gornja granica kalibracije


Dodavanje programa projektu

Primjer dodavanja programa projektu prikazan je na (slika 3).


Riža. 3. Dodavanje programa FirstPrMPLAB.asm projektu FirstPrMPLAB.mcp

Kompilacija

Da biste stvorili binarnu datoteku s hex ekstenzijom za firmware mikrokontrolera, trebate kompajlirati projekt. Kompilacija se pokreće naredbom izbornika → Projekt → Izgradi sve. Rezultati kompilacije mogu se vidjeti u prozoru Output (Slika 1). Ako u programu nema grešaka, prevodilac izdaje poruku o uspješnom prevođenju: BUILD SUCCEEDED, HEX datoteka za pokretanje može se naći u radnom direktoriju:

Otklanjanje pogrešaka programa

Otklanjanje pogrešaka programa u MPLAB IDE okruženju može se izvesti pomoću MPLAB REAL ICE hardverskog emulatora ili MPLAB SIM softverskog simulatora. Lansiranje potonjeg izvodi se kao što je prikazano na sl. 4.


Riža. 4. Povezivanje s MPLAB SIM simulatorom za otklanjanje pogrešaka programa.

Nakon pokretanja debuggera, kartica MPLAB SIM pojavljuje se u prozoru Output (slika 1), gdje MPLAB prikazuje trenutne informacije o debuggeru. Naredbe debuggera (slika 5) postaju aktivne nakon pokretanja.


Riža. pet. Naredbe za ispravljanje pogrešaka.

Naredbe za ispravljanje pogrešaka:

Pokreni - Kontinuirano izvršavanje programa do točke prekida (prijelomne točke) ako je ona postavljena.
Zaustavi - Zaustavi program u trenutnom koraku izvršenja.
Animate - Animacija kontinuiranog izvršavanja programa.
Step Into - Izvršenje u koracima (Pozivi se izvršavaju u jednom koraku).
Korak preko - Izvršite korak po korak uključujući pozivne naredbe.
Reset - Početna instalacija programa. Pokazivač skoka na prvu naredbu.
Prijelomne točke - Prikaz popisa prijelomnih točaka. Obrada popisa.

Prilikom izvršavanja programa korak po korak, trenutni korak je označen strelicom (slika 6). Kontinuirano izvršavanje programa zaustavlja se naredbom za zaustavljanje ili tako što program pogađa točku prekida. Točka prekida se postavlja/briše na programskoj liniji dvostrukim klikom.
Primjer asemblerskog programa koji mijenja stanje portova kontrolera pri maksimalnoj brzini prikazan je na Sl. 6 (desno). Program šalje podatke b'10101010' i b'01010101' u registar GPIO porta. Budući da u GPIO registru ne provode svi bitovi, već samo 0,1,2,4 i 5, prijenos podataka na portove kontrolera, stanje GPIO registra (slika 6, lijevo) razlikuje se u vrijednostima: b '00100010' i b'00010101'.


Riža. 6. Stanje registara posebne namjene kontrolera u trenutku izvođenja programa (lijevo) i programa koji se izvršava korak po korak (desno).

Tijekom otklanjanja pogrešaka možete pratiti status registara, varijabli, memorije u odgovarajućim prozorima otvorenim u odjeljku Pogled glavnog izbornika. Tijekom otklanjanja pogrešaka možete mijenjati programski kod, sadržaj registara, memoriju, mijenjati vrijednosti varijabli. Nakon promjene koda, potrebno je ponovno kompajlirati program. Promjena sadržaja registara, memorije i vrijednosti varijabli (pregled prozora odjeljaka: registar posebnih funkcija, registar datoteka, EEPROM, gledanje) ne zahtijeva ponovnu kompilaciju.

Ulazni signali porta modela mikrokontrolera mogu se postaviti u odjeljku Debugger → Stimulus. Podesiva stanja signala porta vezana su za vrijeme (taktove) otklanjanja pogrešaka.

Ponekad rezultati izvođenja programa u načinu za otklanjanje pogrešaka ne odgovaraju izvođenju istog programa u stvarnom kontroleru, na primjer, programski debugger (slika 6) bez instrukcija movlw 0x07 i movwf cmcon pokazuje da izlazi GP0 i GP1 GPIO registra se ne mijenjaju - u nultom su stanju, sadržaji GPIO registra su naizmjenično 0x14 i 0x20. Međutim, kontroler koji izvršava program bez ovih uputa pokazuje na osciloskopu ciklički rad svih pet izlaza: 0x15 i 0x22, uključujući GP0 i GP1 (vidi sliku 7).

Oscilogrami regulatora koji izvršava programske cikluse Sl. 6 (Metka… goto Metka) prikazani su na sl. 7.


Riža. 7. Oscilogrami izlaza GP0 (lijevo) i GP1 (desno) mikrokontrolera PIC12F629, napajanog internim RC oscilatorom od 4MHz. Program (slika 6) generira signale maksimalne frekvencije na svim izlazima regulatora. Za period signala od 5,3 µs izvršava se 5 naredbi (6 strojnih ciklusa), amplituda GP0 signala na oscilogramu je 4,6 V, snaga kontrolera koju mjeri programator je 4,75 V.

firmver mikrokontrolera

Za pisanje programa u mikrokontroler (firmware kontrolera), trebate povezati mikrokontroler s MPLAB IDE integriranim okruženjem putem programatora. Organizacija veze prikazana je dolje u odjeljku “Povezivanje programatora PIC-KIT3”.

Bilješka. PIC12F629 kontroler ima tvorničku kalibriranu konstantu za postavljanje interne frekvencije sata. Ako je potrebno, može se pročitati i vratiti pomoću MPLAB alata pomoću programatora.

Naredbe za rad s programatorom i promjenu njegovih postavki nalaze se u izborniku MPLAB programatora. Tip programatora u MPLAB-u odabire se u odjeljku: izbornik → Programator → Odaberite programator.


Riža. 8. Odabir programatora za spajanje na MPLAB okruženje.

Firmware mikrokontrolera putem programatora pokreće se naredbom: menu → Programmer → Program. Poruka o uspješnom firmveru prikazana je na Sl. devet.


Riža. devet. Pokretanje firmware-a mikrokontrolera i vrsta poruke o uspješnom firmware-u.

Bilješka: Dok treperi mikrokontroler, programator PIC-KIT3 treperi žuta LED dioda.

Povezivanje MATLAB/SIMULINK-a s MPLAB-om

U sustavu za modeliranje dinamičkih sustava Simulink (aplikacija za Matlab) u grafičkom programskom jeziku možete razviti programe za obitelj PIC kontrolera s ADC/DAC, brojačima, mjeračima vremena, PWM, DMA, UART, SPI, CAN, I2C sučeljima , itd.

Primjer programa Simulink PIC kontrolera prikazan je na Sl. 10.


Riža. 10. Primjer programa u grafičkom programskom jeziku za PIC kontroler koji se izvodi u simulacijskom okruženju za dinamičke sustave Simulink.

Interakcija razvojnih alata i kompilacija programa za PIC kontrolere u Simulinku prikazana je na Sl. jedanaest .


Riža. jedanaest. Struktura alata za izgradnju adekvatnog modela PIC kontrolera u grafičkom programskom jeziku.

Za izgradnju razvojnog okruženja potrebne su sljedeće Matlab komponente:

Simulink
Ugrađeni koder u radionici u stvarnom vremenu
Radionica u stvarnom vremenu

I Microchipov C kompajler:

C30 za PIC24, dsPIC30 i PIC33 kontrolere
ili C32 za kontrolere serije PIC32

Instalacija Matlab komponenti

Stranica ima Simulink biblioteke (dsPIC Toolbox) za PIC kontrolere i Matlab verzije od R2006a do R2012a:

Morate se registrirati za preuzimanje knjižnice. Programi podržavaju rad 100 mikrokontrolera iz serije PIC 16MC, 24F, 30F, 32MC, 33F, 56GP, 64MC, 128MC, 128GP.
Besplatne verzije rade s modelima Simulink PIC kontrolera s do 7 I/O portova.

Da biste instalirali dsPIC Toolbox - biblioteku blokova PIC kontrolera za Matlab/Simulink trebate:

Preuzmite dsPIC Toolbox za potrebnu verziju Matlaba.
Raspakirajte zip datoteku u mapu u koju će biti instalirani Simulink blokovi.
Pokreni matlab.
Postavite trenutni Matlab direktorij u mapu s raspakiranom datotekom.
Otvorite i pokrenite datoteku install_dsPIC_R2012a.m, na primjer, pomoću gumba izbornika ili tipke na tipkovnici.

Knjižnice dsPIC i primjeri Simulink modela instalirani su u trenutnoj Matlab mapi (slika 12). Instalirani blokovi za modeliranje PIC kontrolera dostupni su u odjeljku Embedded Target for Microchip dsPIC biblioteke Simulink (slika 13).


Riža. 12. Sadržaj trenutnog direktorija nakon instalacije install_dsPIC_R2012a.m.


Riža. 13. Blokovi instalirane biblioteke "Embedded Target for Microchip dsPIC".

Da biste zajednički kompajlirali Simulink model koristeći Matlab i MPLAB, morate postaviti put do MPLAB direktorija s datotekama MplabOpenModel.m, MplabGetBuildinfo.m i getHardwareConfigs.m u stazi Matlab varijable okruženja s najvišim prioritetom:

>>

Instalacija MPLAB C kompajlera

MPLAB kompajlatori nalaze se na web stranici Microchipa (Preuzmi arhivu → MPLAB C kompajler za PIC24 i dsPIC DSC). Da biste instalirali demo verziju C30 kompajlera, trebate je preuzeti s poveznice PIC24/dsPIC v3.25 (slika 14) i pokrenuti primljenu datoteku mplabc30-v3.25-comboUpgrade.exe.


Riža. četrnaest. Verzije C kompajlera (lijevo) i načini njegove instalacije (desno).

Bilješka. Posao je obavljen s verzijom v3.25 kompajlera C30 za PIC24/dsPIC. Provjera je pokazala da sljedeća verzija v3.30 ne podržava zajedničku kompilaciju Matlab R2012a modela (dsPIC Toolbox) bez grešaka.

Instalacijska exe datoteka stvara novi direktorij mplabc30 u odjeljku c:\Program Files (x86)\Microchip\ sa sljedećim datotekama:


Riža. 15. C30 MPLAB imenici kompajlera.

Simulink programski slijed za PIC kontrolere

1. Napravite radni direktorij i u njega kopirajte *.mdl primjere iz odjeljka primjera (vidi sliku 12).
2. Preuzmite matlab. Postavite ga na radni direktorij.
3. Uključite put varijable okoline Matlab s najvišim prioritetom put do MPLAB-a - direktorij c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\:

>> path("c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\",put)
Napomena: Korištenje naredbe >>path bez argumenata uzrokuje da se u naredbenom prozoru prikaže popis staza varijable staze. Možete ukloniti stazu iz varijable puta pomoću naredbe rmpath, na primjer:

>>rmpath(" c:\Programske datoteke\Microchip\MPLAB IDE\Tools\MATLAB\")
4. Napravite Simulink model za PIC kontroler koristeći blokove biblioteke "Embedded Target for Microchip dsPIC" (slika 13) ili učitajte gotov model, na primjer, Servo_ADC.mdl.

Tip kontrolera za koji se razvija Simulink model odabire se s popisa u bloku Master > PIC (Sl. 16, Sl. 10), koji mora biti uključen u model.


Riža. 16. Odabir tipa kontrolera u glavnom bloku modela.

5. Provjerite postavke konfiguracije modela: Izbornik → Simulacija → Parametri konfiguracije . Kompilator S-funkcije dspic.tlc mora biti specificiran u ulaznoj liniji System target file u odjeljku Generiranje koda (slika 17). Odabirom dspic.tlc konfiguriraju se svi ostali parametri konfiguracije modela, uključujući korak i metodu integracije.


Riža. 17. Odabir kompajlera S-funkcije dspic.tlc za modele PIC kontrolera u odjeljku "Glavni izbornik → Simulacija → Parametri konfiguracije → Generiranje koda".

6. Sastavite model tmp_Servo_ADC.mdl. Pokretanje kompajlera prikazano je na Sl. osamnaest.


Riža. osamnaest. Pokretanje Simulink kompajlera modela.

Kao rezultat uspješne kompilacije (poruka: ### Uspješan završetak procedure izgradnje za model: Servo_ADC), kreira se HEX datoteka u trenutnom direktoriju za flash PIC kontroler i MCP projekt MPLAB okruženja (Slika 19) .


Riža. 19. Rezultati kompilacije modela.

Pokretanje modela u Matlabu/Simulinku izvodi se u prozoru modela s tipkom, uvjetno vrijeme simulacije se postavlja u retku:


Upravljanje kompilacijom Simulink modela iz MPLAB okruženja

Kompilacijom Simulink modela može se upravljati naredbama u odjeljku Matlab/Simulink MPLAB okruženja, na primjer, sljedećim redoslijedom.

1. Razviti model PIC kontrolera u Matlabu/Simulinku. Spremite model.
2. Pokrenite MPLAB.
3. Odaberite MPLAB izbornik → Alati → Matlab/Simulink i novi odjeljak će se pojaviti u izborniku.


4. U odjeljku Matlab/Simulink otvorite Simulink model, na primjer, Servo_ADC, s naredbom "Matlab/Simulink → Specify Simulink Model Name → Open → File name → Servo_ADC.mdl → Open". Naredba Open pokreće Matlab i otvara model.

5. Sastavite model i kreirajte MCP projekt s naredbama Generiraj kodove ili Generiraj kodove i uvezi datoteke. Prijevod MDL modela u MCP projekt izvodi Matlab TLC kompajler.
Kao rezultat, nastaje projekt MPLAB:

Sa modelnim skriptama u jeziku C.

6. Otvorite projekt: izbornik → Projekt → Otvori → Servo_ADC.mcp (slika 20).


Riža. dvadeset. MCP struktura Servo_ADC.mdl Simulink projekta u MPLAB okruženju.
Simulink projekt modela spreman je za uređivanje, ispravljanje pogrešaka i prevođenje u strojne kodove kontrolera pomoću MPLAB-a.

Spajanje programatora PIC-KIT3

Koji programeri pišu binarni kod određenom mikrokontroleru možete saznati u odjeljku izbornika → Konfiguriraj → Odaberi uređaj MPLAB 8.92 okruženja. Primjerice, programator PIC-KIT3 ne podržava kontroler PIC12C508A (slika 21, lijeva slika), ali radi s kontrolerom PIC12F629 (slika 21, desna slika).


Riža. 21. Popis programatora za firmver mikrokontrolera.

Informacije o instaliranom upravljačkom programu PIC-KIT3 programatora možete zatražiti od upravitelja uređaja Windows OS-a (slika 22).


Riža. 22. Informacije o instaliranom upravljačkom programu PIC-KIT3 programatora.

Dijagram povezivanja mikrokontrolera PIC12F629 s programatorom PIC-KIT3 prikazan je na sl. 23.


Riža. 23. Shema povezivanja mikrokontrolera PIC12F629 na programator PIC-KIT3.

PGM izlaz programatora se ne koristi za bljeskanje PIC12F629 kontrolera. Prisutnost PGM izlaza za različite tipove PIC kontrolera prikazana je na Sl. 24. Preporuča se “povući” PGM izlaz na zajedničku žicu (GND), kroz 1K otpornik.


Riža. 24. Izlazi PGM PIC kontrolera.

Indikacija LED dioda Olimex PIC-KIT3 programatora prikazana je u nastavku:

Žuta - crvena - status programera
Uključeno - Isključeno - Spojeno na USB liniju
Uključeno - Uključeno - Interakcija s MPLAB-om
Trepće - Trajno uključeno - firmver mikrokontrolera

Ne biste trebali spajati napajanje VDD mikrokontrolera (slika 23) na programator ako se kontroler napaja iz vlastitog izvora napajanja.

Prilikom napajanja mikrokontrolera iz programatora na VDD liniji potrebno je programom MPLAB podesiti radni napon, npr. 5V (Izbornik → Programator → Postavke → Napajanje), kao što je prikazano na sl. 25.

Bilješka. Ako nema napona na VDD liniji, MPLAB IDE daje poruku o pogrešci: PK3Err0045: Morate se spojiti na ciljni uređaj da biste koristili


Riža. 25. Postavljanje VDD napona na PIC-KIT3 programatoru pomoću programa MPLAB IDE v8.92.

Ako programator ne može postaviti traženi napon, na primjer, 5V kada se napaja putem USB-a, u kojem je napon manji od 5V, MPLAB IDE izdaje poruku o pogrešci: PK3Err0035: Nije uspjelo dohvatiti ID uređaja. U tom slučaju prvo morate izmjeriti napon programatora - pročitajte ga u kartici izbornika → Programator → Postavke → Status, a zatim postavite napon (ne veći od izmjerenog) u kartici izbornika → Programator → Postavke → Vlast.


Riža. 26. Mjerenje (lijevo) i podešavanje (desno) VDD napona programatora PIC-KIT3 pomoću programa MPLAB IDE v8.92.

Primjer MPLAB poruke za uspješno povezivanje mikrokontrolera s programatorom pomoću naredbe izbornika → Programator → Ponovno povezivanje prikazan je na Sl. 27.


Riža. 27. MPLAB poruka o uspješnom povezivanju mikrokontrolera s programatorom.

Moguće je programirati ne samo zasebni PIC kontroler, već i kontroler koji je dio radnog uređaja. Za programiranje PIC kontrolera kao dijela uređaja potrebno je predvidjeti ugradnju kratkospojnika i otpornika za ograničavanje struje, kao što je prikazano na sl. 28.


Riža. 28. Povezivanje mikrokontrolera kao dijela elektronički uređaj programeru.

Zaključak

Niskobitni PIC-kontroleri imaju širok raspon napajanja, nisku potrošnju i male veličine. Programirani su na jezicima niske razine. Razvoj programa u Simulink grafičkom programskom jeziku korištenjem brojnih knjižnica značajno smanjuje vrijeme razvoja i otklanjanja pogrešaka u usporedbi s programiranjem na razini asemblera. Strukture razvijene za Simulink PIC kontrolere također se mogu koristiti za računalne simulacije dinamičkih sustava koji uključuju kontrolere. Međutim, zbog redundancije koda, ovaj pristup je primjenjiv samo za obitelji PIC kontrolera s dovoljnim resursima.
Simulink
  • PIC kontroleri
  • Dodaj oznake