Sadržaj:

PIC16F877 Multimetar: 6 koraka
PIC16F877 Multimetar: 6 koraka

Video: PIC16F877 Multimetar: 6 koraka

Video: PIC16F877 Multimetar: 6 koraka
Video: МОЩНЫЙ мультиметр UNI-T UT171B купить сегодня, или что лучше? 2024, Srpanj
Anonim
PIC16F877 Multimetar
PIC16F877 Multimetar

PICMETER Uvod

Ovaj projekt PICMETER izrastao je u koristan i pouzdan alat za sve ljubitelje elektronike.

  • Radi na mikrokontroleru PIC16F877 / 877A.
  • To je sustav razvoja PIC -a
  • To je 19-funkcijski višemetar (voltmetar, mjerač frekvencije, generator signala, termometar …)
  • To je provjera komponenti (R, L, C, dioda …) s do 5 raspona za svaku funkciju.
  • Ima 433MHz band ASK radio, koji čeka neku vrstu aplikacije.
  • To je sustav daljinskog preuzimanja, gdje drugo računalo (računalo) može prikupljati podatke putem serijskog porta za grafički prikaz. (Korišten je kao prednji dio EKG projekta).
  • Ima zapisnik (za bilježenje podataka satima), rezultati se prenose s EEPROM -a.
  • Proizvodi testne signale za pogon nekih motora.
  • Temeljito je testirano, pogledajte fotografije u koraku 5.
  • Softver je objavljen kao Open Source

Ovaj Instructable je skraćena verzija potpune dokumentacije. Opisuje hardver i softver dovoljan da ga drugi izgrade ili kao dovršen projekt, ili ga koriste kao razvojni sustav za daljnje promjene, ili samo traže ideje za korištenje na drugim projektima.

Pribor

Jedini kritični čip za kupnju je Microchip PIC16F877A-I/P

  • A = kasnija revizija koja se razlikuje od originala u definiciji konfiguracijskih bitova.
  • I = Industrijski temperaturni raspon
  • P = 40-odvodni plastični dvostruki linijski paket, 10 MHz, normalna ograničenja VDD-a.

Također Hitachi LM032LN 20 karaktera po 2 reda LCD koji ima ugrađen kontroler HD44780.

Ostali dijelovi su samo općenite električne komponente, PCB ploče, LM340, LM311, LM431, tranzistori male snage opće namjene itd.

Korak 1: Opis PICBIOS -a

PICBIOS Opis
PICBIOS Opis

PICBIOS Opis

Ovaj softver radi na ploči PIC16F877 i zauzima donjih 4k programske memorije. Pruža softversko okruženje za aplikacijski program koji zauzima gornju polovicu programske memorije. Idejno je sličan PC-BIOS-u s nekoliko naredbi poput "otklanjanja pogrešaka" za razvoj programa i ima 5 komponenti:

  1. Izbornik za pokretanje
  2. Program za postavljanje
  3. Sučelje naredbenog retka (preko serijskog porta)
  4. Upravljački programi jezgre i uređaja
  5. Sučelje za programiranje aplikacija

2. korak: Opis PICMETER -a

PICMETER Opis
PICMETER Opis

PICMETER Opis

Uvod

Poput multimetra (volti, pojačala, ohmi) i on ima mnoge funkcije koje se odabiru pomoću sustava izbornika. No, kombinacija hardvera i softvera čini ga vrlo svestranim, na primjer, dostupne su značajke poput dugotrajnog bilježenja i slanja serijskih podataka.

Izbornik je "srce" gdje se funkcije biraju pomoću tipki [lijevo] i [desno]. Zatim se za svaku funkciju tipkama [inc] i [dec] odabiru različiti rasponi. Na primjer, kondenzatori se mjere od oko 0,1nF do 9000uF pomoću 5 zasebnih raspona.

2.1 Softver PICMETER

Ovo je organizirano kao aplikacijski program koji zauzima gornjih 4k programske memorije i oslanja se na funkcije PICBIOS -a za U/I uređaja i rukovanje prekidima. Sastoji se od odjeljka izbornika koji radi kao pozadinski zadatak i ispituje gumbe svakih 20 ms. Kada se pritisne tipka za promjenu funkcije ili promjenu raspona, poziva se odgovarajuća rutina. Kad se ne pritisne nijedan gumb, izmjereno očitanje ažurira se u intervalima od oko 0,5 s. U osnovi je izbornik tablica za pretraživanje.

2.2 Funkcija mjerača - odjeljci

Postoji mnogo funkcija pa je ovaj dio podijeljen u odjeljke, od kojih se svaki bavi funkcijama slične prirode. Ovo je kratak popis odjeljaka, pogledajte cjelovitu dokumentaciju da vidite kako svaki odjeljak radi detaljno. Zbog ograničenja luke, postoje 3 varijacije projekta (vidi Cijelu dokumentaciju). Funkcije normalnog fonta zajedničke su svim projektima. Funkcije UNDERLINED uključene su samo u projekt PICMETER1. Funkcije u ITALICS -u uključene su samo u projekte PICMETER2 ili PICMETER3.

VoltMeter odjeljak - Izvorna datoteka je vmeter.asm

Sadrži funkcije koje se temelje na mjerenju napona pomoću ADC -a.

  • ADC napon (očitava napon na odabranom ulazu, AN0 do AN4)
  • AD2 Dual (prikazuje napon na AN0 i AN1 istovremeno)
  • TMP termometar -10 do 80? degC (2N3904 ili dvostruki pretvarač LM334)
  • LOG - postavlja interval bilježenja
  • OHM - Mjerenje otpora (metoda potenciometra) od 0Ω do 39MΩ u 4 raspona
  • DIO-Dioda, mjeri napon naprijed (0-2,5 V)
  • CON - Kontinuitet (zvučni signal kada je otpor manji od praga od 25, 50 ili 100)

Komponenta Meter1 - Izvorna datoteka je meter1.asm

Mjerenje kondenzatora, prigušnice i otpornika pomoću usporednog kruga LM311. Na temelju mjerenja vremena jednog ciklusa punjenja.

  • CAL - kalibracija - mjeri fiksne 80nf i 10μF za samotestiranje i podešavanje
  • Cx1 - mjerenje kondenzatora od 0,1nF do 9000μF u 5 raspona
  • Lx1 - mjerenje induktora od 1mH do ?? mH u 2 raspona
  • Rx1 - mjerenje otpornika od 100Ω do 99MΩ u 3 raspona

Mjerač komponenti2 Izvorna datoteka Meter2.asm

Mjerenje komponenti pomoću alternativnih LM311 relaksacijskih oscilatora i Colpittovog oscilatora. Na temelju mjerenja vremenskog perioda od N ciklusa. Ovo je nešto točnije od gore navedene metode jer se mjeri vrijeme N = do 1000 ciklusa. To je više hardversko rješenje i zahtijeva više izgradnje.

  • Cx2 - mjerenje kondenzatora od 10pF do 1000 μF u 5 raspona.
  • Rx2 - mjerenje otpornika od 100 ohma do 99 M u 5 raspona.
  • Lx2 - mjerenje induktora od 1mH do 60mH u 1 rasponu.
  • osc - mjerenje induktora (Colpittsova metoda) od 70μH do 5000μH? u 2 raspona.

Mjerač frekvencije - izvorna datoteka Fmeter.asm

Sadrži funkcije koje koriste PIC brojače i odbrojavanje vremena, i još malo toga;

  • FREQ - Mjerač frekvencije od 0Hz do 1000kHz u 3 raspona
  • XTL - mjeri učestalost LP kristala (nije ispitano)
  • SIG - generator signala od 10Hz do 5KHz u 10 koraka
  • SMR - koračni motor - obrnuti smjer
  • SMF- koračni motor- smjer naprijed.

Komunikacije - Izvorna datoteka je comms.asm

Funkcije prijenosa/primanja signala za testiranje serijske i SPI periferije;

  • UTX test serijski TX & inc i brzina prijenosa bita od 0,6 do 9,6k
  • URX test serijski RX & inc i brzina prijenosa bita od 0,6 do 9,6 k
  • SPM - testira SPI u master načinu rada
  • SPS - testira SPI u slave načinu rada

Radio modul FSK - Izvorna datoteka je Radio.asm

Funkcije koje koriste radio prijemne i prijenosne module RM01 i RM02. Ovi moduli sučeljavaju se putem SPI -a, koji koristi većinu priključaka porta C.

  • RMB - postavite brzinu BAUD radijskog modula
  • RMF - postavlja radio frekvenciju RF modula
  • RMC - postavlja frekvenciju takta radio modula
  • XLC - prilagođava kapacitet kristala
  • POW - postavlja snagu odašiljača
  • RM2 - prijenos testnih podataka (modul RM02)
  • RM1 - primanje testnih podataka (modul RM01)

Upravljački modul - izvorna datoteka control.asm

  • SV1 - Servo izlaz (pomoću CCP1) od 1 ms do 2 ms u koracima od 0,1 ms
  • SV2 - Servo izlaz (pomoću CCP2) od 1 ms do 2 ms u koracima od 0,1 ms
  • PW1 - PWM izlaz (pomoću CCP1) od 0 do 100% u koracima od 10%
  • PW2 - PWM izlaz (pomoću CCP2) od 0 do 100% u koracima od 10%

Daljinsko prikupljanje podataka - Izvorna datoteka je remote.asm

Daljinski način rada (Rem) - skup naredbi tako da se mjeračem može upravljati s računala putem serijskog sučelja. Jedna naredba prikuplja podatke evidentirane u EEPROM -u kroz razdoblje od nekoliko sati. Druga naredba čita napone pri punoj brzini ADC -a u memoriju, zatim prenosi međuspremnik na računalo, gdje se rezultati mogu grafički prikazati. U stvari, ovo je osciloskop koji radi u audio frekvencijskom rasponu

Vrijeme - Izvorna datoteka je time.asm

Tim - samo prikazuje vrijeme u formatu hh: mm: ss i omogućuje promjenu pomoću 4 gumba

Korak 3: Opis kruga

Opis kruga
Opis kruga
Opis kruga
Opis kruga

Opis kruga

3.1 Temeljni razvojni odbor

Slika 1 prikazuje osnovnu razvojnu ploču za pokretanje PICBIOS -a. Vrlo je standardni i jednostavan, 5V regulirani izvor napajanja i kondenzatori za razdvajanje, C1, C2….

Sat je kristal 4 MHz, tako da TMR1 otkucava u intervalima od 1us. Microchip preporučuje kondenzatore 22pF C6, C7, ali čini se da nisu potrebni. ICSP zaglavlje (serijsko programiranje u krugu) koristi se za početno programiranje praznog PIC-a s PICBIOS-om.

Serijski port (COM1)- napomena TX i RX se zamjenjuju, tj. COM1-TX je spojen na port C-RX, a COM1-RX je priključen na port C-TX (obično se naziva "nulti modem"). Također razine signala potrebne za RS232 zaista bi trebale biti +12V (razmak) i -12V (oznaka). Međutim, razine napona od 5V (prostor) i 0V (oznaka) izgledaju prikladne za sva računala koja sam koristio. Dakle, razine signala RX -a i TX -a samo su obrnute upravljačkim programom linije (Q3) i linijskim prijamnikom (Q2).

LM032LN (2 reda 20 znakova) LCD koristi standardno "HD44780 sučelje". Softver koristi 4-bitni način grickanja i samo pisanje, koji koristi 6 pinova priključka D. Softver se može konfigurirati za nisko grickanje (port D bitovi 0-3) ili visoko grickanje (port D bitovi 4-7) kako se ovdje koristi.

Prekidači s tipkama pružaju četiri ulaza za odabir izbornika. Pomoću gumba pritisnite prekidače dok softver detektira pad. Povučni otpornici (= 25k) unutarnji su na PORT B. Priključak RB6 ne može se koristiti za sklopke zbog 1nF kapice (koja se preporučuje za ICSP). Nema potrebe za prekidačem za resetiranje?

gumb0

opcije izbornika lijevo [◄]

gumb1

opcije izbornika desno [►]

gumb 2

raspon povećanja/vrijednost/odaberite [▲]

gumb 3

raspon smanjenja/vrijednost/odaberite [▼]

3.2 Analogni ulazi i provjera komponenti - ploča 1

Slika 2 prikazuje analogno kolo za PICMETER1. Analogni ulazi AN0 i AN1 koriste se za mjerenje napona opće namjene. Odaberite vrijednosti otpornika za prigušivače koji će dati 5V na ulaznim pinovima AN0/AN1.

Za ulazni raspon od 10 V, m = 1 + R1/R2 = 1 + 10k/10k = 2

Za 20V ulazni raspon, m = 1 + (R3 + R22)/R4 = 1 + 30k/10k = 4

AN2 se koristi za mjerenje temperature pomoću tranzistora Q1 kao „sirovog“pretvarača temperature. Temperaturni koeficijent NPN tranzistora pri 20 celcuis = -Vbe/(273+20) = -0,626/293 = -2,1 mV/K. (vidi mjerenje temperature u Analognom odjeljku). LM431 (U1) daje referentni napon od 2,5 V na AN3. Konačno, AN4 se koristi za testiranje komponenti u odjeljku Analogno.

Za mjerenje komponente, ispitna komponenta je spojena preko ulaza RE2 (D_OUT) i AN4. Otpornici R14 do R18 pružaju pet različitih vrijednosti otpora koji se koriste za mjerenje otpora (metoda potenciometra) u analognom odjeljku. Otpornici su "spojeni u krug" postavljanjem pinova porta C/porta E kao ulaz ili izlaz.

Meter1 vrši mjerenje komponenti punjenjem različitih kombinacija poznatih/nepoznatih kondenzatora i otpornika. LM311 (U2) koristi se za stvaranje CCP1 prekida kada se kondenzator napuni do gornjeg praga (75% VDD) i prazni do donjeg praga (25% VDD). Ovi pragovi su postavljeni pomoću R8, R9, R11 i potenciometra R10 koji daje male podešavanje. Prilikom ispitivanja kondenzatora, kondenzator C13 (= 47pF) plus zalutali kapacitet ploče osiguravaju trim 100pF. To osigurava da, kad se testna komponenta ukloni, interval između prekida CCP1 prelazi 100us i ne preopterećuje PIC. Ova vrijednost trima (100pF) oduzima se od mjerenja komponenti pomoću softvera. D3 (1N4148) osigurava put pražnjenja pri ispitivanju prigušnica i štiti D_OUT sprječavajući da napon postane negativan.

λΩπμ

Korak 4: Vodič za izgradnju

Građevinski vodič
Građevinski vodič
Građevinski vodič
Građevinski vodič

Građevinski vodič

Dobra stvar je što se ovaj projekt gradi i testira u fazama. Planirajte svoj projekt. Za ove upute pretpostavljam da sastavljate PICMETER1, iako je postupak sličan za PICMETER2 i 3.

4.1 PCB razvojne ploče

Morate izgraditi osnovnu razvojnu ploču (slika 1) koja bi trebala stati na PCB standardne veličine 100 x 160 mm, planirati raspored kako bi bio što uredniji. Očistite PCB i kositrite sav bakar, upotrijebite pouzdane komponente i konektore, testirano gdje je to moguće. Za PIC upotrijebite 40 -polnu utičnicu. Provjerite kontinuitet svih lemljenih spojeva. Možda bi bilo korisno pogledati gornje fotografije izgleda moje ploče.

Sada imate prazan PIC i morate programirati PICBIOS u flash memoriju. Ako već imate metodu programiranja - u redu. Ako ne, preporučujem sljedeću metodu koju sam uspješno koristio.

4.2 AN589 Programer

Ovo je mali krug sučelja koji omogućuje programiranje PIC -a s računala pomoću porta za pisač (LPT1). Dizajn je izvorno objavio Microchip u bilješci o prijavi. (referenca 3). Nabavite ili napravite programer kompatibilan s AN589. Koristio sam poboljšani dizajn AN589 koji je ovdje opisan. Ovo je ICSP - što znači da umetnete PIC u 40 -polnu utičnicu da biste ga programirali. Zatim spojite kabel pisača na ulaz AN539 i ICSP kabel s AN589 na razvojnu ploču. Moj dizajn programera snagu preuzima s razvojne ploče putem ICSP kabela.

4.3 Postavke PICPGM -a

Za rad na računalu sada vam je potreban neki softver za programiranje. PICPGM radi s raznim programerima, uključujući AN589, i besplatno se preuzima. (Vidi Reference).

U izborniku Hardver odaberite Programmer AN589, na LPT1

Uređaj = PIC16F877 ili 877A ili automatsko otkrivanje.

Odaberite šesterokutnu datoteku: PICBIOS1. HEX

Odaberite Erase PIC, zatim Program PIC, zatim Verify PIC. Uz malo sreće, dobit ćete poruku uspješnog dovršetka.

Uklonite ICSP kabel, Ponovno pokrenite PIC, nadamo se da ćete vidjeti zaslon PICBIOS na LCD -u, inače provjerite svoje veze. Provjerite izbornik za pokretanje pritiskom na lijevu i desnu tipku.

4.4 Serijska veza (hiperterminal ili kit)

Sada provjerite serijsku vezu između PIC -a i računala. Spojite serijski kabel s računala COM1 na razvojnu ploču i pokrenite komunikacijski program, poput starog Win-XP Hyper-Terminala ili PUTTY.

Ako koristite Hyperterminal, konfigurirajte na sljedeći način. Na glavnom izborniku Pozovite> Prekini vezu. Zatim Datoteka> Svojstva> Poveži se na karticu. Odaberite Com1, a zatim pritisnite gumb Konfiguriraj. Odaberite 9600 b / s, bez pariteta, 8 bita, 1 zaustavljanje. Upravljanje protokom hardvera”. Zatim Poziv> Poziv za povezivanje.

Ako koristite PuTTY, Connection> Serial> Connect to COM1 i 9600 bps, bez pariteta, 8 bita, 1 zaustavljanje. Odaberite "RTS/CTS". Zatim Session> Serial> Open

Na izborniku PICBIOS Boot odaberite "Command Mode", zatim pritisnite [inc] ili [dec]. Na zaslonu bi se trebala pojaviti poruka "PIC16F877>" (ako ne provjerite serijsko sučelje). Press? da biste vidjeli popis naredbi.

4.5 PROGRAMSKI PICMETER

Nakon što serijska veza proradi, programiranje flash memorije je jednostavno kao slanje hex datoteke. Unesite naredbu “P”, koja odgovara “Pošalji šesterokutnu datoteku …”.

Pomoću hiper-terminala iz izbornika Prijenos> Pošalji tekstualnu datoteku> PICMETER1. HEX> Otvori.

Napredak je označen znakom ":". budući da je svaki redak hex-koda programiran. Napokon učitaj uspjeh.

Ako koristite PuTTY, možda ćete morati koristiti Notepad i kopirati/zalijepiti cijeli sadržaj datoteke PICMETER1. HEX u PuTTY.

Slično za provjeru, unesite naredbu “V”. U hiper terminalu iz izbornika Prijenos> Pošalji tekstualnu datoteku> PICMETER1. HEX> OK.

Upozorenje = xx … Ako programirate čip 16F877A, dobit ćete neke poruke upozorenja. To se odnosi na razlike između 877 i 877A, koji programiraju u blokovima od 4 riječi. Nažalost, povezivač ne poravnava početak odjeljaka na granicama od 4 riječi. Jednostavno rješenje je imati 3 NOP upute na početku svakog odjeljka, pa zanemarite upozorenja.

Ponovno pokrenite i na izborniku za pokretanje BIOS -a odaberite "Pokreni aplikaciju". Na LCD -u biste trebali vidjeti PICMETER1.

4.6 Pokrenite PICMETER1

Sada počnite graditi više odjeljaka razvojne ploče (slika 2) kako bi voltmetar, komponente mjerača radile po potrebi.

Mjeraču1 treba kalibracija. Na funkciji "Cal", podesite R10 tako da daje očitanja od 80,00, 80,0nF i 10 000uF pribl. Zatim pročitajte malih 100pF na Cx1 funkciji. Ako je očitanje van, promijenite zaštitnu kapicu C13 ili promijenite vrijednost "trimc" u meter1.asm.

Sada pokrenite PICBIOS Setup i promijenite nekoliko postavki kalibracije u EEPROM -u. Kalibrirajte temperaturu podešavanjem 16-bitnog pomaka (visoki, niski format). Možda ćete također morati promijeniti vrijednost "delayt".

Ako vam je namjera izgraditi projekt onakvim kakav je - Čestitamo - završili ste! Reci mi o svom uspjehu na Instructables.

4,7 MPLAB

No, ako želite izmijeniti ili dodatno razviti projekt, morate ponovno izgraditi softver pomoću MPLAB-a. Preuzmite MPLAB s Microchipa. Ovo je "stari" koji je jednostavan i jasan za upotrebu. Nisam isprobao novi razvojni alat za labx koji izgleda daleko složenije.

Pojedinosti o tome kako stvoriti novi projekt, a zatim dodati datoteke u projekt u Punoj dokumentaciji.

Korak 5: Fotografije testiranja

Fotografije testiranja
Fotografije testiranja
Fotografije testiranja
Fotografije testiranja
Fotografije testiranja
Fotografije testiranja

Gornja fotografija termometra, očitanje 15 ° C

Učestalost ispitivanja, očitanje = 416k

Ispitivanje induktora s oznakom 440uF, očitanje 435u

Testiranje 100k otpornika, čita 101k, to je jednostavno.

Testiranje kondenzatora 1000pF, očitanje 1.021nF

Korak 6: Reference i veze

6.1 Tehnički list PIC16F87XA, Microchip Inc.

ww1.microchip.com/downloads/en/devicedoc/39582b.pdf

6.2 PIC16F87XA FLASH memorijsko programiranje, Microchip

ww1.microchip.com/downloads/en/devicedoc/39589b.pdf

6.3 Napomena o prijavi AN589, Microchip Inc.

ww1.microchip.com/downloads/en/appnotes/00589a.pdf

6.4 Preuzimanje PICPGM -a

picpgm.picprojects.net/

6.5 MPLab IDE v8.92 besplatno preuzimanje, Microchip

pic-microcontroller.com/mplab-ide-v8-92-free-download/

6.6 Tehnički listovi za module Hope RFM01-433 i RFM02-433, RF rješenja

www.rfsolutions.co.uk/radio-modules-c10/hope-rf-c238

6,7 LT Spice, analogni uređaji

www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html

6.8 Sklop programatora slike temeljen na AN589, Najbolji projekti mikrokontrolera

www.best-microcontroller-projects.com/pic-programmer-circuit.html

6.9 Datoteke otvorenog koda

otvoreni izvor

Preporučeni: