Obsah:

Multimeter PIC16F877: 6 krokov
Multimeter PIC16F877: 6 krokov

Video: Multimeter PIC16F877: 6 krokov

Video: Multimeter PIC16F877: 6 krokov
Video: Урок №6. Настраиваем UART на передачу данных в микроконтроллере PIC16F873A. 2024, Júl
Anonim
Multimetr PIC16F877
Multimetr PIC16F877

PICMETER Úvod

Tento projekt PICMETER sa stal užitočným a spoľahlivým nástrojom pre všetkých nadšencov elektroniky.

  • Beží na mikroovládači PIC16F877 / 877A.
  • Ide o vývojový systém PIC
  • Jedná sa o 19-funkčný multimetr (voltmeter, frekvenčný merač, generátor signálu, teplomer …)
  • Jedná sa o kontrolu komponentov (R, L, C, dióda …) s až 5 rozsahmi pre každú funkciu.
  • Má 433 MHz pásmo ASK rádio, ktoré čaká na nejaký druh aplikácie.
  • Jedná sa o vzdialený zberný systém, kde iný počítač (PC) môže zbierať údaje prostredníctvom sériového portu na grafické zobrazenie. (Bol použitý ako predný koniec projektu EKG).
  • Má zariadenie na protokolovanie (na protokolovanie údajov cez hodiny), výsledky sa nahrávajú z EEPROM.
  • Vytvára testovacie signály na pohon niektorých motorov.
  • Je dôkladne testovaný, pozrite si fotografie v kroku 5.
  • Softvér je vydaný ako open source

Tento návod je skrátenou verziou úplnej dokumentácie. Opisuje hardvér a softvér, ktoré sú dostatočné na to, aby ho ostatní mohli zostaviť buď ako dokončený projekt, alebo ho použiť ako vývojový systém na vykonanie ďalších zmien, alebo len vyhľadávať nápady na použitie v iných projektoch.

Zásoby

Jediným kritickým čipom, ktorý je potrebné kúpiť, je Microchip PIC16F877A-I/P

  • A = neskoršia revízia, ktorá sa líši od pôvodnej v definícii konfiguračných bitov.
  • I = rozsah priemyselných teplôt
  • P = 40-zvodový plastový dvojradový balík, 10 MHz, normálne limity VDD.

Tiež Hitachi LM032LN s 20 znakmi a 2 riadkovým LCD, ktorý má vstavaný ovládač HD44780.

Ostatné časti sú len generické elektrické súčiastky, Pásové dosky plošných spojov, LM340, LM311, LM431, nízkonapäťové tranzistory na všeobecné použitie atď.

Krok 1: Popis PICBIOS

PICBIOS Popis
PICBIOS Popis

PICBIOS Popis

Tento softvér beží na doske PIC16F877 a zaberá spodných 4 kB programovej pamäte. Poskytuje softvérové prostredie pre aplikačný program zaberajúci hornú polovicu programovej pamäte. Je v myšlienke podobný počítačovému systému BIOS s niekoľkými príkazmi „ladenia“na vývoj programu a má 5 komponentov:

  1. Ponuka bootovania
  2. Inštalačný program
  3. Rozhranie príkazového riadka (cez sériový port)
  4. Ovládače jadra a zariadení
  5. Prgramovacie prostredie aplikácií

Krok 2: Popis PICMETERA

PICMETER Popis
PICMETER Popis

PICMETER Popis

Úvod

Rovnako ako multimeter (volty, ampéry, ohmy) má mnoho funkcií, ktoré sa volia pomocou systému ponúk. Kombinácia hardvéru a softvéru ho však robí veľmi univerzálnym, napríklad sú k dispozícii funkcie ako dlhé prihlásenie a odosielanie sériových dát.

Menu je „srdcom“, kde sa funkcie vyberajú pomocou tlačidiel [vľavo] a [vpravo]. Potom sa pre každú funkciu pomocou tlačidiel [inc] a [dec] vyberú rôzne rozsahy. Kondenzátory sa napríklad merajú od asi 0,1 nF do 9 000 uF pomocou 5 oddelených rozsahov.

2.1 Softvér PICMETER

Toto je organizované ako aplikačný program, ktorý zaberá horných 4 kB programovej pamäte a spolieha sa na funkcie PICBIOS pre vstupy/výstupy zariadení a spracovanie prerušenia. Skladá sa z časti ponuky, ktorá beží ako úloha na pozadí a každých 20 ms vyvoláva tlačidlá. Po stlačení tlačidla na zmenu funkcie alebo zmeny rozsahu sa vyvolá príslušná rutina. Keď nie sú stlačené žiadne tlačidlá, namerané hodnoty sa aktualizujú v intervale približne 0,5 sekundy. V zásade je ponuka vyhľadávacou tabuľkou.

2.2 Funkcia merača - sekcie

Existuje mnoho funkcií, takže táto časť je rozdelená na sekcie, z ktorých každá sa zaoberá funkciami podobného charakteru. Toto je stručný zoznam sekcií. V úplnej dokumentácii nájdete podrobné informácie o tom, ako každá sekcia funguje. Vzhľadom na obmedzenia prístavu existujú 3 varianty projektu (pozri úplnú dokumentáciu). Funkcie v normálnom písme sú spoločné pre všetky projekty. Funkcie PODČIERANÉ sú zahrnuté iba v projekte PICMETER1. Funkcie v ITALICS sú zahrnuté iba v projektoch PICMETER2 alebo PICMETER3.

Časť VoltMeter - zdrojový súbor je vmeter.asm

Obsahuje funkcie, ktoré sú založené na meraní napätia pomocou ADC.

  • Napätie ADC (číta napätie na vybranom vstupe, AN0 až AN4)
  • AD2 Dual (zobrazuje napätie na AN0 a AN1 súčasne)
  • TMP teplomer -10 až 80? degC (prevodník 2N3904 alebo duálny LM334)
  • LOG - nastavuje interval protokolovania
  • OHM - meranie odporu (metóda potenciometra) od 0Ω do 39MΩ v 4 rozsahoch
  • DIO-dióda, meria napätie vpred (0-2,5V)
  • CON - kontinuita (pípne, ak je odpor menší ako prah 25, 50 alebo 100)

Komponentový merač1 - zdrojový súbor je meter1.asm

Meranie kondenzátora, induktora a odporu pomocou porovnávacieho obvodu LM311. Na základe merania času jedného nabíjacieho cyklu.

  • CAL - kalibrácia - meria pevne 80nf a 10μF na samočinný test a nastavenie
  • Cx1 - meranie kondenzátora od 0,1nF do 9000μF v 5 rozsahoch
  • Lx1 - meranie induktora od 1 mH do ?? mH v 2 rozsahoch
  • Rx1 - meranie odporu od 100Ω do 99MΩ v 3 rozsahoch

Zdrojový súbor komponentu Meter2 Meter2.asm

Meranie komponentov pomocou alternatívneho relaxačného oscilátora LM311 a Colpittsovho oscilátora. Na základe merania časového obdobia N cyklov. Je to o niečo presnejšie ako vyššie uvedená metóda, pretože sa meria čas N = až 1 000 cyklov. Ide skôr o hardvérové riešenie a vyžaduje väčšiu konštrukciu.

  • Cx2 - meranie kondenzátora od 10 pF do 1000 μF v 5 rozsahoch.
  • Rx2 - meranie odporu od 100 ohmov do 99M v 5 rozsahoch.
  • Lx2 - meranie induktora od 1 mH do 60 mH v 1 rozsahu.
  • osc - meranie induktorom (Colpittsova metóda) od 70μH do 5000μH? v 2 rozsahoch.

Frekvenčný merač - zdrojový súbor Fmeter.asm

Obsahuje funkcie, ktoré používajú počítadlá a časovače PIC a nič iné;

  • FREQ - merač frekvencie od 0Hz do 1000kHz v 3 rozsahoch
  • XTL - meria frekvenciu LP kryštálov (netestované)
  • SIG - generátor signálu od 10Hz do 5KHz v 10 krokoch
  • SMR - krokový motor - opačný smer
  • SMF- krokový motor- smer dopredu.

Komunikácia - zdrojový súbor je comms.asm

Funkcie prenosu/príjmu signálu na testovanie sériových a SPI periférií;

  • UTX testuje prenosovú rýchlosť sériového prenosu a prírastku a odozvy od 0,6 do 9,6 kB
  • URX testuje sériový príjem RX & inc a dec a bitovú rýchlosť od 0,6 do 9,6 kB
  • SPM - testuje SPI v hlavnom režime
  • SPS - testuje SPI v podradenom režime

Rádiový modul FSK - zdrojový súbor je Radio.asm

Funkcie využívajúce rádiové prijímacie a vysielacie moduly RM01 a RM02. Tieto moduly sú prepojené prostredníctvom SPI, ktorý využíva väčšinu pinov portu C.

  • RMB - nastavená rýchlosť BAUD rádiového modulu
  • RMF - nastavená RF frekvencia rádiového modulu
  • RMC - nastavuje taktovaciu frekvenciu rádiového modulu
  • XLC - upravuje zaťaženie kapacitnej kapacity kryštálov
  • POW - nastavuje výkon vysielača
  • RM2 - prenos testovacích dát (modul RM02)
  • RM1 - príjem testovacích dát (modul RM01)

Riadiaci modul - zdrojový súbor control.asm

  • SV1 - Servo výstup (pomocou CCP1) od 1 ms do 2 ms v krokoch 0,1 ms
  • SV2 - Servo výstup (pomocou CCP2) od 1 ms do 2 ms v krokoch 0,1 ms
  • PW1 - výstup PWM (pomocou CCP1) od 0 do 100% v 10% krokoch
  • PW2 - výstup PWM (pomocou CCP2) od 0 do 100% v 10% krokoch

Vzdialené získavanie údajov - zdrojový súbor je remote.asm

Diaľkový režim (Rem) - sada príkazov, aby bolo možné meradlo ovládať z počítača prostredníctvom sériového rozhrania. Jeden príkaz zbiera údaje zapísané v EEPROM počas niekoľkých hodín. Ďalší príkaz načíta napätie pri plnej rýchlosti ADC do vyrovnávacej pamäte a potom prenesie vyrovnávaciu pamäť do počítača, kde je možné výsledky graficky zobraziť. V skutočnosti je to osciloskop pracujúci v audio frekvenčnom rozsahu

Čas - zdrojový súbor je time.asm

Tim - zobrazuje iba čas vo formáte hh: mm: ss a umožňuje zmenu pomocou 4 tlačidiel

Krok 3: Popis obvodu

Popis obvodu
Popis obvodu
Popis obvodu
Popis obvodu

Popis obvodu

3.1 Rada pre základný vývoj

Obrázok 1 ukazuje základnú vývojovú dosku na spustenie programu PICBIOS. Je to veľmi štandardný a priamy, 5V regulovaný zdroj energie a oddeľovacie kondenzátory, C1, C2….

Hodiny sú kryštálové 4 MHz, takže TMR1 tiká v intervaloch 1us. Kondenzátory 22 pF C6, C7 odporúča spoločnosť Microchip, ale nezdá sa, že by boli v skutočnosti potrebné. Hlavička ICSP (sériové programovanie v obvode) sa používa na počiatočné programovanie prázdneho PIC s PICBIOS.

Sériový port (COM1)- poznámka TX a RX sa prehodia, t.j. COM1-TX je pripojený k portu C-RX a COM1-RX je pripojený k portu C-TX (bežne sa označuje ako „nulový modem“). Tiež úrovne signálu požadované pre RS232 by mali byť skutočne +12V (medzera) a -12V (značka). Úrovne napätia 5 V (medzera) a 0 V (značka) sa však zdajú byť dostatočné pre všetky počítače, ktoré som použil. Úrovne signálu RX a TX sú teda invertované linkovým ovládačom (Q3) a linkovým prijímačom (Q2).

LM032LN (2-riadkový 20-znakový) LCD používa štandardné „rozhranie HD44780“. Softvér používa 4-bitový režim nibble a iba zápis, ktorý používa 6 pinov portu D. Softvér je možné nakonfigurovať tak, aby sa nibble low (port D bits 0-3) alebo nibble high (Port D bits 4-7) používal tu.

Tlačidlové prepínače poskytujú štyri vstupy pre výber z ponuky. Na spustenie prepínača použite tlačidlo, pretože softvér zisťuje klesajúcu hranu. Pull-up rezistory (= 25k) sú interné pre PORT B. Port RB6 nie je možné použiť pre prepínače, pretože má krytku 1nF (ktorá sa odporúča pre ICSP). Nie je potrebný resetovací spínač?

tlačidlo0

možnosti ponuky vľavo [◄]

tlačidlo 1

možnosti ponuky vpravo [►]

tlačidlo 2

rozsah prírastku/hodnota/zvoľte [▲]

tlačidlo 3

rozsah/hodnota zníženia/zvoľte [▼]

3.2 Analógové vstupy a kontrola komponentov - doska 1

Obrázok 2 zobrazuje analógové obvody pre PICMETER1. Analógové vstupy AN0 a AN1 sa používajú na všeobecné meranie napätia. Vyberte hodnoty odporu pre tlmiče, aby na vstupných kolíkoch AN0/AN1 bolo 5 V.

Pre vstupný rozsah 10 V m = 1 + R1/R2 = 1 + 10k/10k = 2

Pre vstupný rozsah 20 V m = 1 + (R3 + R22)/R4 = 1 + 30k/10k = 4

AN2 sa používa na meranie teploty pomocou tranzistora Q1 ako „hrubého“prevodníka teploty. Teplotný koeficient tranzistora NPN pri 20 celkusoch = -Vbe/(273+20) = -0,626/293 = -2,1 mV/K. (pozri meranie teploty v analógovej časti). LM431 (U1) poskytuje referenciu napätia 2,5 V na AN3. Nakoniec sa AN4 používa na testovanie alebo testovanie komponentov v sekcii Analógové.

Na meranie komponentov je testovací komponent zapojený cez vstup RE2 (D_OUT) a AN4. Rezistory R14 až R18 poskytujú päť rôznych hodnôt odporu použitého na meranie odporu (metóda potenciometra) v sekcii Analógové. Rezistory sú „zapojené do obvodu“nastavením pinov portu C/portu E ako vstupu alebo výstupu.

Meter1 vykonáva meranie komponentov nabíjaním rôznych kombinácií známeho/neznámeho kondenzátora a odporu. LM311 (U2) sa používa na vytváranie prerušení CCP1, keď sa kondenzátor nabije na horný prah (75% VDD) a vybije sa na nižší prah (25% VDD) Tieto prahové napätia sú nastavené pomocou R8, R9, R11 a potenciometra R10, ktorý dáva mierne úprava. Pri testovaní kondenzátorov poskytuje kondenzátor C13 (= 47 pF) plus rozptylová kapacita dosky úpravu 100 pF. To zaisťuje, že keď je testovací komponent odstránený, interval medzi prerušeniami CCP1 prekročí 100us a nepreťaží PIC. Táto upravená hodnota (100 pF) sa odčíta od merania súčasti softvérom. D3 (1N4148) poskytuje dráhu vybíjania pri testovaní induktorov a chráni D_OUT, čím zabraňuje zápornému napätiu.

λΩπμ

Krok 4: Sprievodca stavbou

Sprievodca stavbou
Sprievodca stavbou
Sprievodca stavbou
Sprievodca stavbou

Sprievodca stavbou

Dobrá vec je, že tento projekt je postavený a testovaný po etapách. Naplánujte si projekt. Pre tieto pokyny predpokladám, že staviate PICMETER1, aj keď je postup podobný pre PICMETER2 a 3.

4.1 DPS vývojovej dosky

Musíte postaviť základnú vývojovú dosku (obrázok 1), ktorá by sa mala zmestiť na dosku so štandardnou veľkosťou 100 x 160 mm, a naplánovať rozloženie tak, aby bolo čo naj upratanejšie. Vyčistite dosku plošných spojov a pocínujte všetku meď, používajte spoľahlivé súčiastky a konektory, kde je to možné, testované. Na PIC použite 40 -pinovú zásuvku. Kontrola spojitosti všetkých spájkovaných spojov. Možno bude užitočné pozrieť sa na vyššie uvedené fotografie s rozložením dosky.

Teraz máte prázdny PIC a potrebujete naprogramovať PICBIOS do pamäte Flash. Ak už máte programovaciu metódu - v poriadku. Ak nie, odporúčam nasledujúcu metódu, ktorú som úspešne použil.

4.2 Programátor AN589

Toto je malý obvod rozhrania, ktorý umožňuje programovaniu PIC z počítača pomocou portu tlačiarne (LPT1). Dizajn pôvodne publikovala spoločnosť Microchip v poznámke k aplikácii. (odkaz 3). Získajte alebo si vyrobte programátor kompatibilný s AN589. Použil som vylepšený dizajn AN589, ktorý je tu popísaný. Toto je ICSP - to znamená, že vložíte PIC do 40 -pinovej zásuvky a naprogramujete ho. Potom pripojte kábel tlačiarne k vstupu AN539 a kábel ICSP od AN589 k vývojovej doske. Môj návrh programátora čerpá svoju energiu z vývojovej dosky pomocou kábla ICSP.

4.3 Nastavenia PICPGM

Teraz na spustenie na počítači potrebujete nejaký programovací softvér. PICPGM funguje s rôznymi programátormi vrátane AN589 a je stiahnutý zadarmo. (Pozri referencie).

V ponuke Hardvér vyberte Programátor AN589 na LPT1

Zariadenie = PIC16F877 alebo 877A alebo automatické zisťovanie.

Vyberte šesťhranný súbor: PICBIOS1. HEX

Vyberte Vymazať PIC, potom Program PIC a potom Overiť PIC. Pri troche šťastia dostanete správu o úspešnom dokončení.

Odstráňte kábel ICSP, Reštartujte PIC, dúfajme, že uvidíte displej PICBIOS na LCD, inak skontrolujte svoje pripojenia. Skontrolujte ponuku zavádzania stlačením ľavého a pravého tlačidla.

4.4 Sériové pripojenie (hyperterminál alebo tmel)

Teraz skontrolujte sériové pripojenie medzi PIC a PC. Pripojte sériový kábel z PC COM1 k vývojovej doske a spustite komunikačný program, ako napríklad starý hyper-terminál Win-XP alebo PUTTY.

Ak používate Hyperterminál, nakonfigurujte ho nasledovne. V hlavnej ponuke volajte> Odpojiť. Potom Súbor> Vlastnosti> Pripojiť na kartu. Vyberte Com1 a potom kliknite na tlačidlo Konfigurovať. Vyberte 9600 bps, bez parity, 8 bitov, 1 stop. Hardvérová kontrola toku “. Potom sa spojte Zavolať> Zavolať.

Ak používate PuTTY, Pripojenie> Sériové> Pripojiť k COM1 a 9600 bps, žiadna parita, 8 bitov, 1 stop. Vyberte „RTS/CTS“. Potom Session> Serial> Open

V ponuke Boot PICBIOS vyberte „Command Mode“a potom stlačte [inc] alebo [dec]. Na obrazovke by sa mala objaviť výzva s výzvou „PIC16F877>“(ak nie, skontrolujte svoje sériové rozhranie). Stlačte? zobraziť zoznam príkazov.

4.5 Program PICMETER

Keď sériové pripojenie funguje, programovanie pamäte flash je také jednoduché ako odoslanie hexadecimálneho súboru. Zadajte príkaz „P“, ktorý odpovie „Odoslať hexadecimálny súbor …“.

Pomocou hyper-terminálu z ponuky Prenos> Odoslať textový súbor> PICMETER1. HEX> Otvoriť.

Pokrok je označený „:“. ako je naprogramovaný každý riadok hex kódu. Nakoniec načítajte úspech.

Ak používate PuTTY, možno budete musieť použiť Poznámkový blok a skopírovať/prilepiť celý obsah PICMETER1. HEX do PuTTY.

Podobne na overenie zadajte príkaz „V“. V hyper-termináli z ponuky Prenos> Odoslať textový súbor> PICMETER1. HEX> OK.

Varovanie = xx … Ak naprogramujete čip 16F877A, zobrazí sa niekoľko varovných hlásení. To súvisí s rozdielmi medzi 877 a 877A, ktoré programujú v 4 slovných blokoch. Linker bohužiaľ nezarovnáva začiatok sekcií na hraniciach 4 slov. Jednoduchým riešením je mať na začiatku každej sekcie 3 pokyny NOP, takže upozornenia ignorujte.

Reštartujte počítač a v ponuke zavádzania systému BIOS zvoľte „Spustiť aplikáciu“. Na displeji LCD by ste mali vidieť PICMETER1.

4.6 Spustite PICMETER1

Teraz začnite stavať ďalšie sekcie vývojovej dosky (obrázok 2), aby funkcie voltmetra a komponentného merača fungovali podľa potreby.

Merač 1 potrebuje určitú kalibráciu. Pri funkcii „Cal“nastavte R10 tak, aby ukazovala hodnoty 80,00, 80,0nF a 10 000uF približne. Potom odčítajte malých 100 pF na funkcii Cx1. Ak je hodnota mimo, zmeňte buď ozdobný kryt C13, alebo zmeňte hodnotu „trimc“v meter1.asm.

Teraz spustite PICBIOS Setup a zmeňte niekoľko nastavení kalibrácie v EEPROM. Kalibrujte teplotu úpravou 16-bitového offsetu (vysoký, nízky formát). Tiež budete musieť zmeniť hodnotu „oneskorenia“.

Ak máte v úmysle postaviť projekt tak, ako je - Blahoželáme - ste skončili! Povedzte mi o svojom úspechu na stránke Instructables.

4,7 MPLAB

Ak však chcete vykonať zmeny alebo projekt ďalej rozvíjať, musíte softvér znova vytvoriť pomocou programu MPLAB. Stiahnite si MPLAB z Microchip. Toto je „starý“program, ktorý sa používa jednoducho a priamočiaro. Neskúsil som nový vývojový nástroj labx, ktorý vyzerá oveľa komplikovanejšie.

Podrobnosti o tom, ako vytvoriť nový projekt a potom pridať súbory do projektu v úplnej dokumentácii.

Krok 5: Fotografie z testovania

Fotografie z testovania
Fotografie z testovania
Fotografie z testovania
Fotografie z testovania
Fotografie z testovania
Fotografie z testovania

Fotografia hore na teplomere s údajom 15 ° C

Frekvencia testovania, čítanie = 416k

Testovací induktor s označením 440uF, číta 435u

Testovanie odporu 100 k, čítanie 101 k, je jednoduché.

Testovanie kondenzátora 1000pF, nameraná hodnota je 1,021nF

Krok 6: Referencie a odkazy

6.1 Údajový list PIC16F87XA, Microchip Inc.

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

6.2 Špecifikácia programovania pamäte PIC16F87XA FLASH, mikročip

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

6.3 Aplikačná poznámka AN589, Microchip Inc.

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

6.4 PICPGM na stiahnutie

picpgm.picprojects.net/

6,5 MPLab IDE v8.92 na stiahnutie zadarmo, mikročip

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

6.6 Dátové listy pre moduly Hope RFM01-433 a RFM02-433, RF Solutions

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

6,7 LT Spice, analógové zariadenia

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

6,8 Obvod programátora na základe projektov AN589, Best-Microcontroller-Projects

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

6.9 Otvorené zdrojové súbory

open_source

Odporúča: