Cov txheej txheem:

High Resolution Zauv Tus Zauv: 5 Cov Kauj Ruam (nrog Duab)
High Resolution Zauv Tus Zauv: 5 Cov Kauj Ruam (nrog Duab)

Video: High Resolution Zauv Tus Zauv: 5 Cov Kauj Ruam (nrog Duab)

Video: High Resolution Zauv Tus Zauv: 5 Cov Kauj Ruam (nrog Duab)
Video: Python! Which Objects Can Be Set as Dictionary Keys? 2024, Kaum ib hlis
Anonim

Cov lus qhia no qhia tau hais tias tus lej sib npaug sib npaug muaj peev xwm ntsuas qhov nrawm nrawm thiab nrog qhov tsim nyog raug. Nws tau ua nrog cov txheej txheem txheem thiab tuaj yeem ua rau hnub so (nws coj kuv me ntsis ntev dua:-))

EDIT: Txoj cai tam sim no muaj nyob ntawm GitLab:

gitlab.com/WilkoL/high-resolution-frequency-counter

Kauj Ruam 1: Suav Tsev Zaus Zaus Suav

Suav Tsev Zaus Zaus Suav
Suav Tsev Zaus Zaus Suav
Suav Tsev Zaus Zaus Suav
Suav Tsev Zaus Zaus Suav

Txoj kev hauv tsev qub los ntsuas qhov zaus ntawm lub teeb liab yog siv lub logic THIAB lub rooj vag, pub lub teeb liab los ntsuas rau hauv ib qho chaw nres nkoj thiab teeb liab nrog qhov tseeb 1 thib ob lub sijhawm siab mus rau lwm qhov chaw nres nkoj thiab suav qhov tso tawm. Qhov no ua haujlwm tau zoo heev rau cov cim ntawm ob peb kHz zoo rau hauv GHz. Tab sis dab tsi yog tias koj xav ntsuas lub teeb liab qis nrog kev daws teeb meem zoo? Hais tias koj xav ntsuas qhov zaus ntawm lub ntsiab (ntawm no 50 Hz). Nrog rau lub tsev kawm qub txoj hauv kev koj yuav pom qhov tsis tu ncua 50 ntawm koj cov zaub yog tias koj muaj hmoo, tab sis feem ntau koj yuav pom cov zaub hloov ntawm 49 txog 50 lossis 50 txog 51. Qhov kev daws teeb meem yog 1 Hz, thiab qhov ntawd yog nws. Koj yuav tsis pom 50.002 Hz tshwj tsis yog tias koj txaus siab ua kom lub rooj vag nkag mus rau 1000 vib nas this. Qhov ntawd ntau dua 16 feeb, rau kev ntsuas ib leeg!

Ib txoj hauv kev zoo los ntsuas cov cim qis qis yog ntsuas lub sijhawm nws. Ua lub ntsiab lus piv txwv ntxiv, muaj lub sijhawm 20 millisecond. Coj tib lub logic THIAB-rooj vag, pub nws nrog, hais 10 MHz (0.1 peb pulses) thiab koj lub teeb liab ntawm lwm qhov chaw nres nkoj thiab tawm tuaj 200000 lub plhaub, yog li lub sijhawm yog 20000.0 uS thiab qhov ntawd txhais rov qab rau hauv 50Hz. Thaum koj ntsuas tsuas yog 199650 pulses zaus yog 50.087 Hz, qhov ntawd zoo dua, thiab nws tsuas yog siv sijhawm thib ob xwb. Hmoov tsis qhov no tsis ua haujlwm zoo nrog ntau zaus. Ua piv txwv, tam sim no peb xav ntsuas 40 kHz. Nrog tib 10 MHz cov tswv yim zaus raws li qhov siv tam sim no peb ntsuas tsuas yog 250 mem tes. Thaum peb suav tsuas yog 249 qhov ntsuas qhov ntsuas tau muab 40161 Hz thiab nrog 251 qhov txiaj ntsig yog 39840 Hz. Qhov ntawd tsis yog qhov kev daws teeb meem siv tau. Tau kawg nce qhov kev siv zaus txhim kho cov txiaj ntsig tab sis muaj kev txwv rau yam koj tuaj yeem siv hauv micro tswj.

Kauj Ruam 2: Txoj Kev Sib Nrauj

Txoj Kev Sib Nrauj
Txoj Kev Sib Nrauj
Txoj Kev Sib Nrauj
Txoj Kev Sib Nrauj

Kev daws teeb meem uas ua haujlwm rau ob qhov qis thiab ntau dua yog qhov sib npaug sib npaug sib npaug. Kuv sim piav qhia nws txoj cai. Koj pib tawm nrog lub sijhawm ntsuas uas yog kwv yees li 1 thib ob, nws tsis tas yuav yog qhov tseeb tab sis nws yog lub sijhawm tsim nyog rau kev ntsuas. Pub qhov no 1 Hz teeb liab rau hauv D-flipflop ntawm D-input. Tsis muaj dab tsi tshwm sim tam sim no ntawm cov zis (s). Txuas lub teeb liab uas koj xav ntsuas mus rau CLOCK cov tswv yim ntawm D-flipflop.

Sai li qhov teeb liab no dhau los ntawm LOW mus rau HIGH, qhov tso tawm ntawm D-flipflop hloov lub xeev ntawm D-input rau cov zis (Q). Qhov RISING teeb liab mus yog siv los pib suav cov teeb liab nkag mus nrog rau lub moos siv teeb liab.

Yog li koj tab tom suav ob lub cim qhia rau tib lub sijhawm, lub teeb liab koj xav ntsuas thiab siv lub moos. Lub moos siv no yuav tsum muaj tus nqi raug thiab ruaj khov, ib txwm siv lead ua oscillator zoo. Tus nqi tsis tseem ceeb npaum li nws muaj ntau zaus thiab nws tus nqi tau paub zoo.

Tom qab qee lub sijhawm, hais ob peb milliseconds, koj ua D-input ntawm D-flipflop qis dua. Ntawm CLOCK-txuas ntxiv qhov tso tawm Q ua raws lub xeev ntawm kev tawm tswv yim, tab sis tsis muaj dab tsi ntxiv tshwm sim vim tias lub micro tswj tau teeb tsa los ua haujlwm rau RISING teeb liab nkaus xwb. Tom qab ntawd, tom qab ntsuas lub sijhawm dhau (kwv yees li 1 thib ob) koj ua D-input HIGH.

Ib zaug ntxiv ntawm CLOCK-txuas ntxiv Q cov lus tso tawm hauv qab no thiab qhov teeb meem RISING ua rau lub micro tswj, lub sijhawm no los xaus qhov suav ntawm ob lub txee.

Qhov tshwm sim yog ob tus lej. Thawj tus lej yog tus lej ntawm cov noob taum suav los ntawm kev siv. Raws li peb paub qhov siv zaus, peb kuj paub lub sijhawm nws tau suav suav cov mem tes.

Qhov thib ob tus lej yog tus naj npawb ntawm cov mem tes los ntawm lub teeb liab uas peb tab tom ntsuas. Raws li peb tau pib raws nraim ntawm RISING cov npoo ntawm lub cim no peb muaj kev ntseeg siab txog tus naj npawb ntawm cov pa ntawm qhov teeb liab nkag mus.

Tam sim no nws tsuas yog kev suav los txiav txim siab zaus ntawm lub teeb liab nkag.

Piv txwv, cia hais tias peb muaj cov cim no thiab peb xav ntsuas f-input. Kev siv yog 10 MHz, tsim los ntawm quartz siv lead ua oscillator. f_input = 31.416 Hz f_reference = 10000000 Hz (10 MHz), lub sijhawm ntsuas yog kwv yees. 1 thib ob

Hauv lub sijhawm no peb suav 32 lub noob taum. Tam sim no, ib lub sijhawm ntawm qhov teeb liab no siv 1 / 31.416 = 31830.9 uS. Yog li 32 lub sijhawm coj peb 1.0185892 vib nas this, uas tsuas yog dhau 1 vib nas this.

Hauv qhov no 1.0186 thib ob peb kuj yuav suav 10185892 mem tes ntawm qhov teeb meem siv.

Qhov no muab peb cov ntaub ntawv hauv qab no: input_count = 32 reference_count = 10185892 f_reference = 10000000 Hz

Cov mis los xam qhov tshwm sim zaus yog qhov no: freq = (input_count * f_reference) / ref_count

Hauv peb qhov piv txwv uas yog: f-input = (32 * 10000000) / 10185892 = 31.416 Hz

Thiab qhov no ua haujlwm tau zoo rau qhov tsawg zaus nrog rau qhov ntau zaus, tsuas yog thaum lub teeb liab nkag los ze (lossis txawm siab dua) rau qhov siv zaus nws yog qhov zoo dua los siv tus qauv "ntsuas" txoj hauv kev ntsuas. Tab sis tom qab ntawd peb tseem tuaj yeem yooj yim ntxiv qhov sib faib ua ntu zus rau cov lus tawm tswv yim raws li txoj kev sib txawv no muaj qhov kev daws teeb meem zoo ib yam rau ib zaus (txog rau qhov siv dua). Yog li txawm tias koj ntsuas 100 kHz ncaj qha ntawm kev faib los ntawm sab nraud 1000x faib, qhov kev daws teeb meem zoo ib yam.

Kauj Ruam 3: Kho Vajtse thiab Nws Cov Qauv

Kho vajtse thiab nws Schematic
Kho vajtse thiab nws Schematic
Kho vajtse thiab nws Schematic
Kho vajtse thiab nws Schematic

Kuv tau ua ob peb yam ntawm cov suav zaus no. Ntev dhau los kuv tau ua ib qho nrog ATMEGA328 (tib tus tswj xws li muaj nyob hauv Arduino), tom qab nrog ARM micro tswj los ntawm ST. Qhov tseeb tau ua nrog STM32F407 moos ntawm 168 MHz. Tab sis tam sim no kuv xav paub yog tias kuv ua tib yam nrog * ntau * me dua. Kuv xaiv ATTINY2313, uas tsuas yog 2kbyte ntawm FLASH nco thiab 128 bytes ntawm RAM. Cov zaub kuv muaj yog MAX7219 nrog 8 xya ntu qhia rau nws, cov lus qhia no muaj nyob ntawm Ebay rau tsuas yog 2 Euros. ATTINY2313 tuaj yeem yuav tau ib puag ncig 1.5 Euros seem ntawm qhov uas kuv siv tus nqi tsuas yog xees ib thooj. Feem ntau kim yog tej zaum yog lub thawv yas ua haujlwm. Tom qab ntawd kuv txiav txim siab ua kom nws siv lub roj teeb lithium-ion yog li kuv xav tau ntxiv (LDO) 3.3V voltage stabilizer lub roj teeb-them-module thiab roj teeb nws tus kheej. Qhov no nce tus nqi me ntsis, tab sis kuv twv nws tuaj yeem tsim rau tsawg dua 20 Euros.

Kauj ruam 4: Txoj Cai

Txoj Cai
Txoj Cai
Txoj Cai
Txoj Cai

Cov cai tau sau hauv C nrog Atmel (Microchip) Studio 7 thiab ua haujlwm rau hauv ATTINY2313 siv OLIMEX AVR_ISP (clone?). Qhib (main.c) hauv cov ntawv zip hauv qab no yog tias koj xav ua raws cov lus piav qhia ntawm no.

Kev pib

Ua ntej ATTINY2313 tau teeb tsa los siv cov siv lead ua sab nraud vim tias sab hauv RC-oscillator tsis muaj txiaj ntsig rau ntsuas dab tsi. Kuv siv 10 MHz siv lead ua uas kuv mloog kom raug 10 000 000 Hz zaus nrog qhov hloov pauv me me. Kev pib ua haujlwm saib xyuas kev teeb tsa cov chaw nres nkoj rau cov tswv yim thiab cov txiaj ntsig, teeb tsa lub sijhawm thiab ua kom muaj kev cuam tshuam thiab pib ua ntej ntawm MAX7219. TIMER0 tau teeb tsa los suav lub moos sab nraud, TIMER1 lub moos sab hauv thiab tseem yuav ntes tus nqi ntawm lub txee ntawm qhov nce ntawm ntug ntawm ICP, los ntawm D-flipflop.

Kuv yuav txiav txim siab qhov haujlwm tseem ceeb kawg, yog li tom ntej yog kev cuam tshuam ib ntus.

TIMER0_OVF

Raws li TIMER0 suav txog 255 (8 khoom) thiab tom qab ntawd yob mus rau 0 peb xav tau kev cuam tshuam los suav cov naj npawb ntawm cov dej ntws. Qhov ntawd yog txhua yam TIMER0_OVF ua, tsuas yog suav tus lej dhau los. Tom qab tus lej no suav nrog tus nqi ntawm lub txee nws tus kheej.

TIMER1_OVF

TIMER1 tuaj yeem suav txog 65536 (16 khoom), yog li kev cuam tshuam TIMER1_OVF kuj suav tus naj npawb ntawm kev hla. Tab sis nws ua ntau dua. Nws kuj tseem txo qis los ntawm 152 txog 0 uas siv sijhawm li 1 vib nas this thiab tom qab ntawd teeb tus pin tso tawm, mus rau D-input ntawm flipflop. Thiab qhov kawg uas tau ua hauv qhov kev cuam tshuam niaj hnub no yog txhawm rau txo lub sijhawm ua haujlwm tawm, mus ntawm 765 txog 0, uas siv sijhawm li 5 vib nas this.

TIMER1_CAPT

Qhov no yog TIMER1_CAPT cuam tshuam uas tau tshwm sim txhua lub sijhawm D-flipflop xa nws lub teeb liab, ntawm qhov nce ntawm ntug kev tawm tswv yim (raws li tau piav qhia saum toj no). Lub logic ntes saib xyuas kev txuag tus nqi ntawm TIMER1 lub txee thaum lub sijhawm ntawm kev ntes, nws tau txais kev cawmdim nrog rau lub txee txee. Hmoov tsis zoo TIMER0 tsis muaj lub luag haujlwm ntes cov ntaub ntawv yog li ntawm no nws tus nqi tam sim no thiab nws tus nqi tam sim no ntawm lub txee txee tau nyeem. Cov lus-sib txawv tau teeb tsa rau ib qho rau nws qhov haujlwm tseem ceeb los qhia nws cov no yog cov ntaub ntawv tshiab.

Tom ntej no yog ob txoj haujlwm los tswj hwm MAX7219

SPI

Thaum muaj Universal Serial Interface (USI) muaj nyob hauv cov nti Kuv xaiv tsis siv nws. MAX7219 zaub yuav tsum tau tswj ntawm SPI thiab qhov ua tau nrog USI. Tab sis bitbanging SPI yog qhov yooj yim heev uas kuv tsis tau siv sijhawm los ua nws nrog USI.

MAX7219

Cov txheej txheem teeb tsa MAX7219 kuj tseem yooj yim heev thaum koj tau nyeem phau ntawv qhia ntawm nws. Nws xav tau 16 tus nqi me ntsis rau txhua tus lej uas muaj 8 tus lej rau tus lej (1 txog 8) ua raws 8 tus lej rau tus lej nws xav tau los tso tawm.

MAIN-PROG

Qhov kawg yog piav qhia qhov haujlwm tseem ceeb. Nws khiav hauv lub voj tsis kawg (thaum (1)) tab sis tsuas yog ua tiag tiag qee yam thaum muaj cov lus (1) los ntawm kev cuam tshuam ib ntus lossis thaum lub sij hawm ntsuas tawm tau poob mus rau xoom (tsis muaj lub teeb liab nkag).

Thawj qhov uas yuav tsum ua thaum cov lus sib txawv tau teeb tsa rau ib qho, tau rov pib dua lub sijhawm txee, tom qab txhua qhov peb paub tias muaj lub teeb liab tam sim no. D-flipflop tau rov pib dua kom nws npaj tau rau qhov tshwm sim tom ntej uas yuav los tom qab lub sijhawm ntsuas (tos-ib-thib ob).

Cov lej sau npe hauv kev cuam tshuam kev ntes tau ntxiv rau muab suav suav thiab suav suav zaus. (peb yuav tsum ua kom ntseeg tau tias qhov kev siv yeej tsis tuaj yeem yog xoom raws li peb yuav faib los ntawm nws tom qab)

Tom ntej no yog kev suav ntawm qhov zaus ntau. Kuv muaj tseeb tsis xav siv tus lej ntab ntawm lub microcontroller nrog tsuas yog 2kbytes ntawm flash thiab tsuas yog 128 bytes ntawm ram kuv siv cov lej. Tab sis cov zaus tuaj yeem zoo li 314.159 Hz, nrog ob peb zauv zauv. Yog li ntawd kuv muab cov lej nkag mus ntau zaus tsis yog siv cov zaus siv xwb tab sis kuj nrog tus lej sib kis, thiab tom qab ntawd ntxiv tus lej mus rau qhov twg tus lej zauv yuav tsum mus. Cov lej no yuav loj heev thaum koj ua qhov ntawd. Piv txwv li nrog cov tswv yim ntawm 500 kHz, kev siv ntawm 10 MHz thiab tus lej ntawm 100, qhov no muab 5 x 10^14, uas yog qhov loj heev! Lawv yuav tsis haum rau hauv tus lej 32 ntsis yog li kuv siv tus lej 64 ntsis uas yuav mus txog 1.8 x 10^19 (uas ua haujlwm zoo ntawm ATTINY2313)

Thiab qhov kawg uas yuav tsum ua yog xa qhov tshwm sim mus rau MAX7219 zaub.

Txoj cai suav sau ua qee qhov 1600 bytes, yog li nws haum rau hauv 2048 bytes flash muaj nyob hauv ATTINY2313.

Cov fuse-sau npe yuav tsum nyeem zoo li no:

EXTENDED 0xFF

HIGH 0xDF

LOW 0xBF

Kauj Ruam 5: Qhov tseeb thiab raug

Qhov tseeb thiab raug
Qhov tseeb thiab raug
Qhov tseeb thiab raug
Qhov tseeb thiab raug
Qhov tseeb thiab raug
Qhov tseeb thiab raug

Qhov tseeb thiab qhov tseeb yog ob tsiaj nyaum cais. Qhov tseeb ntawm no yog xya tus lej, qhov tseeb qhov tseeb yog nyob ntawm kho vajtse thiab kev ntsuas ntsuas. Kuv ntsuas qhov 10 MHz (5 MHz ntawm qhov ntsuas ntsuas) nrog lwm qhov ntsuas zaus uas muaj GPS qhuab qhia oscillator.

Thiab nws ua haujlwm tau zoo, qhov qis tshaj plaws kuv tau sim yog 0.2 Hz, siab tshaj 2 MHz. Nws yog qhov chaw. Saum toj no 2 MHz tus tswj hwm pib xoob cuam tshuam, tsis yog qhov xav tsis thoob thaum koj paub tias ntawm 2 MHz cov lus tso tawm TIMER0 tsim ntau dua 7800 cuam tshuam ib pliag. Thiab ATTINY2313 yuav tsum ua lwm yam ib yam nkaus, qhov cuam tshuam los ntawm TIMER1, ntawm lwm 150 qhov cuam tshuam ib pliag thiab tau kawg ua qhov kev suav, tswj cov zaub thiab D-flipflop. Thaum koj saib ntawm lub cuab yeej tiag koj yuav pom tias kuv siv tsuas yog xya ntawm yim tus lej ntawm cov zaub. Kuv ua qhov no rau ntau qhov laj thawj.

Thawj yog qhov kev suav ntawm cov lej nkag yog faib, nws yuav luag ib txwm muaj qhov seem, uas koj tsis pom vim nws yog kev faib ua ib feem. Qhov thib ob yog tias quartz siv lead ua oscillator tsis kub ua kom sov.

Cov capacitors uas qhib nws kom raug 10 MHz yog cov khoom siv hluav taws xob, nkag siab zoo rau qhov hloov pauv kub. Tom qab ntawd muaj qhov tseeb tias TIMER0 tsis muaj lub logic tsim los, thiab cov haujlwm cuam tshuam txhua lub sijhawm siv qee lub sijhawm los ua lawv txoj haujlwm. Kuv xav tias xya tus lej yog qhov zoo txaus lawm.

Pom zoo: