最近幫一個(gè)做工業(yè)旋鈕面板的項(xiàng)目做調(diào)試,板子上用了TE Connectivity ALCOSWITCH的 1-1879749-0 編碼器。上電后旋鈕轉(zhuǎn)起來,示波器看A/B相輸出,信號(hào)幅度正常但偶爾會(huì)丟幾個(gè)脈沖,更頭疼的是在某個(gè)固定角度區(qū)間內(nèi)輸出一直抖動(dòng)。查了半天,發(fā)現(xiàn)不是芯片本身的問題,而是PCB布局和選型時(shí)忽略的幾個(gè)點(diǎn)。這里把排查過程梳理一下。
這顆編碼器屬于 編碼器 大類下的一種增量式方案,每轉(zhuǎn)固定輸出24個(gè)脈沖,配合水平貼片安裝,非常適合做界面交互旋鈕。但這個(gè)品類有個(gè)特點(diǎn)——機(jī)械和電氣耦合緊密,安裝應(yīng)力、供電紋波、去抖參數(shù)這些稍不注意就會(huì)體現(xiàn)在輸出質(zhì)量上。
現(xiàn)象一:旋轉(zhuǎn)時(shí)偶爾丟脈沖,輸出計(jì)數(shù)偏少
現(xiàn)象很明確:手動(dòng)旋鈕轉(zhuǎn)一整圈,MCU捕獲到的脈沖數(shù)經(jīng)常只有22或23個(gè),偶爾25個(gè)。幅度沒問題,但沿不夠陡。第一個(gè)懷疑對(duì)象是上拉電阻。
對(duì)于此類開漏或開集電極輸出的編碼器,datasheet雖然不會(huì)給出具體上拉值,但實(shí)測(cè)下來,我一般建議用4.7kΩ—10kΩ之間。板上原來用的是22kΩ,原因是想省功耗。但1-1879749-0的Pulses per Revolution: 24意味著每轉(zhuǎn)24個(gè)周期,每個(gè)周期只有約15°的電氣角度,對(duì)于機(jī)械旋轉(zhuǎn)速度稍快的場(chǎng)景,信號(hào)邊沿上升時(shí)間會(huì)很快變緩。換4.7kΩ后,丟脈沖現(xiàn)象大幅減少。如果你調(diào)試時(shí)捕獲到的沿斜率不夠,優(yōu)先查上拉電阻值。
第二個(gè)排查點(diǎn):去抖代碼的采樣窗口是否匹配機(jī)械特性。這類小型水平編碼器在低速旋轉(zhuǎn)時(shí)信號(hào)有天然抖動(dòng),如果MCU的采樣周期正好落在抖動(dòng)區(qū)間,就會(huì)誤判成脈沖。把采樣時(shí)間從2ms放寬到5ms即可濾掉大部分機(jī)械回彈。
現(xiàn)象二:固定角度區(qū)間內(nèi)輸出抖動(dòng),其他區(qū)間正常
用示波器鎖定抖動(dòng)區(qū)間,發(fā)現(xiàn)對(duì)應(yīng)的是編碼器內(nèi)部的兩個(gè)相鄰觸點(diǎn)切換點(diǎn)。這通常不是器件本身壞了,而是Orientation: Horizontal這種貼片安裝方式對(duì)PCB焊盤的平整度要求比想象中高。
排查方法:斷開編碼器引腳焊接,用萬用表測(cè)對(duì)應(yīng)輸出腳與GND之間的接觸電阻。正常應(yīng)該在10Ω以下,但抖動(dòng)區(qū)間對(duì)應(yīng)引腳測(cè)出來有80多歐姆。拆下編碼器后,發(fā)現(xiàn)該焊盤處有少許冷焊,可能是回流焊溫度曲線設(shè)置偏低。重焊后抖動(dòng)消失。經(jīng)驗(yàn)上,TE Connectivity ALCOSWITCH Switches 這類小型SMT編碼器對(duì)焊接窗口比較敏感,爐溫鏈速最好按供應(yīng)商推薦曲線的上限走——太保守反而容易出問題。
現(xiàn)象三:編碼器在強(qiáng)電磁場(chǎng)環(huán)境下偶爾誤觸發(fā)
這個(gè)案子后來在機(jī)箱內(nèi)靠近一個(gè)開關(guān)電源放置,編碼器輸出偶爾跳變幾次。查看布局,編碼器到MCU的信號(hào)線走了15cm長(zhǎng),且旁邊就是DC-DC的功率電感。增量編碼器輸出雖然是低速信號(hào),但信號(hào)電平如果受干擾,MCU的GPIO輸入端可能誤判。
建議做法:在編碼器Mounting Type: Surface Mount確實(shí)無法物理遠(yuǎn)離干擾源的情況下,每個(gè)信號(hào)腳(A、B、公共端)各串一個(gè)100Ω電阻限制輸入高頻噪聲,再加上對(duì)地100pF電容做低通濾波。實(shí)測(cè)下來,這樣處理后誤觸發(fā)次數(shù)降到零。注意電容值不要太大,否則會(huì)影響上升沿,一般不超過470pF。
另外一點(diǎn):1-1879749-0的供電腳沒有內(nèi)置去耦電容。雖然這類器件電流很小,但板上必須在靠近引腳處以最短走線放一個(gè)0.1μF陶瓷電容。我遇到過一次因?yàn)殡娙莘胚h(yuǎn)了5mm導(dǎo)致供電上疊加了200mV的噪聲,雖然幅度不大但正好踩在邏輯電平閾值附近,造成間歇性錯(cuò)誤。
關(guān)鍵參數(shù)對(duì)比與橫向參考
| 參數(shù)名 | 數(shù)值 | 工程意義說明 |
|---|---|---|
| Pulses per Revolution | 24 | 每轉(zhuǎn)輸出的脈沖數(shù),決定了系統(tǒng)可達(dá)到的定位分辨率。此數(shù)值較低,適合旋鈕設(shè)置場(chǎng)景,不適用于高精度位置檢測(cè)。 |
| Mounting Type | Surface Mount | SMT封裝,適合自動(dòng)化貼裝,但對(duì)焊盤平整度與回流焊曲線有明確要求,安裝應(yīng)力需控制。 |
| Orientation | Horizontal | 水平安裝,意味著旋鈕軸向與PCB平行,適合面板邊緣側(cè)貼或空間緊湊的應(yīng)用。 |
| 輸出類型 | 需查閱datasheet | 通常為開漏或推挽輸出,影響外部上拉電路設(shè)計(jì)。對(duì)于此類小型編碼器,大多為開漏輸出。 |
| 工作溫度范圍 | 需查閱datasheet | TE 提供較寬溫范圍,實(shí)際使用中注意焊接溫度對(duì)內(nèi)部塑料件的影響。 |
注意上表中的輸出類型和工作溫度范圍筆者在數(shù)據(jù)庫(kù)中沒有拿到精確數(shù)值,建議直接查閱該型號(hào)最新的datasheet確認(rèn)。相對(duì)于兄弟型號(hào)如DPL12SHN24A25K2和DPL12SH2424A21F2,1-1879749-0的關(guān)鍵差異在于水平安裝和大寫字母結(jié)尾的后綴組合,這在TE的編碼器命名中通常代表封裝與端子鍍層有所不同。如果你需要對(duì)比其他同品牌型號(hào),可以參照上面兄弟型號(hào)清單。
常見故障點(diǎn)設(shè)計(jì)checklist
- 上拉電阻:4.7kΩ—10kΩ,優(yōu)先用4.7kΩ,避免信號(hào)邊沿過緩。
- 去抖參數(shù):旋鈕類增量編碼器去抖采樣窗5ms起步,低速場(chǎng)景不超過20ms。
- 去耦電容:0.1μF陶瓷,距離IC引腳<3mm,走線寬度≥0.3mm。
- 信號(hào)濾波:串100Ω + 對(duì)地100pF,放編碼器端;電容必須用C0G/NP0材質(zhì),避免溫度漂移改變截止頻率。
- Layout避讓:編碼器信號(hào)線遠(yuǎn)離DC-DC電感、大電流走線;如無法避開,加GND shield trace。
- 焊接驗(yàn)證:用熱風(fēng)槍補(bǔ)焊(260℃/5s)后測(cè)試接觸電阻,重點(diǎn)測(cè)A/B/公共端三個(gè)焊盤。
- 供電紋波:用示波器AC耦合測(cè)VCC端,紋波峰峰值<50mV,超過則在前級(jí)加LC濾波器。
總結(jié)一下:1-1879749-0這個(gè)編碼器本身是個(gè)成熟且容易用的器件,24脈沖/轉(zhuǎn)的水平貼片封裝很適合成本敏感、空間受限的消費(fèi)級(jí)或輕度工業(yè)人機(jī)界面。但如果只把它當(dāng)一個(gè)“按鍵+旋轉(zhuǎn)”的簡(jiǎn)單器件,不做信號(hào)完整性考慮,調(diào)試時(shí)容易踩到脈沖丟失和抖動(dòng)這兩個(gè)坑。多做一步焊接驗(yàn)證、上拉阻值優(yōu)化和布局濾波,就能跑得很穩(wěn)。項(xiàng)目中遇到過相似問題的,可以參照上面的checklist走一遍。