基于SPI的MAX7221與MCU連接_第1頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于spi的max7221與mcu連接在儀器儀表的設計制作中常要用到數碼管顯示,有時數碼管的數量還會無數。假如為每個數碼管都單獨設計驅動,一方面向來說是一個不小的負擔,另一方面大幅增強了電路板的面積成本。max7221單片可以驅動8位數碼管,并且可以舉行級聯擴展,對于這個問題是一個較為妥當的解決計劃。普通max7221與mcu的銜接用法兩種辦法:一是用法mcu的io口挺直模擬通信所需要的時序,此法操作較為繁瑣,易出錯;二是用法uart串行口,這種辦法的通信速率最高僅為1152 kbs。介紹第三種辦法,即max7221通過串行外設接口(serial peripheralinterface,spi

2、)與mcu銜接,此法具有容易和易于用法的特點,其通信速率理論上高達10 mbs。1 spi原理spi是一種由motorola公司開發的高速、全雙工、同步串行通信接口。mcu通過它可以便利地銜接到存儲器、ad轉換器、da轉換器、實時時鐘日歷、驅動器、音頻芯片,甚至另一個mcu。因為spi的成本低,有用性強,無數新推出的芯片都增強了對它的支持。spi以主從方式工作,這種模式通常有一個主機和一個或多個從機,用法4根信號線:主機輸出從機輸入(mosi)、主機輸入主機輸出(miso)、串行時鐘sclk和外設片選(ss)。典型的點對點spi通信銜接1所示。spi與uart的一個重要的區分就是它是一個同步通

3、信協議。主機中有一個時鐘發生器,可以在sclk引腳上產生時鐘信號,全部的數據傳輸都根據這個同步時鐘來舉行。主機和從機各有兩個移位寄存器分布在各自mosi及miso引腳,詳細的傳輸過程就是由這幾個移位寄存器來完成的。以ss低電平有效為例,平常,主機維持ss為高電平,sclk無信號;舉行傳輸時,主機首先將ss引腳拉低作為從機的片選信號,然后在sclk引腳上產生同步時鐘,需要發送或接收的數據就根據這個時鐘進入相應的移位寄存器。主機的數據從主機的mosi引腳移出,移入到從機的miso引腳;從機的數據從從機的mosi引腳移出,移人到主機的mi-so引腳;傳輸結束后,主機將ss拉高。有多個從機時,主機的s

4、s信號可以與從機的片選規律舉行組合,沒有被選中的從機將不會參加spi傳輸。2 器件介紹21 max7221max7221是一款串行接口的數碼管顯示驅動器,單片最多可驅動8位數碼管。它包含有七段譯碼器、位和段驅動器、多路掃描器、段驅動調整器、亮度脈寬調整器及多個特別功能寄存器。max7221不僅可以很便利地與mcu相銜接,還可通過級聯舉行擴展。它的主要功能特點有:(1)10 mhz的串行接口;(2)bcd譯碼非譯碼模式挑選;(3)耗電僅150 a的關斷模式;(4)數字和模擬雙重亮度控制;(5)spi,qspi,microwire等多種串行接口。22 mcu考慮了有用性、性能價格比等多種因素,試驗

5、mcu選用atmega128,它是一種基于 risc結構的8位低功耗微處理器,最高工作頻率為16 mhz。它采納了先進的命令集,絕大多數命令均為單周期命令,自帶128 kb的flash,可以通過spi,jtag、引導程序等多種方式多次編程,支持系統編程及調試。atmega128的spi接口最高工作頻率為主頻的50,可達8 mhz(與max7221spi口的速率上限相當)。該接口的工作方式(主從)、時鐘極性、時鐘沿及工作頻率均可靈便配置。3 硬件銜接圖2所示為4片級聯max7221通過spi與atmega128銜接的。該系統最多可以驅動32位數碼管。因為數據是單向傳輸,因此將atmega128配

6、置為主機,max7221配置為從機,可以省略從機向主機傳輸數據的線路。在這種級聯銜接方式中,全部max7221的cs都銜接在一起,其片選是通過在要傳輸的數據前增強空操作命令來實現的。例如,要向其次級的max7221傳輸數據,應該在時序到來之后首先傳輸一個空操作命令(0x0000),然后再傳輸數據。要向第三級的max7221傳輸數據時,要先傳輸兩個空操作命令,以此類推。值得一提的是,假如要用這種級聯方式設計個數不是8的整數倍的數碼管顯示驅動器,必需要為各個max7221分配平均的掃描位數。例如,假如需要12位數碼管顯示,那么采納兩級級聯驅動,每個max7221驅動6個數碼管;假如需要11位數碼管

7、顯示,那么一級驅動6個,一級驅動5個,但掃描限位仍然都設定為6,只將其中一個空接。這么做是由于max7221對8位數碼管的掃描能力是一定的,在相同亮度的等級下需要舉行掃描的數碼管個數越多,數碼管看上去就越暗。假如各級max7221設定的掃描限位不全都,盡管設定了相同的亮度等級,實際顯示的亮度也會有所差別。4 軟件設計圖3是max7221的spi傳輸時序圖。按照max7221的spi時序圖及寄存器地址表,可以編制出相應的atmega128 spi子程序。spi_init()用于初始化atmega128的spi口,設定時鐘極性和頻率等參數;spi_transmit()用于在時序到來時延續傳輸16位

8、數據;max7221_transmit()用于總體完成從cs被拉低到數據傳輸結束的全過程,并將級聯狀況也考慮了進去。需要注重的一點是max7221一上電就進入到關斷模式,所驅動的數碼管無任何顯示,必需首先退出該模式進入到正常工作模式。相應的子程序如下:5 實 驗試驗中用法上述級聯系統的軟硬件舉行了32位數碼管循環顯示測試,結果正常。此外,還利用at-mega128自帶的定時器對第一級的max7221舉行速率測試,流程4所示。一共舉行20次測試,終于定時器的平均讀數為1 430 ms。據此可計算出數據傳輸的速率該速率未能達到理論上的8 mbs,其緣由是進入和退出函數、循環以及對ss的拉低和置高都耗費了mcu的有效時光。可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論