從引腳有限的微處理器上壓榨出額外輸出引腳
現(xiàn)在許多設(shè)計(jì)采用來(lái)自Freescale和Microchip的低成本微控制器,但在過(guò)去十年中,產(chǎn)品封裝趨向于越來(lái)越小的引腳特征,如8個(gè)、甚至6個(gè)引腳。雖然這些封裝減少了PCB板面積,但它們也減少了可用I/O引腳,當(dāng)需要添加功能而不移植到一個(gè)較大封裝時(shí),給設(shè)計(jì)者設(shè)置了障礙。
本文引用地址:http://www.ex-cimer.com/article/78245.htm為了克服輸入引腳的稀少的問(wèn)題,通過(guò)寫(xiě)一個(gè)復(fù)用和選擇輸入引腳的程序,設(shè)計(jì)者可以增加小型微處理器輸入。但這種方法并不擴(kuò)展輸出引腳,由于大部分設(shè)計(jì)需要同時(shí)驅(qū)動(dòng)多個(gè)引腳。圖1顯示如何通過(guò)增加了移位寄存器來(lái)解決這個(gè)問(wèn)題。
圖1 你需要更多的輸出引腳嗎?
比如,基于IC1(Freescale半導(dǎo)體的9-bit,flash存儲(chǔ)的MC68HC908QT1微處理器,它只有8個(gè)引腳)設(shè)計(jì)增加一個(gè)8-LED。產(chǎn)品僅有4個(gè)多用途輸出口,因而默認(rèn)情況下驅(qū)動(dòng)不了八個(gè)分離的LED。為了解決這個(gè)問(wèn)題,你可以加入IC2, 74HC595串入串出/并出鎖存移位寄存器芯片,該芯片可從半導(dǎo)體供應(yīng)商處得到。該寄存器的鎖存功能允許與特殊數(shù)據(jù)位相關(guān)的LED選擇性驅(qū)動(dòng)。
根據(jù)其數(shù)據(jù)手冊(cè),74HC595芯片通過(guò)SPI協(xié)議接受信號(hào)。不幸的是
,低端微控制器,如MC68HC908QT1,缺乏SPI協(xié)議的硬件支持,但你可以在軟件中通過(guò)以下步驟模擬SPI:
1.通過(guò)不定義控制微處理器芯片IC1的PA4引腳不鎖存移位寄存器輸出。
2.啟動(dòng)MSB,從處理器的內(nèi)部數(shù)據(jù)寄存器復(fù)制1位,轉(zhuǎn)移到處理器的PA0(SD)的輸出上。
3.在PA1引腳上產(chǎn)生一個(gè)時(shí)鐘脈沖。
4.對(duì)所有的八個(gè)數(shù)據(jù)位重復(fù)步驟2和3。
5.定義微處理器的PA4引腳輸出鎖存數(shù)據(jù)到IC2(74HC595)。
圖2顯示了傳送數(shù)據(jù)$F0從IC1到IC2的時(shí)序圖。
圖2 時(shí)序圖
表1展示了通過(guò)發(fā)送5個(gè)連續(xù)字節(jié)給IC2點(diǎn)亮LED,LED值為:$03, $0c,$30,$c0和$55。前4個(gè)字節(jié)沿著柱狀圖每秒一步的逐漸點(diǎn)亮兩個(gè)LED。最后一個(gè)字節(jié)點(diǎn)亮并鎖存所有奇數(shù)LED。表格僅包含了常用的指令,容易轉(zhuǎn)化為其他微處理器的匯編語(yǔ)言。
SPI僅需要三個(gè)輸出引腳,空出了微處理器剩余I/O引腳可以滿足其它功能,也允許遠(yuǎn)程設(shè)置移位寄存器/LED驅(qū)動(dòng)――比如,帶LED的單獨(dú)顯示板。有適當(dāng)?shù)木彌_時(shí),寄存器輸出引腳也能驅(qū)動(dòng)其他負(fù)載,如電機(jī)、繼電器和白熾燈等。
評(píng)論