過去通常使用 SR 鎖存器對 SPDT 開關進行去抖動,但這在納秒時域中實際上是如何工作的?
讀者可能還記得,前段時間,我寫過一篇關于開關彈跳(“ Switch Bouncing Around ”)的文章,比較了各種開關的彈跳程度。這是由我們尊敬的(好吧,由某些人)編輯Max Maxfield 促成的,他一直試圖找出他應該在防彈跳軟件中使用多長時間的等待狀態才能可靠地對平均(甚至是最壞的)開關進行去抖。
不幸的是,這需要我購買一臺新的示波器,因為我現有的示波器都沒有單次功能,這是捕捉開關反彈所必需的,特別是如果你想保存它或在相機上捕捉它(我在我的“關于升級示波器”列)。雖然我的新示波器只有兩個 60 MHz 的通道,但它已經證明了它能夠勝任我購買它以來的所有任務。
當然,Max 很少快樂(這可能是件好事,因為他的快樂舞是你真的不想看到的)。他打算寫一個關于硬件和軟件去抖技術的迷你系列,作為其中的一部分,他讓我使用我的新示波器來研究以下硬件去抖電路:
74×00 去抖電路(來源:Clive Maxfield/David Ashton)
很簡單。在上圖所示的狀態下,A1 將被上拉至邏輯 1(5 V),B2 將接地(即邏輯 0)。因此 QB 必須為 1,因此 A2 為 1。因此 QA 將為 0,B1 也是如此。切換開關時,常閉觸點從接地斷開的瞬間,B2 變為 1;但是,B2 為 0,因此 QB 將保持為 1。此后不久,常開 (NO) 觸點接地的瞬間,A1 將變為 0,這意味著 QA 將變為 1,B1 也將變為 1。此時,B2 被拉高至 1,因此雙穩態將改變狀態。QB 將變為 0,因此 A2 將為 0。在 A1 處的任何彈跳都不會影響輸出 QA,因此事情將一直保持到下一次開關操作 - 簡潔明了。我選擇了一個有很多彈跳的開關來展示電路的最大優勢。
讀者會觀察到雙穩態有兩個輸入和兩個輸出。這是要監控的四個點——如果可能的話,同時進行——以驗證去抖動確實發生了,并且 QA 和 QB 輸出顯示出單一、干凈的轉換。但我只有一個兩通道示波器。該怎么辦?
我在工作中檢查過,我們那里也只有一個雙通道示波器。我想買一個四通道的單元,周圍有幾個(有點)合理的價格。Hantek 是我新的兩通道示波器的制造商,它以大約 200 美元的價格制造了一個四通道、70-MHz 僅限 PC 的示波器(即,沒有像我現有的那樣內置屏幕)。Picoscope 是一家以 PC 專用示波器而聞名的制造商,它制造的裝置價格略高,但只有 10 MHz。當您達到 100 MHz 時,您的價格約為 1,000 美元。任何帶有屏幕的東西,價格都會上漲更多。
當然,理想情況下,您需要具有大量內存的東西,以便您可以放大或縮小單個捕獲(我可以,但僅限于非常有限的程度)。目前,Max 和我都沒有資金進行此類投資。Max 試圖為我的評論爭取一個免費的單位,但他找不到任何感興趣的人。甚至不要讓我開始介紹“真正的”示波器制造商,比如泰克、是德科技等。盡管我很喜歡一個,但在我中彩票之前,它們遠遠超出了我的預算。
所以我開始盡我所能只使用兩個頻道。當然,同時顯示 NO 開關極點和其中一個 Q 輸出很容易(當 NO 輸入變低時,QA 將變高,QB 將變低)。然而,一時興起,我將我的探頭連接到 QA 和 QB 并使掃描速度非常高,以便我可以看到輸出的轉換。這就是我得到的:
QA 和 QB 輸出疊加(來源:David Ashton)
我使用的是 74HCT00 IC,轉換之間的輕微延遲 - 以及從 1 到 0 的轉換時間,反之亦然 - 與數據表中這些參數的值相當吻合。這確實引發了 Max 和我之間關于傳播延遲性質的一些討論,但我離題了,無論如何,這導致了足夠的材料來寫另一篇文章,所以請屏住呼吸,親愛的讀者!
然后我想到,因為這些轉換在幾納秒 (n) 內緊密對齊,并且開關轉換時間和反彈持續時間以毫秒 (ms) 為單位測量 - 幾乎長了一百萬倍 - 我可以觸發任何一個Q 轉換并根據這些轉換操作和反彈的相對時間。我可以查看一個輸入和一個輸出,然后查看另一個輸入和另一個輸出,然后將顯示拼接在一起。
通過在同一點觸發,正確顯示了開關打開和關閉的相對時間。當然,不會顯示相同的事件,但是使用開關彈跳,無論如何沒有兩個操作是相同的。我抓取了一些顯示器,保存了具有“最佳”開關彈跳效果的顯示器,并使用 MS Paint 將它們彼此相鄰呈現(這對于這類事情來說非常通用)。我得到的結果如下圖所示:
去抖電路的相對時序。第一個 NO 使雙穩態切換。(來源:大衛·阿什頓)
我認為這是一個相當不錯的結果。雖然它由來自兩個獨立開關操作的兩個獨立屏幕抓取組成,但我認為真正的四通道示波器顯示與我得到的并沒有太大不同。
讀者怎么看?我在這里作弊嗎?鑒于我的觸發點在整體方案中是相同的,這是一種有效的技術嗎?還是我應該使用合適的四通道示波器?
可以肯定的是,我抓拍了一張照片,查看了兩個開關觸點,但保留了相同的示波器設置,如下圖所示,這證實了我的多個顯示器中顯示的相對時序是正確的:
打開和關閉開關彈跳(來源:David Ashton)
屏幕上的位置稍有不同,但從中斷(底部,在這種情況下幾乎沒有反彈)和上點(頂部,有很多反彈)之間的時間與上面相同——大約 5.5 格,或 3.75小姐。
最后,我截取了一系列屏幕截圖,顯示 NO 接觸和 QA 輸出在 200 微秒/格之間切換,顯示開關觸點的完整(幾乎 2 毫秒)彈跳,步長為之前的 1/10掃描寬度,低至 20 ns/格,顯示轉換瞬間和相對時序(這是門的傳播延遲變得明顯的地方)。
NO 和 QA 轉換的漸進式屏幕截圖(來源:David Ashton)
請記住,在大多數情況下,相鄰的鏡頭具有不同的開關操作,但這只有在仔細檢查時才會注意到。
所有這些測試都是使用 74HC00 IC 進行的,開關觸點上有 10K 電阻(這是一個常見的上拉值)。我還將示波器探頭更改為 10 倍(其他鏡頭使用 1 倍),這極大地改善了轉換的顯示,并在開關觸點上顯示了一些振鈴,可能是由于 1 倍示波器探頭的電容被移除。我從 Max(他是一個嚴格的工頭)那里得到的部分簡介是嘗試不同的電阻和 IC 類型。
這實際上是一個非常漂亮的小去抖電路。轉換開關很常見,為了測試目的,將其中的幾個構建到面包板中會很有用。
為按鈕開關做這樣的事情也很方便(它們通常只是單極)。也許我們可以用可重新觸發的單穩態電路做點什么
但是 Max 正在努力寫他關于開關彈跳和去抖技術的系列文章,他要求在上面討論的測試電路中使用不同的電阻值和不同的 IC 類型(LS、CMOS)相關的結果,所以我想我最好先把它們搞定。同時,我歡迎任何意見和問題。
審核編輯:湯梓紅
-
示波器
+關注
關注
113文章
6240瀏覽量
184795 -
SPDT
+關注
關注
0文章
72瀏覽量
26540 -
鎖存器
+關注
關注
8文章
906瀏覽量
41496
發布評論請先 登錄
相關推薦
評論