資料介紹
描述
概述
很多時(shí)候,需要產(chǎn)生可編程頻率輸出或?qū)崿F(xiàn)用于各種用途的頻率計(jì)數(shù)器。該項(xiàng)目?jī)H使用低成本(≈5-17 美元)Pro Micro(Sparkfun DEV-12640 或等效克隆)模塊實(shí)現(xiàn)這些功能塊中的一個(gè)或兩個(gè),該模塊帶有 ATMega32U4 處理器芯片和使用 Arduino IDE 編譯器和環(huán)境實(shí)現(xiàn)的軟件。這些功能塊可以單獨(dú)使用,也可以在更大的應(yīng)用程序中一起使用,或者作為獨(dú)立設(shè)備使用。由于它們是獨(dú)立的功能,因此將分別進(jìn)行介紹。作為該項(xiàng)目的一部分,還包括一個(gè)通用主模塊,可用于設(shè)置頻率發(fā)生器或從頻率計(jì)數(shù)器讀取頻率。這可以通過(guò)串行端口完成,或者,
與本網(wǎng)站上列出的許多項(xiàng)目不同,該項(xiàng)目沒(méi)有實(shí)現(xiàn)一些最終設(shè)備,而是專注于頻率發(fā)生器和頻率計(jì)數(shù)器的功能塊。假設(shè)用戶隨后將編寫(xiě)一個(gè)主模塊,將這些模塊部署到所需的任何目的,并且可能包括 LCD 顯示器、鍵盤或其他外部接口,或者可能是用戶需要的某個(gè)更大項(xiàng)目的一部分。最后,由于頻率發(fā)生器和頻率計(jì)數(shù)器都依賴于Pro Micro通常未經(jīng)校準(zhǔn)的內(nèi)部晶振,因此詳細(xì)說(shuō)明如何修改模塊以提高振蕩器的精度。
應(yīng)該注意的是,也可以使用其他帶有 ATMega32U4 處理器的 Arduino 模塊,包括 Arduino Leonardo 和 Arduino Micro 以及可能的其他模塊。
頻率發(fā)生器
該庫(kù)使用 Arduino Pro Micro 模塊(使用 ATMega32U4)上的 Timer 4 實(shí)現(xiàn)可變頻率發(fā)生器。該信號(hào)可用于向任何用戶定義的設(shè)備或電路輸出可調(diào)節(jié)頻率的方波信號(hào)。使用 Pro Micro 模塊本身包含的硬件,頻率發(fā)生器將輸出具有 50% 占空比的方波信號(hào),從 1 Hz 到大約 12MHz。它可以在使用模塊的所有其他功能的同時(shí)使用。此處理器/模塊上的定時(shí)器 4 的獨(dú)特之處在于它可以連接到處理器主時(shí)鐘,也可以連接到 ATMega32U4 中包含的 PLL,提供更高的初始頻率和一些額外的縮放值,包括 1.5x 時(shí)鐘,提供更多的計(jì)數(shù)組合值以產(chǎn)生更接近任何所需頻率的輸出信號(hào)。
用于設(shè)置頻率的固件包含一種獨(dú)特的算法,可通過(guò)從三個(gè)不同的輸入時(shí)鐘頻率之一(通過(guò)片上 PLL)、二進(jìn)制預(yù)分頻器值和一個(gè)計(jì)數(shù)值。對(duì)于所有這些變量,如果必須從外部確定這些變量,則每個(gè)變量要獲得給定頻率的設(shè)置可能具有挑戰(zhàn)性。通過(guò)固件中包含的算法,固件本身為這三個(gè)值中的每一個(gè)確定最佳值,以使輸出頻率盡可能接近請(qǐng)求值。一旦計(jì)算和設(shè)置了這些值,
發(fā)電機(jī)硬件
Pro Micro 模塊將在 Arduino Digital 引腳 5(處理器引腳 PC6)上輸出選定的頻率時(shí)鐘信號(hào),作為 0-5V 50% 占空比的方波信號(hào),無(wú)需對(duì)控制器進(jìn)行進(jìn)一步修改。或者,如果需要,也可以將輸出配置為在 Arduino 數(shù)字引腳 10(處理器引腳 PB6)上輸出信號(hào)。下圖顯示了 Pro Micro 模塊上頻率發(fā)生器輸出的引腳。
根據(jù)您的應(yīng)用,可能不需要額外的電路,但如果需要與模塊輸出引腳不同的電平或更大的功率,則可能需要外部放大器、電平轉(zhuǎn)換器或電阻分壓器。還顯示了一個(gè) 5V 電源,如果需要,它可用于為該外部電路供電,其功率要求小于 100mA。
該發(fā)生器的頻率精度與 Pro Micro 模塊上的晶振直接相關(guān),通常在 0.1-0.2% 之間,但通常比這更接近標(biāo)稱頻率。如果需要更高的精度,請(qǐng)參閱下面的部分,詳細(xì)說(shuō)明對(duì) Pro Micros 晶體振蕩器的修改。頻率精度還與處理器芯片的各個(gè)寄存器中設(shè)置的值有關(guān)。雖然該算法試圖確定 PLL、預(yù)分頻器和計(jì)數(shù)器的最佳值,但有些頻率是硬件無(wú)法獲得的,無(wú)需額外的軟件干預(yù),這超出了本項(xiàng)目的范圍。幾乎所有較低的頻率(低于約 5KHz)都是完美的(或接近完美的),這意味著模塊可以輸出準(zhǔn)確的頻率,但隨著要求的頻率越來(lái)越高,將存在無(wú)法實(shí)現(xiàn)準(zhǔn)確頻率的“差距”。在這些情況下,將設(shè)置可獲得的最接近的頻率,并且通常對(duì)于大多數(shù)應(yīng)用來(lái)說(shuō)足夠接近。輸出的占空比固定為 50%。
發(fā)生器軟件接口功能
該庫(kù)在一個(gè)名為“FrequencyGenerator”的類中實(shí)現(xiàn)。這個(gè)類有兩個(gè)函數(shù):“set”和“read”來(lái)設(shè)置頻率發(fā)生器和讀取發(fā)生器設(shè)置的當(dāng)前頻率。
** 設(shè)置功能 **
使用頻率設(shè)置命令設(shè)置頻率,該命令將頻率設(shè)置為最接近的可獲得值。函數(shù) 'FrequencyGenerator::set' 接受一個(gè)長(zhǎng)整數(shù),它是以赫茲為單位輸出的頻率。這可以從小于 0(返回電流頻率)的值到 0(發(fā)電機(jī)關(guān)閉)到超過(guò)微時(shí)鐘頻率(8MHz)的 1/2 的值。在現(xiàn)有的 Pro Micro 模塊可用的情況下,據(jù)觀察它的工作頻率約為 12MHz。如果設(shè)置了請(qǐng)求的頻率,則“FrequencyGenerator::set”函數(shù)返回設(shè)置的頻率,如果無(wú)法設(shè)置為所需的頻率,則返回 -1。由于定時(shí)器設(shè)置為自動(dòng)重新加載,因此不需要中斷或其他軟件開(kāi)銷——只需調(diào)用該函數(shù),然后硬件將產(chǎn)生輸出頻率,無(wú)需額外干預(yù)。
要關(guān)閉頻率發(fā)生器,只需調(diào)用頻率為零的“FrequencyGenerator::set”函數(shù)。這將禁用頻率發(fā)生器并將其輸出引腳置于高阻抗?fàn)顟B(tài)。也可以通過(guò)使用 -1(或任何負(fù)數(shù))調(diào)用“FrequencyGenerator::set”函數(shù)來(lái)請(qǐng)求當(dāng)前頻率。
** 讀取功能 **
還提供了一個(gè)函數(shù)“FrequencyGenerator::read”來(lái)請(qǐng)求頻率發(fā)生器模塊的當(dāng)前頻率。返回的值將是控制器輸出的實(shí)際頻率(以及硬件能夠輸出的最接近的值),并且可能與上次設(shè)置的頻率略有不同。這以長(zhǎng)整數(shù)形式返回。
生成器代碼詳細(xì)信息和選項(xiàng)
頻率發(fā)生器功能包含在文件“FrequencyGenerator.cpp”中。包含類原型的頭文件位于文件“FrequencyGenerator.h”中。該模塊是專門為 Pro Micro 設(shè)備(或具有類似功能塊的其他微控制器設(shè)備)上的 ATMega32U4 的定時(shí)器 4 編寫(xiě)的,假設(shè)控制器作為 USB 設(shè)備運(yùn)行,PLL 設(shè)置為 96MHz,晶振為 16MHz(這是Pro Micro 設(shè)備的默認(rèn)設(shè)置)。它可能會(huì)為其他計(jì)時(shí)器重新設(shè)計(jì),但分辨率會(huì)更低。
“FrequencyGenerator.cpp”模塊中的代碼包含將處理器中的各種寄存器設(shè)置為所需輸入頻率的最佳值的算法。它通過(guò)連續(xù)對(duì)每個(gè) PLL 設(shè)置進(jìn)行計(jì)算,然后確定哪個(gè) PLL 設(shè)置提供最接近所需值的輸出頻率來(lái)實(shí)現(xiàn)。預(yù)分頻器和計(jì)數(shù)值通過(guò)計(jì)算所需頻率的 log2 來(lái)確定,然后將其轉(zhuǎn)換為寄存器的預(yù)分頻器和計(jì)數(shù)值。一旦確定了最佳組合,就將物理寄存器設(shè)置為這些值。代碼中的注釋更詳細(xì)地詳細(xì)說(shuō)明了該算法。
在 FrequencyGenerator.cpp 模塊中有 2 個(gè)條件編譯定義,可以定義也可以不定義。其中之一是“FRQGENUSEPB6”,如果定義為非零,將使用 Arduino 數(shù)字引腳 10(處理器引腳 PB6)作為發(fā)生器的輸出,而不是默認(rèn)的 Arduino 數(shù)字引腳 5(處理器引腳 PC6)。另一個(gè)定義是“FRQGENDEBUG”,如果定義為非零,則在設(shè)置頻率以進(jìn)行調(diào)試時(shí)會(huì)將一些變量值輸出到串行端口。
頻率計(jì)數(shù)器
該庫(kù)使用屬于 Pro Micro 模塊的硬件定時(shí)器/計(jì)數(shù)器資源來(lái)實(shí)現(xiàn)頻率計(jì)數(shù)器。它使用定時(shí)器 0 和另一個(gè)定時(shí)器作為 Pro Micro 模塊上的“門”定時(shí)器。它既可以用作傳統(tǒng)頻率計(jì)數(shù)器,通過(guò)在固定時(shí)間(門限時(shí)間)內(nèi)對(duì)輸入引腳上發(fā)生的脈沖數(shù)進(jìn)行計(jì)數(shù),也可以用作周期計(jì)數(shù)器,其中輸入波形的單個(gè)或多個(gè)周期的時(shí)間被測(cè)量。傳統(tǒng)的頻率計(jì)數(shù)模式最適合測(cè)量較快的信號(hào),而周期測(cè)量模式在測(cè)量較低頻率的信號(hào)時(shí)提供更高的亞赫茲分辨率。該模塊的接口是通過(guò) 2 到 3 個(gè)主要功能。第一個(gè)函數(shù)向用戶提供讀取頻率,而第二個(gè)功能將頻率計(jì)數(shù)器設(shè)置為傳統(tǒng)計(jì)數(shù)模式或周期測(cè)量模式,還設(shè)置門時(shí)間或輸入脈沖數(shù)以進(jìn)行平均。如果需要,可以使用另一個(gè)功能來(lái)確定是否有新的“新”讀數(shù)可用。由于該模塊使用硬件定時(shí)器和中斷例程來(lái)實(shí)現(xiàn)頻率計(jì)數(shù)器,因此除了用戶需要編寫(xiě)的任何代碼之外,它還可以在使用 Pro Micro 模塊和 Arduino 環(huán)境的所有其他功能的同時(shí)使用。
當(dāng)計(jì)數(shù)器配置為傳統(tǒng)計(jì)數(shù)模式時(shí),定時(shí)器 0 配置為對(duì)輸入脈沖進(jìn)行計(jì)數(shù),第二個(gè)定時(shí)器(定時(shí)器 1)用作門控源。計(jì)數(shù)時(shí),每次 Timer 0 溢出時(shí),中斷例程都會(huì)將保存的計(jì)數(shù)變量加一。門控計(jì)時(shí)器 (Timer 1) 用于定期將此累積計(jì)數(shù)移動(dòng)到另一個(gè)變量,然后在請(qǐng)求頻率時(shí)將其返回給用戶,然后重置 Timer 0 計(jì)數(shù)器中的計(jì)數(shù)(以及保存的計(jì)數(shù)變量)下一個(gè)周期。門控定時(shí)器可以配置為 10 毫秒、100 毫秒、1 秒、10 秒或 100 秒之一。門控定時(shí)器也是中斷驅(qū)動(dòng)的,因此計(jì)數(shù)器模塊可以準(zhǔn)確地計(jì)時(shí)門控窗口。
當(dāng)計(jì)數(shù)器處于周期測(cè)量模式時(shí),定時(shí)器 0 用于對(duì)輸入引腳上的單次跳變或多次跳變進(jìn)行計(jì)數(shù)。系統(tǒng)微秒計(jì)數(shù)(即 Arduino 環(huán)境的一部分)在收到第一個(gè)轉(zhuǎn)換時(shí)保存,然后當(dāng)?shù)诙€(gè)轉(zhuǎn)換發(fā)生時(shí),再次讀取微秒值并從中減去保存的微秒值以確定周期的輸入信號(hào)。然后當(dāng)用戶請(qǐng)求頻率時(shí),將該值轉(zhuǎn)換為頻率并返回給用戶。在周期測(cè)量模式下,可以使用三種平均模式中的一種。可選擇不平均或平均 10 或 100 個(gè)輸入脈沖。這種平均是通過(guò)設(shè)置定時(shí)器 0 計(jì)數(shù)器在 1、10 或 100 次轉(zhuǎn)換時(shí)產(chǎn)生中斷來(lái)完成的,
計(jì)數(shù)器硬件
頻率計(jì)數(shù)器的輸入位于 Pro Micro (ATMega32U4) 的 Arduino 數(shù)字引腳 6(處理器引腳 PD7)上,并假定為要計(jì)數(shù)的低脈沖序列。下圖顯示了計(jì)數(shù)器輸入以及外部門輸入引腳(稍后詳述)。外部門輸入(如果使用)位于 Arduino 數(shù)字引腳 9(處理器引腳 PB5)上,但如果需要,可以移動(dòng)到另一個(gè)引腳。
顯然,輸入信號(hào)必須是適當(dāng)?shù)?TTL 電平才能被計(jì)數(shù)。將較低電平信號(hào)放大到這個(gè) TTL 電平(如果需要)的輸入放大器超出了這項(xiàng)工作的范圍。還展示了一個(gè) 5V 電源,如果需要,它可用于為任何外部電路供電,其功率要求小于 100mA。
此計(jì)數(shù)器的頻率精度與 Pro Micro 模塊上的晶振直接相關(guān),通常在 0.1-0.2% 之間,但通常更接近實(shí)際頻率。如果需要更高的精度,請(qǐng)參閱下面的部分,詳細(xì)說(shuō)明對(duì) Pro Micros 晶體振蕩器的修改。
精度還與傳統(tǒng)頻率計(jì)數(shù)器模式的門控定時(shí)器和周期測(cè)量模式的毫秒定時(shí)器的精度直接相關(guān)。在這個(gè)項(xiàng)目中,這兩個(gè)定時(shí)器都是中斷驅(qū)動(dòng)的,這意味著它們?cè)跊](méi)有任何軟件干預(yù)的情況下自主發(fā)生,并且在 Arduino 環(huán)境中盡可能接近立即發(fā)生。雖然中斷程序有一些開(kāi)銷,但這通??梢院雎圆挥?jì),并且讀取的頻率通常非常接近或通常完全正確的頻率。
對(duì)該項(xiàng)目開(kāi)發(fā)期間可用的不同模塊進(jìn)行的測(cè)試表明,在傳統(tǒng)的頻率計(jì)數(shù)器模式下,Pro Micro 模塊能夠可靠地計(jì)算高達(dá)約 8MHz 的頻率(處理器時(shí)鐘頻率的 1/2)。在周期測(cè)量模式下,該模式旨在以更高的分辨率測(cè)量較低頻率,當(dāng)平均設(shè)置為 10 和 100 和 10 KHz 時(shí)(平均值為 1),最高 20 KHz 的頻率是可能的且可靠的。在周期測(cè)量模式下,如果頻率高于這些值,模塊將報(bào)告值“999999”或在極少數(shù)情況下報(bào)告錯(cuò)誤值。
如果應(yīng)用需要測(cè)量高于約 8 MHz 的頻率,則可以在將輸入信號(hào)連接到此計(jì)數(shù)器模塊之前將外部分頻器鏈(預(yù)分頻器)添加到輸入信號(hào)中,然后相應(yīng)地調(diào)整此模塊返回的值。一個(gè) 74196 或一組 74F74 可用于高達(dá)約 60-100MHz 的頻率,而其他預(yù)分頻器 IC 可用于更高的頻率。如果使用預(yù)分頻器,則可以將“FrequencyCounter.cpp”模塊中名為“FCPRESCALER”的定義調(diào)整為除數(shù),以便使用預(yù)分頻器時(shí)返回的輸出頻率是正確的。
計(jì)數(shù)器軟件接口功能
該庫(kù)在一個(gè)名為“FrequencyCounter. 這個(gè)類有兩個(gè)主要功能和幾個(gè)可能需要的輔助功??能,具體取決于選擇的具體實(shí)現(xiàn)。
** 模式功能 **
第一個(gè)函數(shù)“FrequencyCounter::mode”用于設(shè)置或讀取計(jì)數(shù)模式,包括模式和門時(shí)間或平均次數(shù)。這使用單個(gè)參數(shù)調(diào)用,該參數(shù)指定要使用的模式,或請(qǐng)求當(dāng)前模式。如果輸入?yún)?shù)為 -1(或任何小于 0 的值),則函數(shù)返回當(dāng)前模式值。如果輸入?yún)?shù)在 0 到 9 的范圍內(nèi),則設(shè)置以下模式:
如果輸入?yún)?shù)超出上述值的范圍,該函數(shù)總是返回當(dāng)前選擇的模式或 -1。模式 6 到 9 可能存在也可能不存在,具體取決于模塊的編譯方式。如果在沒(méi)有參數(shù)的情況下調(diào)用“FrequencyCounter::mode”函數(shù),它將返回當(dāng)前模式。
** 讀取功能 **
第二個(gè)函數(shù)“FrequencyCounter::read”用于讀取頻率計(jì)數(shù)器并返回一個(gè)字符串,該字符串是讀取頻率的數(shù)字浮點(diǎn)值。調(diào)用此函數(shù)時(shí),會(huì)使用一個(gè)指向?qū)⒂稍摵瘮?shù)填充的字符串緩沖區(qū)的指針和一個(gè)名為“Wait”的參數(shù),如果非零將導(dǎo)致該函數(shù)等待,直到頻率計(jì)數(shù)器的新“新”讀數(shù)為可用的。該函數(shù)返回一個(gè)指向包含此頻率值的字符串的指針,其格式為“12345678”或“12345.67890”(或類似)。傳遞給此函數(shù)的字符串緩沖區(qū)位置必須足夠大以容納此函數(shù)將創(chuàng)建的字符串——建議使用 15 個(gè)或更多字符。參數(shù) 'Wait' 應(yīng)該為零以獲取最后讀取的頻率,或非零以等待新的“新”頻率計(jì)數(shù)。需要注意的是,如果調(diào)用函數(shù)時(shí)將 'Wait' 參數(shù)作為非零值,則函數(shù)可能需要長(zhǎng)達(dá) 100 秒才能返回,具體取決于頻率計(jì)數(shù)器模塊所處的模式。如果這是不可接受的,還可以使用輪詢功能來(lái)查看是否有新的頻率讀數(shù)可用。此函數(shù)返回一個(gè)可以是浮點(diǎn)值的字符串,而不是實(shí)際的二進(jìn)制浮點(diǎn)值類型,因此不需要編譯器的浮點(diǎn)函數(shù)(占用大量代碼空間)。
** 可用功能 **
如上一段所述,還包括確定是否有新的“新”頻率讀數(shù)可用的功能。函數(shù) ''FrequencyCounter::available'' 不需要參數(shù),如果新值準(zhǔn)備好則返回 1,如果新值未準(zhǔn)備好則返回 0。
大多數(shù)用戶只需要上面提到的兩個(gè)或三個(gè)功能。在特殊情況下,還可以使用其他一些功能。
** 讀取二進(jìn)制函數(shù) **
當(dāng)函數(shù) ''FrequencyCounter::read'' 僅使用“Wait”參數(shù)(并且沒(méi)有指向字符串參數(shù)的指針)調(diào)用時(shí),讀取函數(shù)返回一個(gè)長(zhǎng)整數(shù),它是讀取頻率的未更正計(jì)數(shù)或周期。然后,用戶必須根據(jù)應(yīng)用程序的需要將其縮放/轉(zhuǎn)換為適當(dāng)?shù)闹怠?/font>與 ''FrequencyCounter::read'' 函數(shù)的字符串版本一樣,此函數(shù)也接受一個(gè) 'Wait' 參數(shù),其工作方式與該函數(shù)相同。此功能通常不使用,但在其他代碼(可能在主機(jī)應(yīng)用程序中)出于任何原因需要讀取未更正的二進(jìn)制值的情況下可用。請(qǐng)參閱此函數(shù)的字符串版本的代碼,了解如何縮放此值并將其轉(zhuǎn)換為浮點(diǎn)字符串,以了解此未更正的值如何“更正”。
** FreqCtrGateISR 函數(shù) **
最后,如果不需要與系統(tǒng)定時(shí)器的默認(rèn)鏈接及其 10mS 中斷,則用戶例程可以調(diào)用名為“FreqCtrGateISR”的函數(shù)。該函數(shù)不是類的一部分,不接受任何參數(shù)并且不返回任何內(nèi)容。(如果使用已發(fā)布的默認(rèn)庫(kù)文件,則不需要此功能。)
計(jì)數(shù)器代碼詳細(xì)信息和選項(xiàng)
頻率計(jì)數(shù)器功能包含在文件“FrequencyCounter.cpp”中。包含類原型的頭文件在文件“FrequencyCounter.h”中。該模塊包含上述功能的代碼。根據(jù)該項(xiàng)目用戶所需的配置,可能還需要模塊“SysTimer.cpp”和“PCInterrupt.cpp”。
在傳統(tǒng)的頻率計(jì)數(shù)器模式中,該模塊需要一個(gè)“門控”源,該源通常是一個(gè)以固定時(shí)間速率發(fā)生的不同定時(shí)器。如果不使用提供的“SysTimer.cpp”模塊,則需要以適當(dāng)?shù)闹芷谒俾剩?0mS)調(diào)用函數(shù)“FreqCtrGateISR”。這個(gè)模塊的精度直接受這個(gè)門控時(shí)序源的精度影響!
計(jì)數(shù)器系統(tǒng)定時(shí)器和處理器資源
該模塊專為使用 Atmel ATMega32U4 的 Arduino Pro Micro 模塊而設(shè)計(jì),并使用 Timer 0 作為計(jì)數(shù)輸入。最好使用另一個(gè)定時(shí)器來(lái)實(shí)現(xiàn)此功能,但不幸的是,定時(shí)器 1 的外部時(shí)鐘引腳(ATMega32U4 引腳 26)沒(méi)有連接到模塊連接器,只有定時(shí)器 0 和定時(shí)器 1 有外部時(shí)鐘輸入,因此沒(méi)有其他選擇除了使用 Timer 0。眾所周知,Timer 0 通常用于 Arduino 系統(tǒng)計(jì)時(shí)功能(延遲、毫秒、微秒等),因此唯一的選擇是將這些功能移至其他計(jì)時(shí)器。這是通過(guò)重新設(shè)計(jì)作為 Arduino 系統(tǒng)一部分的 stock Wiring.c 模塊以為此目的使用不同的計(jì)時(shí)器來(lái)完成的。然后這個(gè)“系統(tǒng)”定時(shí)器被擴(kuò)展為也用于頻率計(jì)數(shù)器功能的門定時(shí)器。
通過(guò)在構(gòu)建中簡(jiǎn)單地包含“SysTimer.cpp”,通常由 Timer 0 實(shí)現(xiàn)的功能(延遲、毫秒、微秒等)被移動(dòng)到使用這個(gè)備用計(jì)時(shí)器(可配置為 Timer 1 或 Timer 3),以及一個(gè)掛鉤到定時(shí)器的中斷服務(wù)程序 (ISR) 是可訪問(wèn)的,允許該定時(shí)器用于頻率計(jì)數(shù)器門控功能。最好將定時(shí)器 1 用于門,因?yàn)樗哂凶罡叩闹袛鄡?yōu)先級(jí)(甚至高于定時(shí)器 0),但定時(shí)器 1 或定時(shí)器 3 都可以使用。如果用戶的應(yīng)用程序不包含 SysTimer 模塊,則它必須使用必須編寫(xiě)的其他代碼調(diào)用函數(shù)“FreqCtrGateISR”。如果需要,SysTimer 模塊還可用于頻率計(jì)數(shù)器以外的其他用途。
顯然,當(dāng)為“系統(tǒng)”定時(shí)器功能和頻率計(jì)數(shù)器門控功能使用備用定時(shí)器時(shí),定時(shí)器將不適用于 PWM 功能或任何其他 Arduino“內(nèi)置”庫(kù)函數(shù),通常取決于定時(shí)器 0 或?yàn)锳rduino 軟件中的“系統(tǒng)”定時(shí)器。
需要注意的是,如果使用 USB 與 Pro Micro 模塊通信,則返回的計(jì)數(shù)可能不如使用其他或不使用外部通信方式時(shí)精確。這是因?yàn)?USB 中斷的優(yōu)先級(jí)高于用于門控定時(shí)器的定時(shí)器 1/定時(shí)器 3 定時(shí)器。一種可能的替代方法是為門控時(shí)間設(shè)置另一個(gè)定時(shí)器并將其輸出到引腳上,然后使用引腳更改或外部中斷作為門控定時(shí)器源(引腳更改和外部中斷的優(yōu)先級(jí)高于 USB 中斷)。另請(qǐng)注意,當(dāng)測(cè)量高于約 2MHz 的頻率時(shí),返回的計(jì)數(shù)在極少數(shù)情況下可能會(huì)少一兩個(gè)計(jì)數(shù)。這是因?yàn)樵撃K中的代碼必須清除計(jì)數(shù)器,將其關(guān)閉然后重新打開(kāi),這需要幾個(gè) CPU 周期。
計(jì)數(shù)器外部門控
該頻率計(jì)數(shù)器模塊也可以設(shè)置為使用外部選通。為此,將“FCEXTERN”定義為非零,并在此草圖中包含模塊“PCInterrupt.cpp”。然后通過(guò)將“模式”功能設(shè)置為 6,由“FCEXTGATEMSK”定義的 Arduino 引腳將用作門輸入。默認(rèn)情況下,此信號(hào)在 Arduino 數(shù)字引腳 9(處理器引腳 PB5)上輸入,但如果需要,可以移動(dòng)到另一個(gè)引腳。有關(guān)“PCINTMASKxx”引腳列表,請(qǐng)參見(jiàn)“PCInterrupt.h”——這些引腳中的任何一個(gè)都可以使用。激活時(shí),此引腳上的低電平打開(kāi)柵極,高電平時(shí)關(guān)閉柵極。包括外部門功能是可選的,但包括在分發(fā)文件中的定義。添加外部門控功能會(huì)使模塊的代碼大小增加約 250 字節(jié)。如果不包括在內(nèi),
使用外部門功能和另一個(gè)定時(shí)器設(shè)置為自主工作,然后在其他引腳上輸出其信號(hào),然后將此引腳連接到“外部門”輸入是解決上述 USB 問(wèn)題的一種可能方法,該問(wèn)題可能會(huì)影響計(jì)數(shù),因?yàn)橥獠块T輸入的優(yōu)先級(jí)都高于 USB 中斷。
計(jì)數(shù)器周期測(cè)量模式
在周期測(cè)量模式下使用頻率計(jì)數(shù)器模塊時(shí),定時(shí)器 0 用于檢測(cè)輸入引腳上的轉(zhuǎn)換,然后使用 Arduino 系統(tǒng)微秒計(jì)數(shù)器測(cè)量這些轉(zhuǎn)換之間的微秒數(shù)。在這種模式下,輸入仍然在同一個(gè) Timer 0 輸入引腳上,但不是計(jì)算在給定時(shí)間內(nèi)發(fā)生的脈沖數(shù),而是將 Timer 0 設(shè)置為在第一次、第十次或第 100 次轉(zhuǎn)換時(shí)產(chǎn)生中斷測(cè)量計(jì)時(shí)器 0 輸入和在其中兩個(gè)轉(zhuǎn)換之間經(jīng)過(guò)的微秒數(shù),然后將其轉(zhuǎn)換為頻率。這允許在最短時(shí)間內(nèi)更準(zhǔn)確地測(cè)量低頻信號(hào)。當(dāng)定時(shí)器 0 設(shè)置為計(jì)數(shù) 10 次轉(zhuǎn)換時(shí),這有效地平均了輸入信號(hào)的 10 個(gè)周期,當(dāng)設(shè)置為 100 時(shí),它平均輸入信號(hào)的 100 個(gè)周期。包括周期測(cè)量模式是可選的,并且僅在定義“FCPERIOD”被定義為非零值(它用于分發(fā)文件)時(shí)才包括在內(nèi)。包括周期測(cè)量模式會(huì)增加模塊的代碼大小約 1000 字節(jié)。
周期測(cè)量模式的計(jì)數(shù)器超時(shí)
使用傳統(tǒng)頻率計(jì)數(shù)模式時(shí),函數(shù)'FrequencyCounter::read'保證在固定時(shí)間后返回;但是在周期測(cè)量模式下,如果沒(méi)有輸入信號(hào),則永遠(yuǎn)不會(huì)發(fā)生新的“新”頻率計(jì)數(shù),讀取函數(shù)也不會(huì)返回。在某些情況下,這可能是有問(wèn)題的。為保證此功能在給定時(shí)間后始終返回,頻率計(jì)數(shù)器模塊包含一個(gè)超時(shí)計(jì)數(shù)器,當(dāng)使用周期測(cè)量模式時(shí),該超時(shí)計(jì)數(shù)器將在給定時(shí)間后超時(shí)。這個(gè)超時(shí)定時(shí)器使用與門計(jì)數(shù)器相同的定時(shí)器中斷,并且是函數(shù)“FreqCtrGateISR”的一部分。如果未找到輸入,則在此計(jì)時(shí)器超時(shí)后,將報(bào)告一個(gè)新的零赫茲頻率(并且頻率讀取函數(shù)將返回)。此超時(shí)值默認(rèn)為 5 秒,但如果需要,可以通過(guò)更改定義的“PERIODTIMOUT”的值來(lái)更改。如果此定義為 0,則期間測(cè)量功能將不包含任何超時(shí)功能。
主模塊
如介紹中所述,該項(xiàng)目還包括一個(gè)“主”模塊(FreqGenCtrApp.ino),用于測(cè)試頻率發(fā)生器和頻率計(jì)數(shù)器模塊。它提供了一個(gè)簡(jiǎn)單的 ASCII 命令接口,其中大部分是 1 或 2 個(gè)字符命令來(lái)控制作為該項(xiàng)目一部分的模塊,或者可以通過(guò)添加 4 個(gè)按鈕開(kāi)關(guān)和一個(gè) LCD 顯示器來(lái)創(chuàng)建一個(gè)獨(dú)立的設(shè)備。它可以與頻率發(fā)生器模塊或頻率計(jì)數(shù)器模塊或兩者一起使用。該模塊的使用是可選的,只是為了提供一種方便的方式來(lái)測(cè)試和驗(yàn)證該項(xiàng)目的兩個(gè)功能塊的操作,并向用戶展示如何調(diào)用該項(xiàng)目中的每個(gè)功能。
串行接口
“FreqGenCtrApp.ino”模塊包含代碼和定義,允許它使用 USB 虛擬 com 端口作為它的命令接口,或者它可以選擇使用 Pro Micro 的 UART 串??行接口作為同一接口。將“COMM”#define 定義為“Serial”將使用 USB 接口,而將其定義為“Serial1”將使用 UART 接口。該模塊還包含一個(gè)簡(jiǎn)單的 printf 接口,允許使用編譯器的 printf 函數(shù)。
** 串行命令 **
主模塊解釋的命令大多是 1 或 2 個(gè)字符的命令,以
獨(dú)立設(shè)備
因?yàn)橄嘈旁S多用戶會(huì)想要一個(gè)簡(jiǎn)單的獨(dú)立頻率發(fā)生器和/或頻率計(jì)數(shù)器而不自己編寫(xiě)它,所以主模塊還包括一個(gè)簡(jiǎn)單的控制器,它使用 4 個(gè)按鈕開(kāi)關(guān)和一個(gè) 2x16 LCD 顯示器來(lái)實(shí)現(xiàn)兩者的這些功能。其中兩個(gè)按鈕控制頻率發(fā)生器,而另外兩個(gè)按鈕用于設(shè)置頻率計(jì)數(shù)器門模式。這種自包含的獨(dú)立設(shè)備可以用來(lái)代替或補(bǔ)充前面詳述的串行接口。
發(fā)電機(jī)設(shè)置控制會(huì)將輸出頻率更改為從 10Hz 到 4MHz 的 18 種不同設(shè)置之一,以 1、2、5 的順序在所有十年中進(jìn)行。頻率計(jì)數(shù)器選擇器將選擇頻率計(jì)數(shù)器能夠設(shè)置的 9 種模式和選通時(shí)間中的任何一種。這包括 10mS、100mS、1、10 和 100 秒的選通時(shí)間和外部選通模式,以及 3 種周期測(cè)量模式,平均為 1、10 或 100 次平均值。實(shí)現(xiàn)這一獨(dú)立功能所需的只是一個(gè) LCD 顯示屏和四個(gè)按鈕開(kāi)關(guān)。LCD 顯示器使用標(biāo)準(zhǔn)的 Arduino “LiquidCrystal”庫(kù)。按鈕接口被實(shí)現(xiàn)為簡(jiǎn)單的去抖動(dòng)數(shù)字輸入。
該項(xiàng)目的主要 Arduino 模塊 (FreqGenCtrApp.ino) 有許多定義,這些定義控制模塊的編譯方式,從而控制程序?qū)?zhí)行的功能。除了控制頻率發(fā)生器和頻率計(jì)數(shù)器模塊的包含的定義外,還有兩個(gè)定義啟用獨(dú)立模式代碼、串行接口代碼以及是否有 LCD 顯示器。定義“FREEIF”控制是否包含獨(dú)立按鈕界面。定義“COMIF”控制串行接口是否可用。最后,定義“HASLCD”應(yīng)包含 LCD 顯示功能。即使不包括獨(dú)立接口,LCD 顯示器也可以與串行接口一起使用。
下面的示意圖顯示了 LCD 顯示器和使用獨(dú)立模式或在設(shè)計(jì)中添加 LCD 顯示器所需的四個(gè)按鈕開(kāi)關(guān)的連接。
所示的大部分部件都可從 Digikey 或 Mouser 獲得。Pro-Micro 模塊可從 Sparkfun(部分 DEV-12640)獲得,或者可以在 eBay 上以更少的價(jià)格獲得等效的克隆。顯示的 LCD 顯示器是 Hantronix HDM16216H-5-S00S(無(wú)背光)或 HDM16216L-5-L30S(LED 背光),但其他顯示器也可以使用,只要它們與 Arduino LCDDisplay 庫(kù)一起使用。電位器和電阻器可以是所需/可用的任何通用部件。四個(gè)開(kāi)關(guān)應(yīng)為適合工程機(jī)械設(shè)計(jì)的任意瞬時(shí)觸點(diǎn)按鈕開(kāi)關(guān)。
使用這個(gè)附加接口允許頻率發(fā)生器和頻率計(jì)數(shù)器模塊用作獨(dú)立的測(cè)試設(shè)備。
為 Pro Micro 模塊供電
在本文檔中,沒(méi)有提及如何為 Pro-Micro 模塊以及可能的 LCD 顯示器供電。假設(shè)它將通過(guò)將 USB 電纜連接到 Pro Micro 模塊上的 USB 連接來(lái)供電。USB 連接為模塊和所需的任何外部電路提供 5V 電壓,只要任何外部電路所需的功率小于約 100mA。USB 電纜的另一端可以連接到計(jì)算機(jī)以獲取電源并訪問(wèn)虛擬 COM 端口和編程,或者如果將系統(tǒng)用作獨(dú)立設(shè)備,則可以連接到簡(jiǎn)單的 5V 壁式電源。只有在不使用 USB 連接的情況下,Pro Micro 模塊也可以通過(guò) 7-16V 直流電源的“RAW”輸入或通過(guò)穩(wěn)壓 5V 直流電源的“VCC”引腳供電。
編譯和歸檔信息
該項(xiàng)目和庫(kù)是使用 Arduino IDE 版本 1.8.5 開(kāi)發(fā)的。較新的版本,包括最新版本(版本 1.8.15)也應(yīng)該能夠毫無(wú)問(wèn)題地使用。IDE的“工具”中的設(shè)置應(yīng)該是:
董事會(huì):阿杜諾·萊昂納多
端口:COMxx(由您的系統(tǒng)分配)
程序員:ArduinoISP
頻率發(fā)生器和頻率計(jì)數(shù)器模塊最初是在一個(gè)項(xiàng)目目錄“FreqGenCtrApp”中編寫(xiě)和調(diào)試的,其中包含以下文件:
如前所述,所有上述文件都可以在單個(gè)目錄中并以這種方式編譯,或者它們可以是頻率發(fā)生器庫(kù)或頻率計(jì)數(shù)器庫(kù)的一部分。如果使用這些庫(kù),每個(gè)庫(kù)中都有一個(gè)示例文件夾,其中包含一個(gè)僅用于頻率發(fā)生器或頻率計(jì)數(shù)器的主應(yīng)用程序文件,以及一個(gè)包含組合應(yīng)用程序的文件夾。
FrequencyGenerator 庫(kù)文件位于 Github 上,地址為https://github.com/Rick-G1/FrequencyGenerator 。
FrequencyCounter 庫(kù)文件位于 Github 上,地址為https://github.com/Rick-G1/FrequencyCounter 。
當(dāng)我可以弄清楚如何在“草圖”/“包含庫(kù)”/“管理庫(kù)......”中的 Arduino IDE 下制作這些庫(kù)時(shí),這些庫(kù)應(yīng)該在那里可用。
頻率發(fā)生器/計(jì)數(shù)器和時(shí)基精度
用于發(fā)生器和頻率計(jì)數(shù)器的時(shí)基是微處理器的時(shí)鐘,它是一個(gè)晶體振蕩器,具有其固有的精度和穩(wěn)定性,但由于它沒(méi)有經(jīng)過(guò)校準(zhǔn),它通常會(huì)與其標(biāo)稱頻率 16MHz 相差幾赫茲。這通常在大約 0.1% 到 0.2% 之間,但可能會(huì)更多,具體取決于所使用的 Pro Micro 模塊。由于晶體頻率可能會(huì)有所不同,因此頻率發(fā)生器的輸出和頻率計(jì)數(shù)器讀取的值將以相同的百分比變化。
在編寫(xiě)本文檔期間檢查了手頭上的幾個(gè)模塊,發(fā)現(xiàn)它們中的大多數(shù)都在 0.1% 以內(nèi),只有少數(shù)在 0.2% 的準(zhǔn)確度值以內(nèi)。如果此精度水平足以滿足預(yù)期應(yīng)用,則無(wú)需進(jìn)一步努力即可使用此頻率發(fā)生器或計(jì)數(shù)器功能。
如果需要更高的精度,可以修改 Arduino 模塊以包含微調(diào)電容器以將模塊晶體頻率精確調(diào)整到 16MHz,或者將外部高精度 16MHz 時(shí)鐘信號(hào)注入模塊以提高生成頻率的精度或控制器進(jìn)行的頻率測(cè)量。顯然,需要一個(gè)校準(zhǔn)的頻率計(jì)數(shù)器來(lái)將 Arduino Pro Micro 模塊校準(zhǔn)到準(zhǔn)確的頻率。
在測(cè)量任何晶體振蕩器的頻率時(shí),不要直接在晶體本身的任一引腳上測(cè)量晶體頻率。僅僅增加測(cè)量設(shè)備的電容就足以顯著改變晶體振蕩器電路的頻率。相反,將控制器設(shè)置為在其輸出引腳之一上輸出已知頻率的時(shí)鐘信號(hào),并改為測(cè)量該信號(hào)。由于該項(xiàng)目的一部分包含頻率發(fā)生器功能,因此該輸出信號(hào)是用于測(cè)量和校準(zhǔn)控制器晶體時(shí)基精度的完美信號(hào)。頻率發(fā)生器功能可設(shè)置為8MHz,非常適合檢查和調(diào)諧模塊上的晶振。
添加微調(diào)電容器
可用于調(diào)整系統(tǒng)時(shí)基的方法之一是在 Arduino 模塊中添加一個(gè)微調(diào)電容器。然后通過(guò)使用連接到校準(zhǔn)頻率計(jì)數(shù)器的項(xiàng)目的頻率發(fā)生器部分輸出已知頻率并調(diào)整此微調(diào)電容器以設(shè)置輸出頻率,系統(tǒng)時(shí)基可以精確設(shè)置為 16MHz,頻率發(fā)生器輸出的精度和計(jì)數(shù)器的時(shí)基為零,或與用于調(diào)整它的參考設(shè)備一樣準(zhǔn)確。
要安裝微調(diào)電容器,請(qǐng)從模塊上拆下 C2 電容器并安裝一個(gè)范圍約為 5 至 40pF 的微調(diào)電容器。可用于此目的的建議部件是 Knowles Voltronics JR300 (5.5-30pF) 或 JR400 (8-40pF)(Digikey 1674-1020-1-ND 或 1674-1021-1-ND)。這是一個(gè)小型表面貼裝部件,可以粘在處理器芯片上,然后用小電線將其連接到 GND 和 C2 被移除的焊盤。由于微調(diào)電容會(huì)隨著溫度的變化而存在一定的可變性,因此振蕩器的穩(wěn)定性直接關(guān)系到微調(diào)電容的穩(wěn)定性。如果需要更高的穩(wěn)定性,另一種更穩(wěn)定的方法是將 C2 替換為較小值的電容器(可能 5-15pF),然后使用具有較小電容范圍(因此總電容變化較?。┑奈⒄{(diào)電容器(如 JR150 或 JR200 ) 使得固定電容和可變電容的總電容可以變化到接近 22pF 的值。重要的是要注意這部分,一個(gè)端子連接到轉(zhuǎn)子(和調(diào)節(jié)螺釘?shù)慕饘伲?/font>此端子應(yīng)連接到 Arduino 模塊的 GND 連接,另一個(gè)端子應(yīng)連接到未接地的 C2 焊盤(并連接到 Pro Micro 模塊上微處理器的引腳 17)。這將提供頻率最穩(wěn)定的電路。連接微調(diào)帽的 GND 連接的方便位置是模塊電容器 C19 的負(fù)極。接下來(lái)顯示了建議的微調(diào)電容器的圖片以及 Pro Micro 模塊的修改細(xì)節(jié)。微調(diào)電容器圖片頂部的端子是“轉(zhuǎn)子”端子。連接完成后,最好將微調(diào)帽粘在微處理器芯片的頂部,以防止其移動(dòng),從而提高晶體頻率的穩(wěn)定性。您可能還需要考慮通過(guò)在電線周圍涂上熱膠或環(huán)氧樹(shù)脂來(lái)穩(wěn)定接線以保持最大的準(zhǔn)確性,以防止它們被意外損壞或移動(dòng)。微調(diào)電容器圖片頂部的端子是“轉(zhuǎn)子”端子。連接完成后,最好將微調(diào)帽粘在微處理器芯片的頂部,以防止其移動(dòng),從而提高晶體頻率的穩(wěn)定性。您可能還需要考慮通過(guò)在電線周圍涂上熱膠或環(huán)氧樹(shù)脂來(lái)穩(wěn)定接線以保持最大的準(zhǔn)確性,以防止它們被意外損壞或移動(dòng)。微調(diào)電容器圖片頂部的端子是“轉(zhuǎn)子”端子。連接完成后,最好將微調(diào)帽粘在微處理器芯片的頂部,以防止其移動(dòng),從而提高晶體頻率的穩(wěn)定性。您可能還需要考慮通過(guò)在電線周圍涂上熱膠或環(huán)氧樹(shù)脂來(lái)穩(wěn)定接線以保持最大的準(zhǔn)確性,以防止它們被意外損壞或移動(dòng)。
一旦對(duì)模塊進(jìn)行了修改,就可以進(jìn)行調(diào)整。為了獲得最準(zhǔn)確的調(diào)整,在進(jìn)行調(diào)整之前,讓模塊在預(yù)期使用的溫度下保持通電至少 15 分鐘(幾個(gè)小時(shí)更好)。然后啟用控制器的頻率輸出并將其設(shè)置為 8MHz。設(shè)置輸出信號(hào)后,使用校準(zhǔn)的頻率計(jì)數(shù)器并測(cè)量此輸出信號(hào)(在數(shù)字引腳 5 上)(或數(shù)字引腳 10)。如外部頻率計(jì)數(shù)器所示,將微調(diào)電容器調(diào)整為 8MHz。
注入外部時(shí)鐘
為了獲得更高的精度,可以使用外部時(shí)鐘為控制器芯片提供時(shí)鐘(因此也提供時(shí)基)。使用這種方法,頻率發(fā)生器和計(jì)數(shù)器的精度與外部時(shí)鐘電路的精度直接相關(guān)。各種具有極其精確和穩(wěn)定輸出的外部振蕩器可供選擇,從低成本 IC 到非常昂貴、高度穩(wěn)定的 TCXO 模塊。這些模塊的唯一要求是它們必須在 3.3V 或 5V 信號(hào)電平下輸出 16MHz。然后可以將該外部時(shí)鐘的輸出注入到修改后的 Pro Micro 模塊中,如圖所示。在本例中,外部時(shí)基通過(guò)一個(gè)電阻器注入“A3”引腳,以防止在外部時(shí)鐘通電但模塊未通電的情況下使模塊過(guò)載。10-47Ω 1/8W 電阻器可用于此目的。
顯然,當(dāng)使用該引腳時(shí),A3 引腳的正常模擬輸入功能將丟失。詳細(xì)信息還顯示了 GND(振蕩器公共端)和 5 伏電源的位置,如果外部振蕩器的電流小于 100 毫安,外部振蕩器可以使用該電源為其供電。5V 電源信號(hào)來(lái)自 USB 輸入電源,可能會(huì)在 5V 之間變化 10-15%(有時(shí)只有 4.5V 左右)。
使用外部時(shí)鐘源時(shí),處理器上的熔絲可以重新編程為外部時(shí)鐘模式,但這不是必需的,因?yàn)樽⑷霑r(shí)鐘的引腳是晶振的輸入,因此處理器會(huì)“看到”來(lái)自外部源的 16MHz 并使用它。您也可以移除 Pro Micro 模塊上的晶體,但這也不是使用外部時(shí)鐘所必需的。
結(jié)論
該項(xiàng)目詳細(xì)介紹了僅使用低成本 Pro-Micro 模塊來(lái)實(shí)現(xiàn)頻率發(fā)生器和頻率計(jì)數(shù)器模塊。頻率發(fā)生器可輸出1Hz至約12MHz的方波信號(hào),而頻率計(jì)可在傳統(tǒng)頻率計(jì)模式下對(duì)1Hz至約8MHz輸入的脈沖進(jìn)行計(jì)數(shù),在周期測(cè)量模式下可對(duì)從遠(yuǎn)小于1Hz至約20KHz的脈沖輸入進(jìn)行計(jì)數(shù)。雖然該項(xiàng)目的主要重點(diǎn)是模塊本身,但還提供了一個(gè)簡(jiǎn)單的主程序來(lái)測(cè)試這些功能,帶有一個(gè)串行端口或 4 個(gè)按鈕開(kāi)關(guān)和一個(gè) LCD 顯示器。這些模塊的編寫(xiě)使得它們是自包含的功能塊,并且可以毫不費(fèi)力地添加到用戶代碼中。希望擁有這些模塊能夠通過(guò)簡(jiǎn)單地包含這些模塊來(lái)幫助用戶,
- 適用于Android的頻率計(jì)數(shù)器
- 使用Arduino制作簡(jiǎn)單的頻率計(jì)數(shù)器
- 使用頻率計(jì)數(shù)器和OLED顯示屏的金屬探測(cè)器
- 使用Arduino Nano或Uno的Android頻率計(jì)數(shù)器
- 頻率計(jì)數(shù)器FC510前面板開(kāi)源分享
- 內(nèi)插倒數(shù)頻率計(jì)數(shù)器FC510開(kāi)源分享
- 帶預(yù)分頻器的Arduino射頻頻率計(jì)數(shù)器
- 基于藍(lán)橋杯單片機(jī)的頻率計(jì)數(shù)器模塊簡(jiǎn)單分析
- 如何使用STC15單片機(jī)進(jìn)行頻率計(jì)及方波發(fā)生器的設(shè)計(jì) 36次下載
- 基于單片機(jī)的頻率計(jì)數(shù)器的設(shè)計(jì) 38次下載
- 頻率計(jì)數(shù)器 26次下載
- 自制25MHz頻率計(jì)數(shù)器 36次下載
- 頻率計(jì)數(shù)器仍然是通用工具 10次下載
- 6位數(shù)顯頻率計(jì)數(shù)器 21次下載
- 25MHz頻率計(jì)數(shù)器的制作方法
- 函數(shù)信號(hào)發(fā)生器怎么調(diào)頻率 1030次閱讀
- 簡(jiǎn)單認(rèn)識(shí)脈沖計(jì)數(shù)器 1212次閱讀
- 函數(shù)信號(hào)發(fā)生器怎么頻率調(diào)整 811次閱讀
- 函數(shù)發(fā)生器的頻率調(diào)整和波形選擇方法 672次閱讀
- 頻率計(jì)有哪些作用 971次閱讀
- proteus波形發(fā)生器頻率怎么調(diào) 2555次閱讀
- 基于四通道運(yùn)算放大器的函數(shù)發(fā)生器電路 1075次閱讀
- 5位頻率計(jì)數(shù)器電路分享 2395次閱讀
- 如何使用Arduino制作一個(gè)頻率計(jì)數(shù)器? 6115次閱讀
- 頻率計(jì)數(shù)器的工作原理和發(fā)展 1.2w次閱讀
- 使用單片機(jī)實(shí)現(xiàn)數(shù)字頻率計(jì)數(shù)器的設(shè)計(jì)說(shuō)明 4961次閱讀
- 電子計(jì)數(shù)器的使用_電子計(jì)數(shù)器功能 1.4w次閱讀
- 基于AT89S51單片機(jī)實(shí)現(xiàn)信號(hào)頻率計(jì)數(shù)功能的設(shè)計(jì) 2550次閱讀
- cd4046應(yīng)用電路圖大全(金屬探測(cè)儀/頻率計(jì)/充電器/信號(hào)發(fā)生器) 3w次閱讀
- 首款LXI C 類標(biāo)準(zhǔn)的頻率計(jì)數(shù)器Agilent 53200系列日前被推出 892次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多