電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Pro Micro的頻率發(fā)生器和頻率計(jì)數(shù)器

Pro Micro的頻率發(fā)生器和頻率計(jì)數(shù)器

2022-11-11 | zip | 0.17 MB | 次下載 | 免費(fèi)

資料介紹

描述

概述

很多時(shí)候,需要產(chǎn)生可編程頻率輸出或?qū)崿F(xiàn)用于各種用途的頻率計(jì)數(shù)器。該項(xiàng)目僅使用低成本(≈5-17 美元)Pro Micro(Sparkfun DEV-12640 或等效克?。┠K實(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ù)器讀取頻率。這可以通過串行端口完成,或者,

與本網(wǎng)站上列出的許多項(xiàng)目不同,該項(xiàng)目沒有實(shí)現(xiàn)一些最終設(shè)備,而是專注于頻率發(fā)生器和頻率計(jì)數(shù)器的功能塊。假設(shè)用戶隨后將編寫一個(gè)主模塊,將這些模塊部署到所需的任何目的,并且可能包括 LCD 顯示器、鍵盤或其他外部接口,或者可能是用戶需要的某個(gè)更大項(xiàng)目的一部分。最后,由于頻率發(fā)生器和頻率計(jì)數(shù)器都依賴于Pro Micro通常未經(jīng)校準(zhǔn)的內(nèi)部晶振,因此詳細(xì)說明如何修改模塊以提高振蕩器的精度。

應(yīng)該注意的是,也可以使用其他帶有 ATMega32U4 處理器的 Arduino 模塊,包括 Arduino Leonardo 和 Arduino Micro 以及可能的其他模塊。

頻率發(fā)生器

該庫使用 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ú)特的算法,可通過從三個(gè)不同的輸入時(shí)鐘頻率之一(通過片上 PLL)、二進(jìn)制預(yù)分頻器值和一個(gè)計(jì)數(shù)值。對(duì)于所有這些變量,如果必須從外部確定這些變量,則每個(gè)變量要獲得給定頻率的設(shè)置可能具有挑戰(zhàn)性。通過固件中包含的算法,固件本身為這三個(gè)值中的每一個(gè)確定最佳值,以使輸出頻率盡可能接近請(qǐng)求值。一旦計(jì)算和設(shè)置了這些值,

發(fā)電機(jī)硬件

Pro Micro 模塊將在 Arduino Digital 引腳 5(處理器引腳 PC6)上輸出選定的頻率時(shí)鐘信號(hào),作為 0-5V 50% 占空比的方波信號(hào),無需對(duì)控制器進(jìn)行進(jìn)一步修改。或者,如果需要,也可以將輸出配置為在 Arduino 數(shù)字引腳 10(處理器引腳 PB6)上輸出信號(hào)。下圖顯示了 Pro Micro 模塊上頻率發(fā)生器輸出的引腳。

pYYBAGNtm72AGBMGAAFom2-hcEg111.jpg
?

根據(jù)您的應(yīng)用,可能不需要額外的電路,但如果需要與模塊輸出引腳不同的電平或更大的功率,則可能需要外部放大器、電平轉(zhuǎn)換器電阻分壓器。還顯示了一個(gè) 5V 電源,如果需要,它可用于為該外部電路供電,其功率要求小于 100mA。

該發(fā)生器的頻率精度與 Pro Micro 模塊上的晶振直接相關(guān),通常在 0.1-0.2% 之間,但通常比這更接近標(biāo)稱頻率。如果需要更高的精度,請(qǐng)參閱下面的部分,詳細(xì)說明對(duì) Pro Micros 晶體振蕩器的修改。頻率精度還與處理器芯片的各個(gè)寄存器中設(shè)置的值有關(guān)。雖然該算法試圖確定 PLL、預(yù)分頻器和計(jì)數(shù)器的最佳值,但有些頻率是硬件無法獲得的,無需額外的軟件干預(yù),這超出了本項(xiàng)目的范圍。幾乎所有較低的頻率(低于約 5KHz)都是完美的(或接近完美的),這意味著模塊可以輸出準(zhǔn)確的頻率,但隨著要求的頻率越來越高,將存在無法實(shí)現(xiàn)準(zhǔn)確頻率的“差距”。在這些情況下,將設(shè)置可獲得的最接近的頻率,并且通常對(duì)于大多數(shù)應(yīng)用來說足夠接近。輸出的占空比固定為 50%。

發(fā)生器軟件接口功能

該庫在一個(gè)名為“FrequencyGenerator”的類中實(shí)現(xiàn)。這個(gè)類有兩個(gè)函數(shù):“set”和“read”來設(shè)置頻率發(fā)生器和讀取發(fā)生器設(shè)置的當(dāng)前頻率。

** 設(shè)置功能 **

使用頻率設(shè)置命令設(shè)置頻率,該命令將頻率設(shè)置為最接近的可獲得值。函數(shù) 'FrequencyGenerator::set' 接受一個(gè)長整數(shù),它是以赫茲為單位輸出的頻率。這可以從小于 0(返回電流頻率)的值到 0(發(fā)電機(jī)關(guān)閉)到超過微時(shí)鐘頻率(8MHz)的 1/2 的值。在現(xiàn)有的 Pro Micro 模塊可用的情況下,據(jù)觀察它的工作頻率約為 12MHz。如果設(shè)置了請(qǐng)求的頻率,則“FrequencyGenerator::set”函數(shù)返回設(shè)置的頻率,如果無法設(shè)置為所需的頻率,則返回 -1。由于定時(shí)器設(shè)置為自動(dòng)重新加載,因此不需要中斷或其他軟件開銷——只需調(diào)用該函數(shù),然后硬件將產(chǎn)生輸出頻率,無需額外干預(yù)。

要關(guān)閉頻率發(fā)生器,只需調(diào)用頻率為零的“FrequencyGenerator::set”函數(shù)。這將禁用頻率發(fā)生器并將其輸出引腳置于高阻抗?fàn)顟B(tài)。也可以通過使用 -1(或任何負(fù)數(shù))調(diào)用“FrequencyGenerator::set”函數(shù)來請(qǐng)求當(dāng)前頻率。

** 讀取功能 **

還提供了一個(gè)函數(shù)“FrequencyGenerator::read”來請(qǐng)求頻率發(fā)生器模塊的當(dāng)前頻率。返回的值將是控制器輸出的實(shí)際頻率(以及硬件能夠輸出的最接近的值),并且可能與上次設(shè)置的頻率略有不同。這以長整數(shù)形式返回。

生成器代碼詳細(xì)信息和選項(xiàng)

頻率發(fā)生器功能包含在文件“FrequencyGenerator.cpp”中。包含類原型的頭文件位于文件“FrequencyGenerator.h”中。該模塊是專門為 Pro Micro 設(shè)備(或具有類似功能塊的其他微控制器設(shè)備)上的 ATMega32U4 的定時(shí)器 4 編寫的,假設(shè)控制器作為 USB 設(shè)備運(yùn)行,PLL 設(shè)置為 96MHz,晶振為 16MHz(這是Pro Micro 設(shè)備的默認(rèn)設(shè)置)。它可能會(huì)為其他計(jì)時(shí)器重新設(shè)計(jì),但分辨率會(huì)更低。

“FrequencyGenerator.cpp”模塊中的代碼包含將處理器中的各種寄存器設(shè)置為所需輸入頻率的最佳值的算法。它通過連續(xù)對(duì)每個(gè) PLL 設(shè)置進(jìn)行計(jì)算,然后確定哪個(gè) PLL 設(shè)置提供最接近所需值的輸出頻率來實(shí)現(xiàn)。預(yù)分頻器和計(jì)數(shù)值通過計(jì)算所需頻率的 log2 來確定,然后將其轉(zhuǎn)換為寄存器的預(yù)分頻器和計(jì)數(shù)值。一旦確定了最佳組合,就將物理寄存器設(shè)置為這些值。代碼中的注釋更詳細(xì)地詳細(xì)說明了該算法。

在 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ù)器

該庫使用屬于 Pro Micro 模塊的硬件定時(shí)器/計(jì)數(shù)器資源來實(shí)現(xiàn)頻率計(jì)數(shù)器。它使用定時(shí)器 0 和另一個(gè)定時(shí)器作為 Pro Micro 模塊上的“門”定時(shí)器。它既可以用作傳統(tǒng)頻率計(jì)數(shù)器,通過在固定時(shí)間(門限時(shí)間)內(nèi)對(duì)輸入引腳上發(fā)生的脈沖數(shù)進(jìn)行計(jì)數(shù),也可以用作周期計(jì)數(shù)器,其中輸入波形的單個(gè)或多個(gè)周期的時(shí)間被測量。傳統(tǒng)的頻率計(jì)數(shù)模式最適合測量較快的信號(hào),而周期測量模式在測量較低頻率的信號(hào)時(shí)提供更高的亞赫茲分辨率。該模塊的接口是通過 2 到 3 個(gè)主要功能。第一個(gè)函數(shù)向用戶提供讀取頻率,而第二個(gè)功能將頻率計(jì)數(shù)器設(shè)置為傳統(tǒng)計(jì)數(shù)模式或周期測量模式,還設(shè)置門時(shí)間或輸入脈沖數(shù)以進(jìn)行平均。如果需要,可以使用另一個(gè)功能來確定是否有新的“新”讀數(shù)可用。由于該模塊使用硬件定時(shí)器和中斷例程來實(shí)現(xiàn)頻率計(jì)數(shù)器,因此除了用戶需要編寫的任何代碼之外,它還可以在使用 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ù)器處于周期測量模式時(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)換為頻率并返回給用戶。在周期測量模式下,可以使用三種平均模式中的一種。可選擇不平均或平均 10 或 100 個(gè)輸入脈沖。這種平均是通過設(shè)置定時(shí)器 0 計(jì)數(shù)器在 1、10 或 100 次轉(zhuǎn)換時(shí)產(chǎn)生中斷來完成的,

計(jì)數(shù)器硬件

頻率計(jì)數(shù)器的輸入位于 Pro Micro (ATMega32U4) 的 Arduino 數(shù)字引腳 6(處理器引腳 PD7)上,并假定為要計(jì)數(shù)的低脈沖序列。下圖顯示了計(jì)數(shù)器輸入以及外部門輸入引腳(稍后詳述)。外部門輸入(如果使用)位于 Arduino 數(shù)字引腳 9(處理器引腳 PB5)上,但如果需要,可以移動(dòng)到另一個(gè)引腳。

poYBAGNtm8GATlVVAAF48RKP2EI343.jpg
?

顯然,輸入信號(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ì)說明對(duì) Pro Micros 晶體振蕩器的修改。

精度還與傳統(tǒng)頻率計(jì)數(shù)器模式的門控定時(shí)器和周期測量模式的毫秒定時(shí)器的精度直接相關(guān)。在這個(gè)項(xiàng)目中,這兩個(gè)定時(shí)器都是中斷驅(qū)動(dòng)的,這意味著它們?cè)跊]有任何軟件干預(yù)的情況下自主發(fā)生,并且在 Arduino 環(huán)境中盡可能接近立即發(fā)生。雖然中斷程序有一些開銷,但這通??梢院雎圆挥?jì),并且讀取的頻率通常非常接近或通常完全正確的頻率。

對(duì)該項(xiàng)目開發(fā)期間可用的不同模塊進(jìn)行的測試表明,在傳統(tǒng)的頻率計(jì)數(shù)器模式下,Pro Micro 模塊能夠可靠地計(jì)算高達(dá)約 8MHz 的頻率(處理器時(shí)鐘頻率的 1/2)。在周期測量模式下,該模式旨在以更高的分辨率測量較低頻率,當(dāng)平均設(shè)置為 10 和 100 和 10 KHz 時(shí)(平均值為 1),最高 20 KHz 的頻率是可能的且可靠的。在周期測量模式下,如果頻率高于這些值,模塊將報(bào)告值“999999”或在極少數(shù)情況下報(bào)告錯(cuò)誤值。

如果應(yīng)用需要測量高于約 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ù)器軟件接口功能

該庫在一個(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è)置以下模式:

pYYBAGNtm8mAZuQdAAH5LO8bQEk980.jpg
?

如果輸入?yún)?shù)超出上述值的范圍,該函數(shù)總是返回當(dāng)前選擇的模式或 -1。模式 6 到 9 可能存在也可能不存在,具體取決于模塊的編譯方式。如果在沒有參數(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ù)可能需要長達(dá) 100 秒才能返回,具體取決于頻率計(jì)數(shù)器模塊所處的模式。如果這是不可接受的,還可以使用輪詢功能來查看是否有新的頻率讀數(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ù)(并且沒有指向字符串參數(shù)的指針)調(diào)用時(shí),讀取函數(shù)返回一個(gè)長整數(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)庫文件,則不需要此功能。)

計(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í)器來實(shí)現(xiàn)此功能,但不幸的是,定時(shí)器 1 的外部時(shí)鐘引腳(ATMega32U4 引腳 26)沒有連接到模塊連接器,只有定時(shí)器 0 和定時(shí)器 1 有外部時(shí)鐘輸入,因此沒有其他選擇除了使用 Timer 0。眾所周知,Timer 0 通常用于 Arduino 系統(tǒng)計(jì)時(shí)功能(延遲、毫秒、微秒等),因此唯一的選擇是將這些功能移至其他計(jì)時(shí)器。這是通過重新設(shè)計(jì)作為 Arduino 系統(tǒng)一部分的 stock Wiring.c 模塊以為此目的使用不同的計(jì)時(shí)器來完成的。然后這個(gè)“系統(tǒng)”定時(shí)器被擴(kuò)展為也用于頻率計(jì)數(shù)器功能的門定時(shí)器。

通過在構(gòu)建中簡單地包含“SysTimer.cpp”,通常由 Timer 0 實(shí)現(xiàn)的功能(延遲、毫秒、微秒等)被移動(dòng)到使用這個(gè)備用計(jì)時(shí)器(可配置為 Timer 1 或 Timer 3),以及一個(gè)掛鉤到定時(shí)器的中斷服務(wù)程序 (ISR) 是可訪問的,允許該定時(shí)器用于頻率計(jì)數(shù)器門控功能。最好將定時(shí)器 1 用于門,因?yàn)樗哂凶罡叩闹袛鄡?yōu)先級(jí)(甚至高于定時(shí)器 0),但定時(shí)器 1 或定時(shí)器 3 都可以使用。如果用戶的應(yīng)用程序不包含 SysTimer 模塊,則它必須使用必須編寫的其他代碼調(diào)用函數(shù)“FreqCtrGateISR”。如果需要,SysTimer 模塊還可用于頻率計(jì)數(shù)器以外的其他用途。

顯然,當(dāng)為“系統(tǒng)”定時(shí)器功能和頻率計(jì)數(shù)器門控功能使用備用定時(shí)器時(shí),定時(shí)器將不適用于 PWM 功能或任何其他 Arduino“內(nèi)置”庫函數(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)測量高于約 2MHz 的頻率時(shí),返回的計(jì)數(shù)在極少數(shù)情況下可能會(huì)少一兩個(gè)計(jì)數(shù)。這是因?yàn)樵撃K中的代碼必須清除計(jì)數(shù)器,將其關(guān)閉然后重新打開,這需要幾個(gè) CPU 周期。

計(jì)數(shù)器外部門控

該頻率計(jì)數(shù)器模塊也可以設(shè)置為使用外部選通。為此,將“FCEXTERN”定義為非零,并在此草圖中包含模塊“PCInterrupt.cpp”。然后通過將“模式”功能設(shè)置為 6,由“FCEXTGATEMSK”定義的 Arduino 引腳將用作門輸入。默認(rèn)情況下,此信號(hào)在 Arduino 數(shù)字引腳 9(處理器引腳 PB5)上輸入,但如果需要,可以移動(dòng)到另一個(gè)引腳。有關(guān)“PCINTMASKxx”引腳列表,請(qǐng)參見“PCInterrupt.h”——這些引腳中的任何一個(gè)都可以使用。激活時(shí),此引腳上的低電平打開柵極,高電平時(shí)關(guān)閉柵極。包括外部門功能是可選的,但包括在分發(fā)文件中的定義。添加外部門控功能會(huì)使模塊的代碼大小增加約 250 字節(jié)。如果不包括在內(nèi),

使用外部門功能和另一個(gè)定時(shí)器設(shè)置為自主工作,然后在其他引腳上輸出其信號(hào),然后將此引腳連接到“外部門”輸入是解決上述 USB 問題的一種可能方法,該問題可能會(huì)影響計(jì)數(shù),因?yàn)橥獠块T輸入的優(yōu)先級(jí)都高于 USB 中斷。

計(jì)數(shù)器周期測量模式

在周期測量模式下使用頻率計(jì)數(shù)器模塊時(shí),定時(shí)器 0 用于檢測輸入引腳上的轉(zhuǎn)換,然后使用 Arduino 系統(tǒng)微秒計(jì)數(shù)器測量這些轉(zhuǎn)換之間的微秒數(shù)。在這種模式下,輸入仍然在同一個(gè) Timer 0 輸入引腳上,但不是計(jì)算在給定時(shí)間內(nèi)發(fā)生的脈沖數(shù),而是將 Timer 0 設(shè)置為在第一次、第十次或第 100 次轉(zhuǎn)換時(shí)產(chǎn)生中斷測量計(jì)時(shí)器 0 輸入和在其中兩個(gè)轉(zhuǎn)換之間經(jīng)過的微秒數(shù),然后將其轉(zhuǎn)換為頻率。這允許在最短時(shí)間內(nèi)更準(zhǔn)確地測量低頻信號(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è)周期。包括周期測量模式是可選的,并且僅在定義“FCPERIOD”被定義為非零值(它用于分發(fā)文件)時(shí)才包括在內(nèi)。包括周期測量模式會(huì)增加模塊的代碼大小約 1000 字節(jié)。

周期測量模式的計(jì)數(shù)器超時(shí)

使用傳統(tǒng)頻率計(jì)數(shù)模式時(shí),函數(shù)'FrequencyCounter::read'保證在固定時(shí)間后返回;但是在周期測量模式下,如果沒有輸入信號(hào),則永遠(yuǎn)不會(huì)發(fā)生新的“新”頻率計(jì)數(shù),讀取函數(shù)也不會(huì)返回。在某些情況下,這可能是有問題的。為保證此功能在給定時(shí)間后始終返回,頻率計(jì)數(shù)器模塊包含一個(gè)超時(shí)計(jì)數(shù)器,當(dāng)使用周期測量模式時(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 秒,但如果需要,可以通過更改定義的“PERIODTIMOUT”的值來更改。如果此定義為 0,則期間測量功能將不包含任何超時(shí)功能。

主模塊

如介紹中所述,該項(xiàng)目還包括一個(gè)“主”模塊(FreqGenCtrApp.ino),用于測試頻率發(fā)生器和頻率計(jì)數(shù)器模塊。它提供了一個(gè)簡單的 ASCII 命令接口,其中大部分是 1 或 2 個(gè)字符命令來控制作為該項(xiàng)目一部分的模塊,或者可以通過添加 4 個(gè)按鈕開關(guān)和一個(gè) LCD 顯示器來創(chuàng)建一個(gè)獨(dú)立的設(shè)備。它可以與頻率發(fā)生器模塊或頻率計(jì)數(shù)器模塊或兩者一起使用。該模塊的使用是可選的,只是為了提供一種方便的方式來測試和驗(yàn)證該項(xiàng)目的兩個(gè)功能塊的操作,并向用戶展示如何調(diào)用該項(xiàng)目中的每個(gè)功能。

串行接口

“FreqGenCtrApp.ino”模塊包含代碼和定義,允許它使用 USB 虛擬 com 端口作為它的命令接口,或者它可以選擇使用 Pro Micro 的 UART 串??行接口作為同一接口。將“COMM”#define 定義為“Serial”將使用 USB 接口,而將其定義為“Serial1”將使用 UART 接口。該模塊還包含一個(gè)簡單的 printf 接口,允許使用編譯器的 printf 函數(shù)。

** 串行命令 **

主模塊解釋的命令大多是 1 或 2 個(gè)字符的命令,以 (Enter) 終止以調(diào)用它們。對(duì)于設(shè)置類型命令,命令字母可以選擇后跟等號(hào)、值和 對(duì)于返回值的查詢命令,只需輸入后跟 的命令字母。然后它們調(diào)用生成器或計(jì)數(shù)器模塊中的函數(shù)并返回這些函數(shù)的結(jié)果。命令是:

pYYBAGNtm86AQCT-AAJn8APmw4U779.png
?

獨(dú)立設(shè)備

因?yàn)橄嘈旁S多用戶會(huì)想要一個(gè)簡單的獨(dú)立頻率發(fā)生器和/或頻率計(jì)數(shù)器而不自己編寫它,所以主模塊還包括一個(gè)簡單的控制器,它使用 4 個(gè)按鈕開關(guān)和一個(gè) 2x16 LCD 顯示器來實(shí)現(xiàn)兩者的這些功能。其中兩個(gè)按鈕控制頻率發(fā)生器,而另外兩個(gè)按鈕用于設(shè)置頻率計(jì)數(shù)器門模式。這種自包含的獨(dú)立設(shè)備可以用來代替或補(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 種周期測量模式,平均為 1、10 或 100 次平均值。實(shí)現(xiàn)這一獨(dú)立功能所需的只是一個(gè) LCD 顯示屏和四個(gè)按鈕開關(guān)。LCD 顯示器使用標(biāo)準(zhǔn)的 Arduino “LiquidCrystal”庫。按鈕接口被實(shí)現(xià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è)按鈕開關(guān)的連接。

pYYBAGNtm9SAXs9TAAGCLgMD6So283.jpg
?

所示的大部分部件都可從 Digikey 或 Mouser 獲得。Pro-Micro 模塊可從 Sparkfun(部分 DEV-12640)獲得,或者可以在 eBay 上以更少的價(jià)格獲得等效的克隆。顯示的 LCD 顯示器是 Hantronix HDM16216H-5-S00S(無背光)或 HDM16216L-5-L30S(LED 背光),但其他顯示器也可以使用,只要它們與 Arduino LCDDisplay 庫一起使用。電位器電阻器可以是所需/可用的任何通用部件。四個(gè)開關(guān)應(yīng)為適合工程機(jī)械設(shè)計(jì)的任意瞬時(shí)觸點(diǎn)按鈕開關(guān)。

使用這個(gè)附加接口允許頻率發(fā)生器和頻率計(jì)數(shù)器模塊用作獨(dú)立的測試設(shè)備。

為 Pro Micro 模塊供電

在本文檔中,沒有提及如何為 Pro-Micro 模塊以及可能的 LCD 顯示器供電。假設(shè)它將通過將 USB 電纜連接到 Pro Micro 模塊上的 USB 連接來供電。USB 連接為模塊和所需的任何外部電路提供 5V 電壓,只要任何外部電路所需的功率小于約 100mA。USB 電纜的另一端可以連接到計(jì)算機(jī)以獲取電源并訪問虛擬 COM 端口和編程,或者如果將系統(tǒng)用作獨(dú)立設(shè)備,則可以連接到簡單的 5V 壁式電源。只有在不使用 USB 連接的情況下,Pro Micro 模塊也可以通過 7-16V 直流電源的“RAW”輸入或通過穩(wěn)壓 5V 直流電源的“VCC”引腳供電。

編譯和歸檔信息

該項(xiàng)目和庫是使用 Arduino IDE 版本 1.8.5 開發(fā)的。較新的版本,包括最新版本(版本 1.8.15)也應(yīng)該能夠毫無問題地使用。IDE的“工具”中的設(shè)置應(yīng)該是:

董事會(huì):阿杜諾·萊昂納多

端口:COMxx(由您的系統(tǒng)分配)

程序員:ArduinoISP

頻率發(fā)生器和頻率計(jì)數(shù)器模塊最初是在一個(gè)項(xiàng)目目錄“FreqGenCtrApp”中編寫和調(diào)試的,其中包含以下文件:

pYYBAGNtm9iAT2N_AAKC7bGOxo4114.jpg
?

如前所述,所有上述文件都可以在單個(gè)目錄中并以這種方式編譯,或者它們可以是頻率發(fā)生器庫或頻率計(jì)數(shù)器庫的一部分。如果使用這些庫,每個(gè)庫中都有一個(gè)示例文件夾,其中包含一個(gè)僅用于頻率發(fā)生器或頻率計(jì)數(shù)器的主應(yīng)用程序文件,以及一個(gè)包含組合應(yīng)用程序的文件夾。

poYBAGNtm9yARJmwAAES5R37Y2M355.jpg
?

FrequencyGenerator 庫文件位于 Github 上,地址為https://github.com/Rick-G1/FrequencyGenerator 。

FrequencyCounter 庫文件位于 Github 上,地址為https://github.com/Rick-G1/FrequencyCounter 。

當(dāng)我可以弄清楚如何在“草圖”/“包含庫”/“管理庫......”中的 Arduino IDE 下制作這些庫時(shí),這些庫應(yīng)該在那里可用。

頻率發(fā)生器/計(jì)數(shù)器和時(shí)基精度

用于發(fā)生器和頻率計(jì)數(shù)器的時(shí)基是微處理器的時(shí)鐘,它是一個(gè)晶體振蕩器,具有其固有的精度和穩(wěn)定性,但由于它沒有經(jīng)過校準(zhǔn),它通常會(huì)與其標(biāo)稱頻率 16MHz 相差幾赫茲。這通常在大約 0.1% 到 0.2% 之間,但可能會(huì)更多,具體取決于所使用的 Pro Micro 模塊。由于晶體頻率可能會(huì)有所不同,因此頻率發(fā)生器的輸出和頻率計(jì)數(shù)器讀取的值將以相同的百分比變化。

在編寫本文檔期間檢查了手頭上的幾個(gè)模塊,發(fā)現(xiàn)它們中的大多數(shù)都在 0.1% 以內(nèi),只有少數(shù)在 0.2% 的準(zhǔn)確度值以內(nèi)。如果此精度水平足以滿足預(yù)期應(yīng)用,則無需進(jìn)一步努力即可使用此頻率發(fā)生器或計(jì)數(shù)器功能。

如果需要更高的精度,可以修改 Arduino 模塊以包含微調(diào)電容器以將模塊晶體頻率精確調(diào)整到 16MHz,或者將外部高精度 16MHz 時(shí)鐘信號(hào)注入模塊以提高生成頻率的精度或控制器進(jìn)行的頻率測量。顯然,需要一個(gè)校準(zhǔn)的頻率計(jì)數(shù)器來將 Arduino Pro Micro 模塊校準(zhǔn)到準(zhǔn)確的頻率。

在測量任何晶體振蕩器的頻率時(shí),不要直接在晶體本身的任一引腳上測量晶體頻率。僅僅增加測量設(shè)備的電容就足以顯著改變晶體振蕩器電路的頻率。相反,將控制器設(shè)置為在其輸出引腳之一上輸出已知頻率的時(shí)鐘信號(hào),并改為測量該信號(hào)。由于該項(xiàng)目的一部分包含頻率發(fā)生器功能,因此該輸出信號(hào)是用于測量和校準(zhǔn)控制器晶體時(shí)基精度的完美信號(hào)。頻率發(fā)生器功能可設(shè)置為8MHz,非常適合檢查和調(diào)諧模塊上的晶振。

添加微調(diào)電容器

可用于調(diào)整系統(tǒng)時(shí)基的方法之一是在 Arduino 模塊中添加一個(gè)微調(diào)電容器。然后通過使用連接到校準(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ù)極。接下來顯示了建議的微調(diào)電容器的圖片以及 Pro Micro 模塊的修改細(xì)節(jié)。微調(diào)電容器圖片頂部的端子是“轉(zhuǎn)子”端子。連接完成后,最好將微調(diào)帽粘在微處理器芯片的頂部,以防止其移動(dòng),從而提高晶體頻率的穩(wěn)定性。您可能還需要考慮通過在電線周圍涂上熱膠或環(huán)氧樹脂來穩(wěn)定接線以保持最大的準(zhǔn)確性,以防止它們被意外損壞或移動(dòng)。微調(diào)電容器圖片頂部的端子是“轉(zhuǎn)子”端子。連接完成后,最好將微調(diào)帽粘在微處理器芯片的頂部,以防止其移動(dòng),從而提高晶體頻率的穩(wěn)定性。您可能還需要考慮通過在電線周圍涂上熱膠或環(huán)氧樹脂來穩(wěn)定接線以保持最大的準(zhǔn)確性,以防止它們被意外損壞或移動(dòng)。微調(diào)電容器圖片頂部的端子是“轉(zhuǎn)子”端子。連接完成后,最好將微調(diào)帽粘在微處理器芯片的頂部,以防止其移動(dòng),從而提高晶體頻率的穩(wěn)定性。您可能還需要考慮通過在電線周圍涂上熱膠或環(huán)氧樹脂來穩(wěn)定接線以保持最大的準(zhǔn)確性,以防止它們被意外損壞或移動(dòng)。

pYYBAGNtm9-AVSAVAAIBoGpY2wM386.jpg
?

一旦對(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ù)器并測量此輸出信號(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í)基通過一個(gè)電阻器注入“A3”引腳,以防止在外部時(shí)鐘通電但模塊未通電的情況下使模塊過載。10-47Ω 1/8W 電阻器可用于此目的。

poYBAGNtm-OAZb5EAAHANZBSZeM614.jpg
?

顯然,當(dāng)使用該引腳時(shí),A3 引腳的正常模擬輸入功能將丟失。詳細(xì)信息還顯示了 GND(振蕩器公共端)和 5 伏電源的位置,如果外部振蕩器的電流小于 100 毫安,外部振蕩器可以使用該電源為其供電。5V 電源信號(hào)來自 USB 輸入電源,可能會(huì)在 5V 之間變化 10-15%(有時(shí)只有 4.5V 左右)。

使用外部時(shí)鐘源時(shí),處理器上的熔絲可以重新編程為外部時(shí)鐘模式,但這不是必需的,因?yàn)樽⑷霑r(shí)鐘的引腳是晶振的輸入,因此處理器會(huì)“看到”來自外部源的 16MHz 并使用它。您也可以移除 Pro Micro 模塊上的晶體,但這也不是使用外部時(shí)鐘所必需的。

結(jié)論

該項(xiàng)目詳細(xì)介紹了僅使用低成本 Pro-Micro 模塊來實(shí)現(xiàn)頻率發(fā)生器和頻率計(jì)數(shù)器模塊。頻率發(fā)生器可輸出1Hz至約12MHz的方波信號(hào),而頻率計(jì)可在傳統(tǒng)頻率計(jì)模式下對(duì)1Hz至約8MHz輸入的脈沖進(jìn)行計(jì)數(shù),在周期測量模式下可對(duì)從遠(yuǎn)小于1Hz至約20KHz的脈沖輸入進(jìn)行計(jì)數(shù)。雖然該項(xiàng)目的主要重點(diǎn)是模塊本身,但還提供了一個(gè)簡單的主程序來測試這些功能,帶有一個(gè)串行端口或 4 個(gè)按鈕開關(guān)和一個(gè) LCD 顯示器。這些模塊的編寫使得它們是自包含的功能塊,并且可以毫不費(fèi)力地添加到用戶代碼中。希望擁有這些模塊能夠通過簡單地包含這些模塊來幫助用戶,


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)