久久精品视频免费看,久久99精品久久久麻豆,精品一区二区三区东京热,欧美性视频一区二区免费,天堂中文资源在线最新版,婷婷久久综合久色综合,久久日韩精品中文字幕,欧美成人精品色午夜免费观看,久久精品亚洲日本佐佐木明希,www国产精品一区二区

服務(wù)熱線: 135-4419-0649

新聞資訊

聯(lián)系我們

當(dāng)前位置:網(wǎng)站首頁(yè) >> 新聞資訊 >> 行業(yè)新聞

行業(yè)新聞

MCU引腳不夠用?老工程師簡(jiǎn)單一招把1根線抻成N根

發(fā)布日期:2026-08-12 點(diǎn)擊次數(shù):1324
你肯定遇到過(guò)這種的時(shí)刻:MCU 的引腳幾乎用完,產(chǎn)品馬上要交付,客戶(hù)突然說(shuō)要加一個(gè) 4 位數(shù)碼管或者一排指示燈。多一根 GPIO 都擠不出來(lái),加芯片又嫌板子和成本撐不住。今天分享一個(gè)偏門(mén)玩法——用一個(gè) GPIO,靠“不同長(zhǎng)度的脈沖”在硬件上跑出一串串行數(shù)據(jù),最后鎖存成 N 位并行輸出。不再糾結(jié)引腳,也不再改 MCU,只需要加些門(mén)電路、RC時(shí)序電路和移位寄存器就能搞定。


                                                                  需求有多“坑”:只剩一條 I/O 卻要 N 位并行

先說(shuō)下靈感的來(lái)源。EDN 的老朋友 Jayapal 前陣子投稿,說(shuō)他碰到一個(gè)“噩夢(mèng)開(kāi)局”:MCU 只剩一個(gè)引腳空閑,卻臨時(shí)要加一個(gè) 4 位數(shù)碼管。是不是聽(tīng)起來(lái)就頭大?再加上馬上要交付,完全就是恐怖片開(kāi)局。

他的做法很聰明——在一條 GPIO 上,用不同時(shí)長(zhǎng)的軟件脈沖來(lái)編碼控制信息,直接“一拖多”。順著這個(gè)思路,我就在想:能不能把玩法再“泛化”一點(diǎn)?不限于 4 位 BCD,而是任意 N 位并行輸出,都用同一根 GPIO。于是就有了下面這套電路與時(shí)序方案。

                                                              電路要點(diǎn):一條 GPIO “玩轉(zhuǎn)”三路 RC 與移位寄存器

電路的核心思路其實(shí)很簡(jiǎn)單:

·GPIO 輸出的脈沖先經(jīng)過(guò)一個(gè)非反相門(mén) U1a 做一下緩沖;

·然后同時(shí)給三組 RC/門(mén)電路“喂”脈沖:

i.SER 0/1 判別電路 U1b:R1C3 時(shí)間常數(shù) 400 μs,用來(lái)判斷這一位是 0 還是 1;

ii.RCLK(鎖存時(shí)鐘)生成電路 U1cd:R4C2=2.4 ms,交流耦合施密特觸發(fā),用來(lái)在“傳輸結(jié)束”時(shí)產(chǎn)生一個(gè)并行鎖存脈沖;

iii.SRCLK(移位寄存器串行時(shí)鐘):作為移位時(shí)鐘,把 SER 上的位一個(gè)一個(gè)挪進(jìn)移位寄存器串。

這里所有時(shí)鐘和控制都由 GPIO 的“脈沖時(shí)長(zhǎng)”和 RC 充放電來(lái)決定。


                                                                     示例電路

                                          時(shí)序設(shè)計(jì):用“脈沖長(zhǎng)短”編碼 0/1 并自動(dòng)鎖存

要玩得穩(wěn),最關(guān)鍵的是:MCU 這條 GPIO 必須有穩(wěn)定、可預(yù)測(cè)的輸出翻轉(zhuǎn)。接下來(lái)看具體時(shí)序規(guī)則,這些是可以直接落地的參數(shù):

·空閑態(tài):GPIO 保持 高電平(1)。

·要發(fā)位時(shí),先把 GPIO 拉低(0),這相當(dāng)于開(kāi)始脈沖,同時(shí)釋放各路 RC時(shí)序電路。

·發(fā)完這一位后,GPIO 再回到高(1)。低電平的持續(xù)時(shí)間決定了你移進(jìn)去的是 0 還是 1:

o若 < 100 μs(T0):R1C3 還沒(méi)來(lái)得及把 SER 拉高,當(dāng) SRCLK 上升沿到來(lái)時(shí),SER 仍然是 0——于是移位寄存器收到的是 0;

o若 > 400 μs(T1):R1C3 有足夠時(shí)間把 SER 拉高,SRCLK 上升沿鎖進(jìn)的就是 1。


                                                               GPIO脈沖時(shí)序

只要你控制好相鄰脈沖之間的空閑時(shí)間 < 600 μs,就可以維持在 2–10 kbps 左右的有效數(shù)據(jù)率(取決于 0/1 的分布)。

整包數(shù)據(jù)發(fā)完后,只要讓 GPIO 空閑 > TR=3.5 ms,R4C2 的 AC 耦合施密特觸發(fā)就會(huì)超時(shí)并產(chǎn)生一個(gè) RCLK 脈沖,一次性把移位寄存器里的數(shù)據(jù)“橫向”打到 N 位并行輸出口。

如果你是做 4 位 BCD 數(shù)碼管(16 bit),用兩個(gè) 8-bit 移位寄存器,整體時(shí)序大概在 12 ms 內(nèi)就夠用。對(duì)多數(shù)低速顯示/控制場(chǎng)景來(lái)說(shuō),完全“打得動(dòng)”。

                                                             使用邊界與工程取舍

任何“花式省引腳”的方案,都要清楚它的適用邊界。這套玩法有幾個(gè)點(diǎn)我建議你心里有數(shù):

·可靠性嚴(yán)重依賴(lài) RC 與溫度/批次:R/C 的精度、溫度系數(shù)、電源波動(dòng)都會(huì)影響閾值。如果你對(duì)時(shí)序要求很?chē)?yán),或者要過(guò)寬溫范圍,最好把 RC 換成更穩(wěn)定的方案。

·協(xié)議是“定制的單總線”:MCU 端需要用軟件精確控制脈沖寬度;如果你后面要維護(hù)/交接,記得把時(shí)序參數(shù)寫(xiě)進(jìn)注釋或文檔。

·速率不高,適合低速控制/顯示:2–10 kbps 級(jí)別對(duì)狀態(tài)指示、數(shù)碼管、繼電器陣列等完全夠用;但別指望跑高速通信或視頻類(lèi)數(shù)據(jù)。

·硬件成本 vs 軟件成本:如果 MCU 本身還有余量,你當(dāng)然可以用更“正統(tǒng)”的 擴(kuò)展方法,或者干脆換一顆引腳更多的 MCU;但在“硬件不能動(dòng)、BOM 受限、交期卡死”的前提下,這套 RC+移位寄存器的做法是個(gè)很實(shí)用的補(bǔ)丁方案。







聲明:
本文來(lái)源于網(wǎng)絡(luò) ,轉(zhuǎn)載僅為學(xué)習(xí)參考,如有問(wèn)題請(qǐng)聯(lián)系,謝謝。
深圳市正芯科技有限公司http://www.getce2.com