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