Huomaavaiset lukijat huomasivat, että WilkoL-lempinimellä varustetun tekijän artikkeleissa, jotka koskevat virityshaarukkageneraattoria ja sen käyttöä käyttävää kelloa, on esitetty vain yksi taajuusmittari, ja artikkelissa generaattorista, jolla on lasi taajuuden säätöelementtinä, siihen lisättiin toinen, ja hän jopa pääsi siellä KDPV: hen. Tämä tarina on hänestä.
Olen iloinen töistä homebrew oksa päällikkö alkaa teoreettisen osan tutkimuksella, nimittäin valitsemalla menetelmä taajuuden mittaamiseksi. Monissa taajuusmittareissa tähän lasketaan tulosignaalin jaksojen määrä tietyn ajanjakson ajan, esimerkiksi yhden sekunnin ajan:
Tämä menetelmä on hyvä riittävän korkeille taajuuksille, mutta jos taajuus on pieni, se ei salli riittävän suuren määrän desimaalin tarkkuutta. Esimerkiksi, jos mittausjakso kestää yhden sekunnin, niin taajuudelle, joka on luokkaa 50 Hz, nolla desimaalia. Haluat esimerkiksi kolme merkkiä - on olemassa tie ulos, pidennämme mittausjakson 1000 sekuntiin. Mutta se on yksi asia, kun tietokone tai älypuhelin hidastuu, johon kaikki on ainakin tottunut, ja se on aivan toinen asia - jos taajuusmittari liittyy myös tähän hauskaan yritykseen, se lyö käyttäjän täysin itsestään. Yleensä tarvitaan toinen tapa. Mutta entä jos mittaamme värähtelyajan, niin?
Joten tee myös. He ottavat referenssitaajuuden signaalin, joka on useita kertalukuja korkeampi kuin mitattu, ja pohtivat kuinka monta vertailusignaalin jaksoa kulkee mitatun yhden ajanjakson aikana. Joten esimerkiksi referenssitaajuudella 10 MHz ja mitatulla 50 Hz: llä, tämä on 200 000. Tämä tarkoittaa, että ajanjakso on 20 000,0 ms ja moderni (ja muuten ei kovinkaan) mikrokontrolleri, jos ohjelmoija "opettaa" sen laskee jakson helposti taajuudelle, joka on yhtä suuri kuin 50 000 Hz. Jos taajuus nousee 50,087 Hz: iin, niin tulosignaalin yhdessä jaksossa mahtuu esimerkinomaiset 199650 jaksot, ja tällainen muutos taajuusmittarin huomaa reaaliajassa.
Mutta tällä mittausmenetelmällä desimaalien lukumäärä päinvastoin vähenee tulosignaalin taajuuden kasvaessa. Esimerkiksi, jos se on 40 kHz ja referenssi on edelleen 10 MHz, niin taajuudella 40 - 161 Hz saadaan 249 referenssitaajuuden jaksoa ja 39840 Hz - 251 jaksoa. Ainakin kaksi taajuusmittaria ovat kunnossa: toinen korkeille taajuuksille, toimivat ensimmäisellä tavalla, toinen matalille taajuuksille, toisella. Vaikka - odota! Eikö molempia menetelmiä ole mahdollista yhdistää yhdessä taajuusmittarissa? Voit, ja mestari kertoo kuinka. Sinun on otettava tavallinen D-liipaisin, niin sen symboli ja totuustaulukko annetaan:
Ohjattu toiminto näyttää taulukossa neljä signaalia, joista neljäs tuottaa liipaisimen:
Ensimmäinen näistä signaaleista on mitattu taajuus, se syötetään D-liipaisimen kellotuloon. Toinen on esimerkiksi 10 MHz: n referenssitaajuus, joka vaatii suurta vakautta. Kolmas on signaali taajuudella 1 Hz, stabiilisuutta, jota ei vaadita ollenkaan, se viedään samaan liipaisimeen tulossa D. No, neljännen generoi liipaisin ensimmäisestä ja kolmannesta seuraavasti. Kun kolmas signaali vaihtuu nollasta yhteen, liipaisin ei reagoi välittömästi tähän, vaan vasta kun tällainen kytkin tapahtuu ensimmäisen signaalin jälkeen. Siten neljännen signaalin yhden pulssin etuosa osuu täsmällisesti ensimmäisen ensimmäisen pulssin etuosaan. Sitten kolmas signaali, jota seuraa neljäs, vaihtuu nollaan, johon mikro-ohjain ei reagoi millään tavalla, sitten kolmas signaali vaihtuu takaisin yhdeksi, mutta liipaisin ei reagoi siihen uudestaan heti, vaan vasta ensimmäisen signaalin saman kytkennän jälkeen. Ja jälleen ensimmäisen ja neljännen signaalin rintama vastaa täysin. Ja neljännen signaalin koko ajanjaksona sopii kokonaislukumäärä jaksoja ensimmäisestä. Lisäksi - tekninen asia: älä unohda, että meillä on myös toinen signaali. Mikrokontrolleri laskee, kuinka monta ensimmäisen ja toisen signaalin täyttä jaksoa putosi neljännen täyden ajanjakson aikana.
Joten, meillä on kaksi numeroa. Esimerkiksi 32 ja 10185892. Kerro 32 32: llä 10 000 000 (referenssitaajuus) ja jaa luvulla 10185892. Saamme 31,416 Hz. Kolme desimaalia. Ja mittaus pysyy oikein sekä alhaisilla taajuuksilla että korkeilla lähestyen mallia. Ja jos joudut mittaamaan vielä korkeammat taajuudet, voit lisätä jakajan.
Nyt meidän on päätettävä, mistä mikro-ohjaimesta taajuusmittaria käytetään. Mestari on jo yrittänyt saada ne ATmega328: lla ja jopa STM32F407: llä, ajaen kellotaajuudella 168 MHz. Mutta tällä kertaa hän on täynnä minimalismia ja päättää tarkistaa, saako hän samanlaisen tuloksen ATtiny2313: lla.
Hänellä on enemmän kuin tarpeeksi johtopäätöksiä, varsinkin jos käytät LED-näyttöä sisäänrakennetulla ohjainsirulla, kuten MAX7219:
Täydellinen laitekaavio näyttää tältä:
Suhteellisen monimutkaista ohjainta erillisille komponenteille, jotka sisältävät RC-piirejä, diodinrajoitinta ja vahvistinvaiheita, käytetään saamaan suorakulmaisia pulsseja melkein minkä tahansa muodon signaalista. D-liipaisin sijaitsee ulkopuolella, mitatun taajuuden (ensimmäinen) signaali syötetään siihen kuljettajalta, signaalit, joiden taajuudet ovat 10 MHz ja 1 Hz (vastaavasti toinen ja kolmas), vastaanotetaan mikro-ohjaimelta, lähtösignaali (neljäs) menee takaisin mikro-ohjaimeen. Toinen tällainen liipaisin toimii signaalin generoimiseksi ohjauspisteessä. Sama PDF-järjestelmä ZIP-arkistossa on saatavana. täällä.
Laadittuna kaavion päällikkö kerää taajuusmittarin siitä, osoittautuu näin:
Kuvassa, toisin kuin piirissä, on esitetty akku ja latausohjain, isäntä mainitsee myös pulssinvakaimen, mutta missä se on, sitä ei näy. Kaikki nämä komponentit lisättiin myöhemmin, mikä helpotti työskentelyä taajuusmittarilla. 18650-akku on otettava suojana, johtojen juottamista siihen ei voida hyväksyä. Joko lokero tai pistehitsaus.
Laiteohjelmisto (valheita täällä myös ZIP-arkistossa) päällikkö kirjoittaa ottaen huomioon tarpeen siirtää mikrokontrolleri kellosta RC-generaattoriin toimimaan ulkoisesta kvartsista sekä mahdollisuus osoittaa erilaisia toimintoja jokaiselle mikropiirin ulostulolle:
Ladataksesi laiteohjelmiston, ohjattu toiminto ottaa piirijärjestelmän ohjelmoijan Olimexilta. Tämä on bulgarialainen yritys, jonka profiili on lähellä Adafruitia.
Päällikkö sulkee pienen tyhjennyksen näytöllä ja leikkaa sitten kotelon kannessa olevan reiän, jotta tämä tyhjennys suljetaan, koska sen lukemat olivat epätarkkoja kaikista suoritetuista toimenpiteistä huolimatta.Tähän vaikuttavat algoritmin ominaisuudet eikä kideoskillaattorin liian korkea lämpötilavakaus. Sen asettamiseksi isäntä yhdistää ulkoisen taajuusmittarin ohjauspisteeseen kellogeneraattorin taajuudenvakautuksella GPS-vastaanottimesta, jonka jälkeen se asettaa tarkan 5 MHz kääntämällä virityskondensaattorin (liipaisin jakaa kellotaajuuden kahdella). Oikein viritetty taajuusmittari tarjoaa vaaditun tarkkuuden mitattujen taajuuksien alueella 0,2 Hz - 2 MHz. Seuraavat kaksi kuvaa osoittavat, kuinka päällikkö kohdisti saman signaalin samanaikaisesti referenssi- ja todennettuihin taajuusmittareihin: