器搭建二分頻器原理與調(diào)試全解析)
1. 內(nèi)容整體設(shè)計與思路拆解1.1 為什么用74LS74做二分頻器做硬件調(diào)試的工程師應(yīng)該都遇到過這樣的場景手頭需要一路方波時鐘頻率得是主時鐘的一半比如給計數(shù)器提供節(jié)拍信號、給移位寄存器產(chǎn)生使能窗口或者單純想把振蕩器輸出降頻之后再送給下一級電路。最省事的方案當(dāng)然是從MCU引腳直接輸出但很多純模擬/數(shù)字分立電路里根本沒有單片機這時候就需要一個獨立的分頻電路。74LS74是一個雙D觸發(fā)器芯片一個封裝里集成了兩個獨立的D觸發(fā)器。用D觸發(fā)器搭二分頻器本質(zhì)上就是讓觸發(fā)器的反相輸出端Q非接回自己的D輸入端。這樣每個時鐘上升沿到來時Q端電平就會翻轉(zhuǎn)一次——輸入一個脈沖輸出只有半個脈沖頻率正好減半。選74LS74而不是更常見的74HC74或者CD4013主要看兩點一是74LS系列是TTL邏輯在5V供電的老電路系統(tǒng)里兼容性最好驅(qū)動能力也夠用二是74LS74的時鐘輸入端帶施密特整形對邊沿不干凈、上升沿緩慢的信號有一定容忍度調(diào)試時不容易被信號質(zhì)量問題折磨。當(dāng)然如果你手頭只有74HC74也完全可以照抄這個方案只是供電電壓范圍和對輸入電平的要求略有不同。1.2 二分頻 vs 四分頻從D觸發(fā)器原理說起二分頻器理解透徹之后四分頻也就是再加一級的事。但我見過不少初學(xué)者一上來就畫四分頻電路結(jié)果觸發(fā)器接法一團亂時序圖怎么也對不上。所以先從根源講清楚。74LS74內(nèi)部是主從結(jié)構(gòu)或邊沿觸發(fā)結(jié)構(gòu)74LS74是正邊沿觸發(fā)的D觸發(fā)器。Q端在時鐘上升沿采樣D端的電平。把Q非反饋到D端由于Q和Q非永遠是反相的關(guān)系在每個上升沿到來瞬間D端讀到的是當(dāng)前Q的反向電平于是Q翻轉(zhuǎn)。輸入兩個完整周期輸出才變化一個完整周期頻率除以2。如果想把輸出再除以2只需要把第一級的Q輸出接到第二級的時鐘輸入第二級同樣做Q非反饋回D。這樣第一級輸出4分頻前的2分頻信號第二級再除2最終得到4分頻。74LS74里恰好有兩個觸發(fā)器一個芯片就能完成4分頻不用再堆第二片。這一點在設(shè)計電路板時特別實用布局面積小走線也簡潔。1.3 方案優(yōu)缺點和避坑意識二分頻器看著簡單實際上有一堆坑等著踩。第一個坑是復(fù)位端。74LS74的CLR清零和PR預(yù)置引腳是異步有效的低電平觸發(fā)。如果這兩個引腳懸空芯片內(nèi)部電平不確定極易受外界干擾上電瞬間輸出狀態(tài)隨機。試過之后就知道明明接線完全正確但輸出波形亂跳多半就是這兩個引腳沒處理好。正確做法是做二分頻時把CLR和PR都接高電平或者用一個10kΩ電阻上拉到VCC再并一個0.1μF電容到地做濾波。第二個坑是電源去耦。TTL芯片工作時電流變化比較大供電線上會有毛刺如果去耦電容放得離VCC引腳太遠高頻噪聲會直接耦合進信號路徑導(dǎo)致時鐘沿抖動、邏輯分析儀抓到的波形有毛刺。離VCC引腳越近越好3mm以內(nèi)最佳。第三個坑是時鐘輸入幅度。74LS74的輸入高電平最低要求是2VVCC5V時低電平最高0.8V。如果用3.3V的MCU直接驅(qū)動邏輯高電平是3.3V看著是滿足要求了但2V的閾值窗口余量其實不太大如果走線長了加上串?dāng)_可能觸發(fā)不穩(wěn)定。這種場合建議加一個電平轉(zhuǎn)換緩沖器或者用74HCT系列替換掉74LS系列。2. 硬件搭建與電路圖拆解2.1 供電系統(tǒng)設(shè)計整個最小系統(tǒng)只需要一個5V電源。最簡單的方式是USB供電或者兩節(jié)鋰電池加一個三端穩(wěn)壓器比如AMS1117-5.0或者7805。我實際調(diào)試時用過實驗室的直流電源也用過USB轉(zhuǎn)TTL模塊上的5V引腳只要紋波不大都可以用。但在寫進正式項目前還是建議用穩(wěn)壓器供電別直接懟開關(guān)電源的輸出。開關(guān)電源空載時電壓可能偏高紋波也大上電瞬間沖擊容易把74LS74這種老芯片打壞。供電支路里加兩個電容一個10μF電解電容做低頻儲能一個0.1μF陶瓷電容做高頻去耦。電解電容不要離芯片太遠陶瓷電容要緊緊貼在VCC和GND引腳旁邊。如果手頭有示波器可以實測一下VCC引腳上的紋波超過50mV就該檢查電容布局了。74LS74的功耗很小靜態(tài)功耗幾毫瓦動態(tài)功耗也就幾十毫瓦長時間運行幾乎不發(fā)熱。所以散熱問題可以完全忽略不用裝散熱片也不用擔(dān)心熱穩(wěn)定性。真正需要擔(dān)心的是5V供電被拉到4.5V以下的情況這時候TTL邏輯電平余量明顯收縮分頻器可能間歇性失靈。2.2 復(fù)位與預(yù)置引腳處理74LS74的CLR和PR引腳不是普通輸入它們有專門的內(nèi)部結(jié)構(gòu)異步清零/置位功能在時鐘邊沿到來之前就能生效。做二分頻時這兩個引腳用不到但絕不能懸空。我給這個電路的標(biāo)準(zhǔn)做法是CLR和PR共同接一個10kΩ電阻到VCC再并聯(lián)一個0.1μF電容到GND。這樣上電瞬間電容充電過程會把該引腳短暫拉到低電平正好給觸發(fā)器做一次復(fù)位之后電容充滿電引腳被電阻上拉到高電平電路正常開始分頻。實測下來這個RC延遲電路能讓每次上電都有確定初始狀態(tài)輸出從低電平開始翻轉(zhuǎn)時序干凈。如果你需要手動復(fù)位功能可以在CLR引腳到地之間加一個按鈕開關(guān)按下時強制清零。調(diào)試過程中有這個按鈕會很方便按一下就能讓分頻器回到已知狀態(tài)比反復(fù)斷電重啟省事多了。2.3 輸入輸出接口與測試點布局時鐘輸入建議從J1排針接入之后串一個100Ω電阻再進74LS74的CLK引腳。這個電阻的作用是吸收信號源和走線之間的反射對高速方波信號特別有價值。信號發(fā)生器輸出本身有50Ω內(nèi)阻如果走線阻抗不匹配反射會在邊沿上形成振鈴嚴重時甚至導(dǎo)致邏輯分析儀誤判。輸出端從Q引腳引出同樣串一個100Ω電阻再接排針。串聯(lián)電阻末端就是測試點邏輯分析儀或者示波器探頭直接夾在這里。如果你要驅(qū)動下一級電路就從電阻之后引線過去這樣邏輯分析儀探頭和下一級輸入電容對分頻器的影響都被隔離了一部分。板上預(yù)留3個測試點比較好CLK輸入、Q輸出、Q非輸出。Q非雖然二分頻時不一定用得上但調(diào)試時對比Q和Q非兩個互補信號能快速判斷觸發(fā)器工作是否正常。如果兩個信號不是嚴格互補說明芯片可能已經(jīng)損壞或者輸入信號質(zhì)量太差導(dǎo)致觸發(fā)器誤觸發(fā)。2.4 完整接線關(guān)系參考整個電路板的接線關(guān)系非常簡潔用文字描述可能更直觀VCC引腳14接5V正極GND引腳7接電源地1CLR引腳1接10kΩ上拉到VCC再接0.1μF電容到地1PR引腳4接10kΩ上拉到VCC再接0.1μF電容到地1CLK引腳3接100Ω電阻電阻另一端接時鐘輸入排針1D引腳2接1Q非引腳61Q引腳5接100Ω電阻電阻另一端接輸出排針和測試點這里用的是第一個觸發(fā)器1號74LS74同時還有第二個觸發(fā)器2號引腳8到引腳13如果你需要級聯(lián)成4分頻就把1Q接到2CLK然后把2D接2Q非即可。3. 邏輯分析儀調(diào)試全流程3.1 邏輯分析儀選型與連接方式調(diào)試二分頻器邏輯分析儀是比示波器更好用的工具原因是它能同時看多路信號、能長時間采樣、能按觸發(fā)條件捕獲特定波形。示波器看兩三個周期沒問題但想抓“上電后第5個時鐘沿輸出是否正確”這種問題邏輯分析儀的觸發(fā)和深存儲就派上用場了。選邏輯分析儀這件事我多說一句。幾十塊錢的8通道USB邏輯分析儀已經(jīng)足夠調(diào)試這種級別的電路關(guān)鍵是軟件要好用。我自己用過Saleae的軟件也用過開源的PulseView配合國產(chǎn)采集棒兩者都能完成基本時序分析。如果你手頭有高端示波器自帶邏輯分析儀功能的那更好直接把探頭夾在測試點上就行。連接上要注意邏輯分析儀的地夾子必須和電路板的地相連這個是常識但實際操作時特別容易忘。共地不牢會導(dǎo)致采樣數(shù)據(jù)完全亂掉不是你電路的問題是參考電位漂了。每個通道用杜邦線從測試點引出線長控制在15cm以內(nèi)比較安全太長的線會引入額外電感產(chǎn)生振鈴和誤采樣。3.2 采樣參數(shù)設(shè)置方法把邏輯分析儀接到CH0輸入時鐘和CH1Q輸出之后軟件里要設(shè)置幾個關(guān)鍵參數(shù)。采樣率設(shè)置。二分頻器的輸入時鐘如果走得很高比如10MHz那采樣率至少要設(shè)到50MS/s也就是每周期采樣5個點才能比較精準(zhǔn)地還原邊沿位置和毛刺。如果輸入時鐘只有1kHz這種低速25MS/s就綽綽有余了。建議先設(shè)到50MS/s看到波形后再根據(jù)實際頻率調(diào)整。觸發(fā)條件設(shè)置。邏輯分析儀有觸發(fā)功能能捕獲滿足條件的波形片段。二分頻器調(diào)試一般用上升沿觸發(fā)觸發(fā)通道設(shè)為CH0輸入時鐘。這樣每次捕獲的都是從輸入上升沿開始的信號段便于穩(wěn)定觀察輸入輸出對應(yīng)的位置關(guān)系。有些軟件還支持“A通道上升沿且B通道低電平”這種組合觸發(fā)對排查“輸入有脈沖但輸出無反應(yīng)”的問題非常有效。采樣深度設(shè)置。普通USB邏輯分析儀的存儲深度在幾百萬采樣點到幾億采樣點之間采樣率50MS/s下1M采樣點能抓20ms的數(shù)據(jù)。對觀察輸出翻轉(zhuǎn)來說非常充裕。我習(xí)慣設(shè)到2M采樣點這樣能同時看到很多個周期的信號確認分頻比穩(wěn)定。3.3 分頻比驗證與波形解讀一切就緒之后把信號發(fā)生器的輸出調(diào)到1MHz方波幅度3.3V或5V均可只要滿足高電平閾值接到電路板的CLK輸入端。邏輯分析儀上CH0應(yīng)該看到1MHz方波CH1應(yīng)該看到500kHz方波。這就是二分頻成功的標(biāo)志??床ㄐ螘r重點看兩個地方一是輸出頻率是否為輸入的一半這個通過軟件自帶的頻率測量功能直接讀數(shù)或者用光標(biāo)量兩個上升沿之間的時間差。二是邊沿對齊關(guān)系理論上講輸出翻轉(zhuǎn)時刻發(fā)生在輸入時鐘上升沿之后一小段延遲內(nèi)這個延遲就是芯片的傳播延遲tPHL/tPLH74LS74典型值在十幾納秒量級。如果發(fā)現(xiàn)輸出邊沿比輸入邊沿提前了那一定是觸發(fā)條件設(shè)置錯了或者信號串?dāng)_嚴重。如果同時接了CH2到Q非引腳還能看到Q和Q非始終互補。這是觸發(fā)器的最基本特征如果某個時刻Q和Q非都是高電平那這塊芯片九成已經(jīng)損壞。3.4 長時間穩(wěn)定性驗證二分頻器短時間工作正常不代表長時間穩(wěn)定尤其在輸入信號邊沿不理想、供電紋波偏大的環(huán)境下。我的習(xí)慣是跑15分鐘以上的持續(xù)采樣捕獲多個隨機時刻的波形段確認每個周期的頻率和占空比都不漂移。邏輯分析儀能不能直接測占空比大部分軟件支持在測量面板里調(diào)出占空比統(tǒng)計看平均值和標(biāo)準(zhǔn)偏差。占空比應(yīng)該在50%附近因為D觸發(fā)器翻轉(zhuǎn)是對稱的。如果你的占空比明顯偏離50%比如輸出高電平時間只有30%說明輸入時鐘的高電平寬度和低電平寬度本身就不對稱不是分頻器的問題是信號源的問題。長時間測試另外一個目的是驗證芯片溫度漂移。雖然74LS74發(fā)熱量不大但如果板子附近有其他大功率器件環(huán)境溫度升高后觸發(fā)器的閾值電壓會略微變化。此時如果輸入信號幅度接近閾值邊界可能出現(xiàn)偶發(fā)漏觸發(fā)表現(xiàn)出來的癥狀是輸出偶爾多一個周期。這種情況下邏輯分析儀連續(xù)采樣就會抓到異常波形比人眼看指示燈強得多。4. 實測數(shù)據(jù)與信號質(zhì)量分析4.1 關(guān)鍵參數(shù)與手冊對照做完邏輯分析儀驗證之后我建議用示波器補測幾個關(guān)鍵參數(shù)把芯片手冊里的理論值和實際測試值做一個對照。這個習(xí)慣可以幫助你判斷芯片是否處于良好工作狀態(tài)。先看傳播延遲。74LS74手冊給出的典型傳播延遲tPLH低到高約13nstPHL高到低約25ns。實測時用示波器的延遲測量功能從輸入時鐘上升沿50%電平到輸出上升沿50%電平的時間差如果能穩(wěn)定落在15~30ns范圍內(nèi)說明觸發(fā)器內(nèi)部結(jié)構(gòu)沒問題。再看最高工作頻率。74LS74手冊標(biāo)注典型最高時鐘頻率25MHz實測中如果用信號發(fā)生器給20MHz方波應(yīng)該還能正常分頻。到30MHz以上輸出波形就開始變形了占空比失真和沿變緩變得明顯。這個極限值和布線長短、供電質(zhì)量都有關(guān)系不必過度追求知道芯片的合理工作區(qū)間在哪里就行。下面是實測中常見的參數(shù)對照表參數(shù)74LS74手冊典型值實測參考值備注供電電壓5V ± 5%4.90~5.05V超過5.25V可能損壞輸入高電平≥2.0V3.3V可觸發(fā)建議≥3V保險傳播延遲tPLH13ns15~20ns與負載電容有關(guān)最高時鐘頻率25MHz20~30MHz超過后波形失真靜態(tài)功耗約幾mW實測可忽略長時間運行不發(fā)熱4.2 信號完整性問題毛刺與振鈴邏輯分析儀能看數(shù)字邏輯狀態(tài)但看不到模擬層面的信號質(zhì)量。這時候示波器就派上用場了特別是看波形邊沿的振鈴和毛刺。在時鐘信號頻率不高、走線又短的情況下振鈴問題基本不嚴重。但我實測過高頻輸入的情況信號發(fā)生器輸出5MHz方波用杜邦線連接電路板如果杜邦線太長上升沿處能看到明顯的過沖和振鈴幅度能達到正常高電平的30%以上這對TTL輸入是個隱患——邊沿在過沖和回落過程中可能多次穿越邏輯閾值導(dǎo)致觸發(fā)器誤采樣。解決方法是降低輸入信號幅度到合理范圍比如用3.3V而不是5V縮短杜邦線最好直接用同軸電纜或PCB走線轉(zhuǎn)接在CLK引腳處并聯(lián)一個33pF電容到地輕微濾波把振鈴壓掉。注意不能加太大電容否則上升沿變緩反而加劇閾值穿越時間。4.3 用邏輯分析儀測I2C數(shù)據(jù)的聯(lián)想這個二分頻器項目雖然簡單但調(diào)試過程中用到的邏輯分析儀技能可以直接遷移到更復(fù)雜的場景比如I2C通信調(diào)試。I2C的SCL和SDA兩條線用邏輯分析儀抓取時和測二分頻器一個思路采樣率要高于SCL頻率的5倍以上觸發(fā)條件設(shè)為SDA下降沿代表START信號然后查看整幀數(shù)據(jù)是否符合協(xié)議規(guī)范。很多國產(chǎn)邏輯分析儀軟件自帶I2C解碼器點一下就自動把字節(jié)和ACK/NACK標(biāo)出來了。我在調(diào)試一個傳感器模塊時遇到過怪問題I2C讀到的數(shù)據(jù)每隔十幾字節(jié)就錯一個但用示波器看波形又看不出明顯畸變。后來用邏輯分析儀高速采樣才發(fā)現(xiàn)主設(shè)備在第8個時鐘沿之后釋放SDA線但從設(shè)備拉低SDA的響應(yīng)時間偏長導(dǎo)致第9個ACK位采樣窗口競爭。這種時序競爭問題用肉眼看示波器根本抓不到非邏輯分析儀不可。5. 常見問題與排查技巧實錄5.1 常見故障排查速查表下面的表格總結(jié)了調(diào)試二分頻器過程中最常見的幾類故障和對應(yīng)的解決辦法我自己都踩過一遍列出來供參考。故障現(xiàn)象可能原因排查辦法完全無輸出VCC/GND接反用萬用表查電源電壓完全無輸出CLR/PR懸空檢查上拉電阻焊接完全無輸出芯片損壞換一片確認輸出等于輸入D端未接Q非核對反饋回路接線輸出頻率為輸入一半但毛刺多供電去耦不良加0.1μF去耦電容偶發(fā)多一個脈沖輸入信號邊沿太慢用施密特緩沖器整形高電平電壓偏低輸出負載過重減小負載電容/去掉負載測試占空比嚴重偏移輸入高低電平不對稱從源頭修信號源5.2 上電狀態(tài)不確定怎么辦如果你看到的現(xiàn)象是每次上電后Q端初始狀態(tài)有時高有時低這是正常的因為觸發(fā)器在上電瞬間內(nèi)部節(jié)點狀態(tài)隨機。要解決這個問題讓整個系統(tǒng)在每次上電后都有可預(yù)期的初始狀態(tài)關(guān)鍵就是CLR引腳在短暫拉低后再釋放。我在2.2節(jié)里說的RC電路就是干這個用的。10kΩ電阻和0.1μF電容的時間常數(shù)是1ms比5V電源上升時間幾十到幾百微秒慢一點這樣能保證電源穩(wěn)定之后CLR才開始釋放。如果效果不明顯可以把電容換成1μF時間常數(shù)拉到10ms量級上電后的初始狀態(tài)基本就固定了。如果你還需要外部控制復(fù)位那就別用純RC了用一個三極管或者邏輯門把MCU的GPIO信號反相后接到CLR引腳干脆利落地手動復(fù)位。5.3 邏輯分析儀抓不到穩(wěn)定波形這個坑特別常見很多人第一次用邏輯分析儀時夾上探頭就開始采軟件里看到全是一堆亂碼。問題通常不是電路而是邏輯分析儀的使用姿勢不對。首先檢查共地。邏輯分析儀的地線必須和電路板GND連接如果只夾了信號線沒接地采樣結(jié)果全是噪聲電平。然后檢查采樣率如果輸入信號頻率超過采樣率的一半即奈奎斯特頻率軟件里還原出的波形頻率就是混疊后的錯誤值。比如1MHz輸入信號用1MS/s采樣率、每周期只采一個點看起來像是方波但頻率完全對不上。另外觸發(fā)條件不要設(shè)得太苛刻。如果設(shè)置了“CH0上升沿且CH1下降沿”這種組合觸發(fā)但觸發(fā)條件本身永遠不滿足邏輯分析儀一直處于等待狀態(tài)你看到的就是一片空白。新手先把觸發(fā)關(guān)掉改成自由運行模式等能看到連續(xù)波形了再慢慢加觸發(fā)條件。5.4 從二分頻到更復(fù)雜的時序邏輯把二分頻器調(diào)明白之后你會發(fā)現(xiàn)整個74系列時序電路的套路都通了。一個D觸發(fā)器加反饋就能構(gòu)成計數(shù)器、移位寄存器、分頻器、狀態(tài)機的基本單元。74LS74里的兩個觸發(fā)器可以用級聯(lián)方式做四分頻、八分頻前提是每級的時鐘輸入都從前一級的Q端引出。這里提一個展開方向如果你想做一個按鍵消抖電路二分頻器的思路就很有用。按鍵信號經(jīng)過D觸發(fā)器用較低的采樣時鐘鎖存一次可以濾除大部分抖動再接一級D觸發(fā)器就變成了“雙重鎖存消抖”。整個電路不需要軟件參與純硬件完成在某些嵌入式場景里反而比寫代碼更可靠。另外一個方向是做PWM信號生成器用D觸發(fā)器配合RC積分器把方波變?yōu)槿遣ɑ蛘也梢酝ㄟ^調(diào)節(jié)分頻比改變輸出基頻。很多音頻電路里的音調(diào)發(fā)生器就是這么干的。如果你在玩音頻放大器仿真不妨在Multisim或者Proteus里先把二分頻器搭出來驗證原理再上實物板子能省不少彎路。5.5 調(diào)試技巧匯總最后再整理幾條實際調(diào)試中的小經(jīng)驗芯片焊好后先靜態(tài)測電源和地之間的電阻正常應(yīng)有幾kΩ到幾十kΩ如果接近0說明短路了不要再上電。邏輯分析儀的通道順序保持一致最好在杜邦線上貼標(biāo)簽別靠記憶。TTL芯片的閑置輸入引腳不要懸空接高電平或接地都行但別浮空。浮空輸入等于給噪聲開了一扇門。輸出端如果發(fā)現(xiàn)高電平偏低先量一下負載阻抗。太重的容性負載會把信號拉垮必要時加緩沖器。二分頻器級聯(lián)時后級的時鐘輸入沿變緩是正常的因為前級輸出驅(qū)動能力有限。如果后級觸發(fā)不穩(wěn)定在后級CLK引腳前加一個施密特整形門。用邏輯分析儀抓毛刺時把采樣率調(diào)到最高檔位深度調(diào)小一點捕獲概率更大。遇到詭異問題先懷疑電源再懷疑信號完整性最后才懷疑芯片本身。90%的硬件調(diào)試坑都出在前兩個環(huán)節(jié)。我個人做這個二分頻器項目時最大的體會是越是看似簡單的電路越能暴露出基本功的短板。電源去耦放沒放對位置、邏輯分析儀采樣率設(shè)沒設(shè)夠、CLR引腳處理得好不好每個細節(jié)都決定成敗。把這套流程完整走一遍之后再去看復(fù)雜項目里的時鐘樹設(shè)計、觸發(fā)器級聯(lián)、時序約束思路會清晰很多。