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