
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59



Es zinu, ko jūs domājat: "Huh? Ir daudz pamācību, kā izmantot mikrokontrollerus signāla frekvences mērīšanai. Žāvāties." Bet pagaidiet, šajā gadījumā ir jaunums: es aprakstu metodi, kā mērīt frekvences, kas ir daudz augstākas nekā mikrokontrolleris (MCU), un signāla darba ciklu - vienlaicīgi!
Ierīces frekvenču diapazons ir no ~ 43 Hz līdz ~ 450 kHz, savukārt darba cikls ir no 1% līdz 99%.
Ļaujiet man paskaidrot daļu "var izturēt": MCU mēra kvadrātveida viļņu signāla periodu T, izsekojot laiku starp diviem nākamajiem pārejas notikumiem. Piemēram, zems līdz augsts spriegums lec vienā no tās I/O tapām. Tas tiek darīts, saskaitot sava iekšējā pulksteņa impulsu skaitu. Naivi, izmērīto frekvenču augšējai robežai vajadzētu pakļauties Nykvista-Šenona izlases teorēmai; i., tas būtu aptuveni vienāds ar pusi no MCU pulksteņa frekvences. Patiesībā ierobežojums ir daudz, daudz zemāks, jo MCU ir jāizpilda kods, lai apstrādātu pārtraukumus, saglabātu mainīgos, veiktu aritmētiskās darbības, parādītu rezultātus utt. Manos eksperimentos ar 48 MHz MCU minimālais pulksteņa ciklu skaits starp izmērāmām pārejām bija aptuveni 106. Līdz ar to izmērāmā frekvenču diapazona augšējā robeža šajā gadījumā būtu 48 000 /212 /2 = 226,4 kHz.
Kamēr MCU mēra signāla periodu, tas var arī noteikt tā impulsa platumu, P: laiks, kad signāla spriegums paliek augsts. Citiem vārdiem sakot, laiks starp pārejām no zema uz augstu un no augsta uz zemu. Signāla darba cikls tiek definēts šādi:
Pienākums = 100% * P / T
Tāpat kā frekvences gadījumā, impulsu platumam ir praktiski ierobežojumi. Izmantojot iepriekš minēto piemēru, 106 pulksteņa cikli ierobežotu impulsa platumu ne mazāk kā 2,21 mikrosekundes. Vai arī ne mazāk kā 50% pie 226,4 kHz.
Viens no veidiem, kā palielināt kvadrātveida viļņu signālu augšējo frekvences robežu, ir digitālo dalītāju izmantošana, izmantojot flip-flops. Ieejas frekvences dalīšana ar n izmērāmo augšējo diapazonu pagarinātu n reizes. Šī ir lieliska ziņa, digitālajiem dalītājiem ir viens būtisks trūkums: dalīts signāls zaudē informāciju par impulsa platumu (un darba ciklu)! Sadalītāju darbības veida dēļ to izlaidumam vienmēr ir 50% darba cikls. Bummer…
Turpmākajās lappusēs es tomēr parādīšu, kā digitāli sadalīt frekvenci un saglabāt sākotnējo impulsa platumu, ļaujot man izmērīt signālus, kas pārsniedz tiešās skaitīšanas ierobežojumus.
1. darbība. Digitālās frekvences nodaļa



Tradicionālie digitālie frekvenču dalītāji izmanto flip-flops; šī apmācība labi izskaidro principus, kā veidot sadalītājus, izmantojot standarta JK flip-flops. Tas atrisina MCU pārāk augstu ievades frekvenču problēmu, taču tam ir viens būtisks trūkums: dalītajam signālam ir 50% darba cikls neatkarīgi no ieejas signāla darba! Lai saprastu, kāpēc tas tā ir, apskatiet pirmos divus skaitļus. Sākotnējais signāls ar periodu T un impulsa platumu P tiek ievadīts JK flip-flop pulksteņa tapā, kamēr tā J un K tapas vienmēr tiek turētas augstu (pirmais attēls). Visā tiek pieņemta 3.3V loģika. Pieņemsim, ka flip-flopu izraisa pulksteņa pozitīvā (t.i., augošā) mala. Šādos apstākļos izejas tapas stāvokļa izmaiņas (atsevišķi "apgriezieni" un "flopi") notiek katru reizi, kad pulksteņa tapa kļūst no zemas uz augstu. Pulksteņa augstā un zemā pāreja (t.i., negatīvā mala) tiek pilnībā ignorēta. Skatīt otro attēlu. Izejas tapa Q izstaro signālu, kura periods ir divreiz garāks par sākotnējo periodu, t.i., tā frekvence tiek samazināta uz pusi. Izejas impulsa platums vienmēr ir vienāds ar T. Līdz ar to tiek zaudēts sākotnējais impulsa platums P.
Pievienojot vēl vienu JK flip-flop tādā konfigurācijā, kas parādīta trešajā attēlā, sākotnējā frekvence tiek dalīta ar 4. Pievienojot vairāk flip-flopu tādā pašā secībā, frekvence tiek dalīta ar nākamajām pilnvarām 2: 8, 16, 32 utt.
Problēma: kā sadalīt kvadrātveida viļņu frekvenci, vienlaikus saglabājot tā impulsa platumu?
Ideja ir pareizi pievienot maisījumam negatīvu malu izraisītu JK flip-flop. Sauksim to par "Neg FF"; skatīt ceturto attēlu. Šeit "pareizi" nozīmē, ka jaunās flip-flop J un K tapas ir piesaistītas attiecīgi Q un Qbar izejas tapām no dalītāja pa 4 ("Pos FF"), kas parādīts iepriekšējā attēlā. (Šeit "josla" ir horizontālā josla virs simbola Q, kas norāda uz loģisku noliegumu.) Lai redzētu, ko tas sasniedz, apskatiet "Neg FF" funkciju tabulu piektajā attēlā: Neg izejas tapas, Q un Qbar, atspoguļo tā ievades tapu stāvokli, attiecīgi J un K. Tas nozīmē, ka tie atspoguļo Pos 'Q un Qbar stāvokli. Bet Negas flip-flop darbībai jāgaida sākotnējā signāla negatīvā mala, kas pienāk laikā P pēc pozitīvās malas. Aha!
Iegūtās viļņu formas ir ilustrētas sestajā attēlā. "Pos Q" izvada signālu 1/4 frekvencē, "Pos Qbar" ir apgriezts, "Neg Q" seko "Pos Q", kas nobīdīts ar impulsa platumu P, un "Neg Qbar" ir tā apgrieztais. Jūs varat pārbaudīt, vai "Pos Qbar" un "Neg Q" loģiskais AND rada impulsa vilcienu, ko raksturo sākotnējais impulsa platums P un 1/4 frekvences. Bingo!
Sākumā es izmantoju tieši šo izejas signālu, lai barotu MCU. Tomēr tas izrādījās problemātisks ļoti īsiem impulsu platumiem, jo ievadā minētie MCU 106 ciklu ierobežojumi. Šo mazo problēmu esmu atrisinājis, tā vietā izvēloties citu izvadi: "Pos Qbar" UN "Neg Qbar". Apskatot viļņu formas, jums vajadzētu pārliecināt, ka šīs konkrētās viļņu formas impulsa platums P 'svārstās starp T un 2T, nevis (0, T) P diapazonā. P var viegli atgūt no P':
P = 2T - P '
2. darbība. Ieteicamā aparatūra



Man patiešām patīk elektronisko hobiju salīdzinoši jaunpienācējs: Atmel SAM D21 MCU, kuru pamatā ir 32 bitu ARM Cortex M0+ procesors, kas darbojas ar 48 MHz pulksteņa ātrumu, daudz augstāku nekā vecākiem Atmels. Šim projektam es nopirku:
- ItsyBitsy M0 Express MCU plate no Adafruit
- Man gadījās uzlādējams LiPo akumulators no Adafruit
- Vienkrāsains 128x32 SPI OLED displejs (jūs uzminējāt: Adafruit)
- Divu pozitīvu malu izraisīta JK flip-flop SN74HC109 no Texas Instruments
- Divu negatīvu malu izraisīta JK flip-flop SN74HC112 no Texas Instruments
- Četrvietīgi un vārti CD74AC08E no Texas Instruments
- Četrvietīgi VAI vārti CD74AC32E no Texas Instruments
3. solis: ķēde


Pirmajā attēlā parādīta vienkāršota frekvences/darba mērītāja shēma. Visā ir pieņemta 3,3 V CMOS loģika. Līdz ar to ievades kvadrātveida viļņa amplitūdai jābūt starp atbilstošo VIH līmenis (t.i., 2 V) un 3,3 V. Ja nē, jums tas attiecīgi jāpalielina vai jāpaaugstina. Vairumā gadījumu pietiek ar vienkāršu sprieguma dalītāju. Ja vēlaties noformēt savu skaitītāja versiju citā loģikas līmenī, tad jāizmanto cits mikrokontrolleris (MCU), akumulators un displejs, kas darbojas vēlamajā līmenī. Šajā projektā izmantotie loģiskie vārti un flip-flops darbojas ar loģikas līmeņiem jebkur no 2 V līdz 6 V, un vairumā gadījumu tiem vajadzētu būt kārtībā.
Kā parādīts, ItsyBitsy MCU izmanto tapas 9-13, lai sazinātos ar displeju, izmantojot programmatūras SPI protokolu. 3V tapa nodrošina strāvas padevi visai ķēdei. Digitālā ievades tapa 3 pieņem analizēto signālu, bet 2. un 4. tapas kontrolē signāla avotu: vai nu tiešais signāls, kas nāk caur vārtiem AND3 (zemas ieejas frekvences), vai signāls, kas dalīts ar 4 caur vārtiem AND4 (augstas ieejas frekvences), kā aprakstīts 2. darbībā Kods, kas apskatīts nākamajā darbībā, automātiski nosaka ienākošo frekvenču diapazonu un atbilstoši pārslēdz signāla avotu.
Shēma neuzrāda digitālo mikroshēmu savienojumu patieso sarežģītību. Otrais attēls parāda, kā projekts izskatītos uz maizes dēļa. Ieejas signāls caur sarkano vadu nonāk dubultās pozitīvās malas flip-flop 2CLK tapā. UZMANĪBU: Parasti visas flip -flop J un K tapas ir jātur augstu, bet jo īpaši SN74HC109 ir Kbar tapa - apgriezta K tapa. Līdz ar to šai tapai jābūt iezemētai! SN74HC112 pirmajai negatīvajai malai ir 1K un 1J tapa, kas savienota ar SN74HC109 1Q un 1Qbar tapām. SN74HC112 otrā flip-flop nav izmantota, un tās ievades tapas (2K, 2J, 2CLRbar) ir iezemētas. Visām pārējām papildu tapām PREbar (iepriekš iestatīts) un CLRbar (dzidrs) visos flip-flopos jābūt savienotām ar loģiski augstu. Neizmantotās pulksteņa un izejas tapas tiek atstātas nesaistītas. Tāpat neizmantotās ieejas tapas visos vārtos ir iezemētas, bet neizmantotās izejas tapas paliek nesavienotas. Kā es apspriedu savā "Invisible Killer of the Phone Ring" pamācībā, loģisko mikroshēmu neizmantoto ievades tapu iezemēšana novērš nejaušas svārstības un ietaupa akumulatora enerģiju.
4. darbība. Kods un zemo frekvenču mērīšana
Protams, visas darbības notiek zemāk saistītajā kodā. Kad 3. tapas ienākošā ieeja pārslēdzas no digitālā zema uz augstu, MCU sāk skaitīt sava iekšējā 48 MHz pulksteņa impulsus. Tā atzīmē pārejas brīdi no augstās uz zemāko un turpina skaitīšanu līdz nākamajam pārslēgšanās punktam no zemākā uz augstāko, kad tas atkal atsāk visu procesu. Pirmais skaitlis apzīmē impulsa platumu, bet viss skaitlis - signāla periodu. Un tas ir viss noslēpums.
CPU atzīmē šīs pārejas, izmantojot aparatūras pārtraukumus. SAMD21 ir vairāki pulksteņi; mans kods izmanto TC3 vienu. Sākotnēji es sāku lasīt M0 datu lapas stiprinājumu, lai piepūlētos, lai kodētu pārtraukuma apstrādātāju, bet drīz vien esmu atklājis ļoti saistītu kodu Arduino foruma ziņās, ko veidojuši lietotāji electro_95, MartinL un Rucus, kuru ieguldījums ir pienācīgi atzīts. Es iekļāvu un pārveidoju to kombinēto kodu savā; ietaupot man daudz laika!
Kā jau iepriekš minēju, signāla izšķirtspēju ierobežo ~ 106 CPU cikli, lai izpildītu kodu starp pārtraukumiem. Digitālais dalījums ar impulsa platuma saglabāšanu rūpējas par augstām frekvencēm. Savukārt zemās frekvences rada vēl vienu izaicinājumu: tā kā TC3 pulksteņa skaitītājs ir 16 bitu garš, pēc 65, 536 skaitīšanas ierobežojuma pārsniegšanas tas pārplūst. Šo situāciju var risināt, pievienojot pārplūdes pārtraukumu, taču tika izvēlēts cits risinājums: TC3 var izmantot iepriekš pielāgotu (t.i., ar programmatūru sadalītu) CPU pulksteni, nevis aparatūras 48 MHz. Tādējādi, ja signāla periods tuvojas pārplūdes robežai, kods var uzdot TC3 izmantot 24 MHz skaitļus nākamajā periodā un, voila, skaitītājs nokrīt zem 32, 768 skaitļiem. Vēl zemākām frekvencēm TC3 var uzdot saskaitīt 12 MHz impulsus utt. Atbilstošais prescaler tiek automātiski noteikts, pamatojoties uz signāla frekvenci, ar histerēzi, lai saglabātu TC3 skaitītāju pārplūdes robežās. Tā rezultātā ierīces diapazona apakšējā daļa ir aptuveni 43 Hz.
Esat laipni aicināti izmantot kodu un izmantot to savā projektā, taču, publicējot rezultātus, lūdzu, norādiet tā avotu.
Saite uz kodu.
Ieteicams:
Kā izmērīt kondensatoru vai induktoru, izmantojot MP3 atskaņotāju: 9 soļi

Kā izmērīt kondensatoru vai induktoru ar MP3 atskaņotāju: Šeit ir vienkārša tehnika, ko var izmantot, lai precīzi izmērītu kondensatora un induktora kapacitāti un induktivitāti bez dārgas iekārtas. Mērīšanas metodes pamatā ir līdzsvarots tilts, un to var viegli izveidot no nesaprotamas
Šķēršļu novēršana, izmantojot robotu, izmantojot mikrokontrolleru (Arduino): 5 soļi

Šķērslis, lai izvairītos no robota, izmantojot mikrokontrolleru (Arduino): Šajā pamācībā es iemācīšu jums izveidot šķēršļus, lai izvairītos no robota, kas darbojas ar Arduino. Jums jābūt pazīstamam ar Arduino. Arduino ir kontrolieris, kas izmanto mikrokontrolleri atmega. Jūs varat izmantot jebkuru Arduino versiju, bet es
Frekvences mērītājs, izmantojot mikrokontrolleru: 8 soļi

Frekvences mērītājs, izmantojot mikrokontrolleru: šajā apmācībā vienkārši norādīts, kā aprēķināt impulsa avota frekvenci, izmantojot mikrokontrolleru. Impulsa avota augstsprieguma līmenis ir 3,3 V, bet zems - 0 V. Es izmantoju STM32L476, Tiva palaišanas paneli, 16x2 burtciparu LCD dažus vadus 1 000 rez
Kā pagatavot dronu, izmantojot Arduino UNO - Izveidojiet kvadkopteri, izmantojot mikrokontrolleru: 8 soļi (ar attēliem)

Kā pagatavot dronu, izmantojot Arduino UNO | Izveidojiet kvadrakopteru, izmantojot mikrokontrolleru: Ievads Apmeklējiet manu Youtube kanālu. Drone ir ļoti dārgs sīkrīks (produkts), ko iegādāties. Šajā rakstā es apspriedīšu, kā to pagatavot lēti ?? Un kā jūs varat izgatavot šādu par lētu cenu … Nu Indijā visi materiāli (motori, ESC
Pielāgoti sudraba kabeļi Audio/digitālais/augstas frekvences/GPS: 7 soļi

Pielāgoti sudraba kabeļi Audio/digitālais/augstas frekvences/GPS: ar daudziem jauniem audio/video modifikācijām un jaunām ierīcēm, gan audio ipod, gan tagad arī digitāls video, mums ir jāpievieno mūsu sistēmas jaunām ierīcēm ar sarežģītākiem kabeļiem. Daži ļoti dārgi … Šiem ir jābūt komponentiem & materiāli būvniecības projektam