999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AT91SAM7S64與MAX7219間SPI通信設計與實現

2008-04-12 00:00:00米紅菊吳志紅王百彥彭文彬
現代電子技術 2008年13期

摘 要:隨著電子技術的進步,發展出了很多總線接口,如USB,I2C,CAN,SPI等。它們的特點都采用了串行接口,只需一根或幾根線就可以實現數據的傳輸。在嵌入式設備的開發中,這些接口的應用,使得處理器和其他外設很容易實現串行通信,大大的簡化電路,提高了傳輸的可靠性。詳細介紹了以ARM7TDMI為核心的芯片AT91SAM7S64的串行外設接口SPI,同時給出了帶SPI接口的LED驅動芯片MAX7219的工作原理,并從硬件和軟件上實現兩芯片的SPI數據通信,最終驅動LED,得到一種穩定、可靠、高速的顯示技術方案。

關鍵詞:串行外設接口;AT91SAM7S64;MAX7219;keil uv3 for arm

Design and Realization of SPI Communication between AT91SAM7S64 and MAX7219

MI Hongju1,2,WU Zhihong3,4,WANG Baiyan1,PENG Wenbin1,CHEN Hong1

(1.School of Electrical Information,Sichuan University,Chengdu,610064,China;2.Logistical Engineering University,Chongqing,400016,China;

3.School of Computer Science,Sichuan University,Chengdu,610064,China;

4.Key Laboratory of Fundamental Synthetic Vision Graphic and Image Science for National Defence,Chengdu,610065,China)

Abstract:With the development of electronic technology,there are a number of Bus interfaces such as USB,I2C,CAN,SPI etc.They all have a serial interface and just by a few lines they can realize the data transmission.By application of these interfaces in the embedded devices,it makes serial communication with other peripherals very easy,and simplifies circuit greatly and improves transmission reliability.This paper describes the theory of AT91SAM7S64 serial peripheral interface and LED driver chip MAX7219,and how to realize the SPI communication between AT91SAM7S64 and MAX7219.A stable,reliable and high speed display technology scheme is gained.

Keywords:serial peripheral interface;AT91SAM7S64;MAX7219;keil uv3 for arm



AT91SAM7S64是Atmel公司推出的以ARM7TDMI為核心的32位總線RISC處理器,在具有與32位ARM處理器的內核一致,功能強大等優點的同時不失操作和編程的方便性。它擁有64 kB的高速FLASH和16 kB的SRAM,其外設功能的應用,如UART,SPI,PWM,TWI,USB 2.0,ADI及定時器等都極大地豐富了芯片的外圍擴展。同時,它極具競爭力的性價比進一步拓展了它在低成本、大產量的嵌入式產品中的應用。AT91SAM7S64的SPI外設與通用I/O口通過編程實現芯片輸出管腳共享,這樣就達到減少輸出管腳卻不減少芯片性能的目的。而MAX7219是針對LED設計的驅動芯片,由于芯片內集成了譯碼、驅動、鎖存的功能,大大的簡化了電路結構,并且能夠接受的數據和命令需要串行輸入,與SPI總線兼容。本文旨在利用AT91SAM7S64芯片的SPI功能,實現一種占用處理器較少的口線、功耗小、不開銷CPU,滿足一定實時要求的LED顯示系統的設計。

1 AT91SAM7S系列SPI系統

1.1 SPI系統的組成

串行外設接口(SPI)實質是一個將串行傳輸數據位發送到其他SPI的移位寄存器。數據傳輸時,一個SPI系統作為主機控制數據流,其他SPI作為“從機”。不同的CPU可輪流作為“主機”且一個主機可同時將數據移入多個從機,但只允許單從機將其數據寫入主機。

SPI系統包括兩條數據線和兩條控制線:

主機輸出從機輸入(MOSI):該數據線將主機輸出數據作為從機輸入移入從機。

主機輸入從機輸出(MISO):該數據線將從機輸出作為主機輸入。傳輸時,只有單從機傳輸數據。

串行時鐘(SPCK):該控制線由主機驅動,用來調節數據流。主機傳輸數據波特率可變,每傳輸一位,產生一個SPCK周期。

從機選擇(NSS):該控制線路允許硬件開關從機。

1.2 SPI系統的工作方式

配置模式寄存器SPI_MR中MSTR位,可將AT91SAM7S64的SPI設置為主機或從機模式。

寫1時,SPI工作在主機模式下,引腳NPCS0到NPCS3配置為輸出,SPCK引腳被驅動,MISO線與接收器輸入連接,同時,發送器驅動MOSI作為輸出;寫0時,SPI工作在從機模式下,MISO線由發送器輸出驅動,MOSI線與接收器輸入連接,發送器驅動SPCK引腳以實現與接收器同步。此時,NPCS0引腳變為輸入,并作為從機選擇信號(NSS)使用。引腳NPCS1到NPCS3未驅動,可用于其他功能。如圖1是單主機/多從機的典型應用框圖。

1.3 SPI系統的數據傳輸

AT91SAM7S64的SPI數據傳輸有四種極性與相位,時鐘極性由片選寄存器CPOL位編程得到,時鐘相位由NCPHA位編程得到。它們決定數據在哪個時鐘邊沿驅動與采樣。數據傳輸格式如圖2所示。

限于篇幅,下面以主機模式的流程,進一步說明AT91芯片SPI接口的工作過程。

當配置為主機模式,SPI工作時鐘由內部可編程波特率發生器產生,因此必須要先配置PMC電源管理控制器以使能SPI時鐘。SPI有兩個保持寄存器,SPI_TDR(發送數據寄存器)和SPI_RDR(接收數據寄存器)及移位寄存器,使能SPI后,當處理器寫入SPI_TDR時,數據開始傳輸,被寫數據立即發往移位寄存器并開始在SPI總線上傳輸。當移位寄存器中數據移位到MOSI線上時,對MISO線采樣并移入移位寄存器。

若PCS域未選擇從機,當寫入發送數據寄存器時,不會啟動傳輸。若傳輸時有新數據寫入SPI_TDR,它將保持當前值到傳輸完成。接收到的數據由移位寄存器送到SPI_RDR中,SPI_TDR中數據載入移位寄存器并啟動新的傳輸。

寫在SPI_TDR中的數據送往移位寄存器由狀態寄存器的TDRE位表示;接受SPI_RDR中來自移位寄存器的數據由狀態寄存器的RDRF位來表示。

2 AT91SAM7S64芯片與MAX7219的接口設計

現階段,大量的新型器件如 LCD/LED模塊、FLASH/E2PROM存儲器、數據輸入/輸出設備都采用了SPI接口,這使得AT91SAM7S64芯片能十分方便的與其他外設實現串行通信。本文介紹一種基于ARM處理器AT91SAM7S64芯片與MAX7219模塊的SPI接口設計,以實現測試、手持等嵌入式設備的輸出顯示。

2.1 MAX7219引腳功能

MAX7219是美國MAXIM公司生產的串行輸入/輸出共陰極顯示驅動器。MAX7219可同時驅動8位共陰極數碼管或64個獨立的LED,它通過DIN,CLK,LOAD三條引線與微處理器接口,只需一個外部電阻就可設置所有LED顯示器字段電流,占用資源少且硬件簡單,允許使用者選擇每位是BCD譯碼或不譯碼,還可選擇停機模式、數字亮度控制、從1~8選擇掃描位數和對所有LED顯示器的測試模式。MAX7219采用24腳雙列直插式封裝,其引腳排列如圖3所示。

其中:

CLK:串行數據時鐘輸入端,最高頻率10 MHz。時鐘上升沿完成數據輸入,時鐘下降沿實現數據輸出。

LOAD:片選端,允許串行數據輸入。當為低時,接收來自DIN的數據。接收完畢,LOAD回到高電平時,接收的數據將被鎖定。

DIG0~DIG7:8位數字驅動線,輸出位選信號,從每位LED共陰極吸入電流。

SEGA~SEGG,DP:驅動顯示器7段及小數點的輸出電流,一般為40 mA左右,可軟件調整,關閉狀態時,接入GND。

DOUT:串行數據輸出端,通常直接接入下一片MAX7219的DIN端。

DATA IN:串行數據輸入端,當CLK為上升沿時,數據被載入16位內部移位寄存器。

2.2 MAX7219片內寄存器

片內寄存器分為8個位寄存器和6個控制寄存器。位寄存器存放點亮LED的具體內容;控制寄存器決定著LED的工作方式。MAX7219對14個寄存器的尋址和數據修改用一組16位的串行數來完成。該串行數據格式如圖4所示,其中D15~D12位未定義,D11~D8位尋址內部8個靜態RAM和6個功能寄存器的地址,D7~D0位存放功能寄存器的數據和LED數碼管待顯示的數據。編程時,程序要先送控制命令字,后向數據寄存器送顯示數據。

2.3 接口設計

MAX7219芯片與AT91SAM7S64一樣,都具有SPI接口,而且AT91SAM7S64傳輸數據的格式可以通過軟件設置成16位,時序也能設置成與MAX7219相匹配的形式,這樣他們之間的通信就變得可行與簡便。可采用如圖5所示的硬件連接方式。AT91SAM7S64的PA13/PGMD1,PA14/PGMD2,PA11/PGM3分別接驅動芯片MAX7219的串行數據輸入端DIN,時鐘信號端CLK和數據裝載控制端LOAD。

在強干擾環境下,如大功率電機的起停或高壓發生過程中,干擾源可能串入顯示電路而造成顯示器的不穩定,從而出現筆段跳躍、顯示不全、甚至全暗或全亮的現象。為此,可通過在3根信號線上對地接入一個1 000 pF的瓷片電容來有效地濾除因空間干擾而引起的尖脈沖。

3 SPI通信的軟件實現方法

筆者通過模塊化設計來實現AT91SAM7S64與MAX7219間數據通信,包括:ARM芯片SPI接口初始化、ARM芯片I/O初始化、數據傳輸(含MAX7219芯片初始化)等,其軟件流程圖如圖6所示。

3.1 ARM芯片SPI接口初始化

(1) 使能SPI時鐘:由外設時鐘使能寄存器PMC_PCER的PIDx位置1確定,其中x是相應外設ID號,在AT91SAM7S64芯片中,SPI的外設ID為5;

(2) 主機選擇:MSTR=1;

(3) 外設選擇:PS=0(固定外設),PCSDEC=0(片選直接與外設連接);

(4) 時鐘選擇:FDIV=0(SPI時鐘為MCK);

(5) SPI時序與MAX7219讀寫數據時序匹配:由MAX7219時序圖可以擇定NCPHA=1,CPOL=0;

關鍵代碼如下:

*AT91C_PMC_PCER=(1<<5) ;

*AT91C_SPI_MR=0x1001 ;

*AT91C_SPI_CR=0x01;

AT91C_BASE_SPI->SPI_CSR[0]= (1<<0)|(0<<1)|

(1<<3)|(0<<4) |(0<<5)|(0<<6)|

(1<<7)|(0<<8)|(1<<9) |(1 <<10);

3.2 ARM芯片I/O初始化

SPI連接適用的外設,是通過與PIO線復用實現的,所以必須要對PIO控制器編程,將PIO引腳分配給外設。

(1) PA13與PA11輸出使能:作為主機,它們是輸出的。

(2) PIO功能禁用:MOSI、SPCK對應的PIO功能應該禁止,以發揮其外設的功能。

(3) 外設A的選擇:該ARM芯片PIO控制器A控制32個口線。每個口線都可以分配為兩個外設功能的一個,A或B,需要編程實現。

關鍵代碼如下:

AT91C_BASE_PIOA->PIO_OER=AT91C_PIO_PA11 | AT91C_PA13_MOSI | AT91C_PA14_MOSI;

*AT91C_PIOA_PER = AT91C_PIO_PA11;

*AT91C_PIOA_PDR = AT91C_PA13_MOSI | AT91C_PA14_SPCK;

*AT91C_PIOA_ASR = AT91C_PA13_MOSI | AT91C_PA14_SPCK ;

3.3 ARM通過SPI與外設傳輸數據

(1) 允許指定的從器件,這一般用清零(對低電平有效的器件)和置位(對高電平有效的器件)接至該器件的允許輸出位來實現。

(2) 向AT91C_SPI_TDR寫入需發送的數據,以啟動數據的傳送。數據包括MAX7219初始化設置和LED顯示內容。本例我們用LED顯示“PH-6”字樣,采用B譯碼方式顯示,亮度適中,掃描個數為4個,則控制寄存器值分別為0x0911,0x0A1A,0x0B16;位控制寄存器值為:0x051E(P),0x041C(H),0x031A(-),0x0216(6)。注意,由于LOAD回到高電平時,接收的數據才能被鎖定,因此,每一次數據傳輸完后必須置位LOAD。

(3) 等待TXEMPTY位置1。

(4) 禁止從器件,即清除從器件的允許信號。

關鍵代碼如下:

AT91C_BASE_PIOA->PIO_CODR=MAX_LD;

*AT91C_SPI_TDR=data;

//DATA為MAX7219初始化設置數據和LED顯示數據,由CPU傳輸給TDR

while(!(AT91C_BASE_SPI->SPI_SR AT91C_SPI_TXEMPTY)) 

{ }

AT91C_BASE_PIOA->PIO_SODR=MAX_LD;

4 結 語

本文詳細討論了AT91SAM7S64ARM芯片SPI接口技術的原理,在keil uv3 for arm集成環境下編譯,并與硬件連接調試,最終實現了對MAX7219的寫操作,該系統具有以下特點:

電路結構簡單 在很多顯示系統中,大多利用74LS164及LED數碼管構成串行動態顯示,該系統一定程度優化了顯示輸出通道對核心控制器I/O端口的占用數量,但它仍需大量(幾個LED就占用幾條I/O口線)的I/O端口作LED片選,同時由于74LS164本身未提供輸出允許端,單片機送來的串行數據從高位LED移向低位LED的過程中,會出現LED本應熄滅的筆劃發光而形成閃爍現象,且LED數越多閃爍現象越嚴重。由于本方案利用了微控制芯片的SPI接口,只需3根線,便可實現數據的輸入輸出,大大的節約了控制芯片的IO口資源。同時,驅動芯片MAX7219有一個8×8的SRAM存儲數碼管的顯示數據,所以任一個數碼管數據更新都不會影響其他數碼管的顯示,很好地消除了一般顯示技術的閃爍問題。

傳輸可靠性較高 考慮到在實際應用中的干擾問題,本系統也做了相應的硬件抗干擾措施,同時對顯示電路單獨供電,并在MAX7219的電源(V+)與地(GND)間并接一個0.1 μF去耦電容和一個10 μF/16 V電解電容,有效提高其工作可靠性。

在實際應用中,該顯示系統電路結構簡單,傳輸效率與可靠性較高,而且其程序控制方式靈活方便,是一種在中小型實時嵌入式系統開發中具有一定的代表性和實用性的技術方案。

參 考 文 獻

[1]ATMEL.AT91SAM7S64 Datasheet.Atmel Corporation[S].2005.

[2]杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003.

[3]包建華,劉海寬.單片機系統中的LED顯示譯碼驅動電路[J].現代計算機,2007,21(15):50-53.

[4]李小亞,鮑鴻,程院蓮.MAX7219在混合顯示LED電路中的應用[J].微型電腦應用,2007,23(8):29-31.

[5]鄭新華,孔漢,楊存祥.MAX1463與LPC2119間SPI通信的設計與實現[J].鄭州輕工業學院學報,2007,22(4):58-60.

[6]陳增輝,劉西玲.使用MAX7219時應注意的幾個問題 [J].國外電子元器件,2002(11):22-24.

主站蜘蛛池模板: AV在线天堂进入| 蜜桃臀无码内射一区二区三区| 人妻中文字幕无码久久一区| 欧美国产日韩在线观看| 中文字幕久久精品波多野结| 国产成人一区在线播放| 亚洲三级视频在线观看| 中文字幕乱妇无码AV在线| 午夜欧美理论2019理论| 亚洲精品片911| 日韩精品无码免费一区二区三区| 欧美高清国产| 中文字幕啪啪| 国产日本欧美亚洲精品视| 国产99热| 无遮挡国产高潮视频免费观看| 国产精品主播| 国产熟睡乱子伦视频网站| 九色91在线视频| 一级毛片网| 中国精品久久| 久久伊人操| 成人精品免费视频| 欧洲在线免费视频| 亚洲国产精品日韩专区AV| 欧美一级大片在线观看| 久久精品人人做人人爽| 亚洲男人天堂久久| 久久伊伊香蕉综合精品| 99精品在线看| 99热这里只有精品2| 免费AV在线播放观看18禁强制| 福利在线不卡一区| 国产成人精品免费视频大全五级| 99久久国产综合精品2020| 黄片在线永久| 国产成年无码AⅤ片在线 | 色综合天天操| 日韩欧美中文| 美女无遮挡被啪啪到高潮免费| 国产欧美日本在线观看| 天天摸夜夜操| 亚洲成人福利网站| 国产精品色婷婷在线观看| 免费一级无码在线网站 | 青草午夜精品视频在线观看| 亚洲高清在线天堂精品| 国产欧美日韩综合在线第一| 老司机久久精品视频| 中文字幕无码电影| 亚洲欧美综合精品久久成人网| 亚洲成人在线免费| 2024av在线无码中文最新| 精品视频一区在线观看| 99热国产这里只有精品无卡顿"| 亚卅精品无码久久毛片乌克兰| 亚洲成a人片| 色偷偷av男人的天堂不卡| 国产精品熟女亚洲AV麻豆| 性色一区| 国产91九色在线播放| 久久久久久尹人网香蕉 | 2021最新国产精品网站| 四虎永久在线精品影院| 99在线视频网站| 99久久国产自偷自偷免费一区| 啪啪啪亚洲无码| 一级毛片在线免费视频| 亚洲欧美一区在线| 国产成人亚洲无码淙合青草| 国产一级视频久久| 2019年国产精品自拍不卡| 日本成人一区| 欧美成人a∨视频免费观看| 久久香蕉国产线看观看精品蕉| 69国产精品视频免费| 亚洲成a人片77777在线播放| 日本高清免费不卡视频| 58av国产精品| 日本福利视频网站| 国产黄在线免费观看| 成人小视频网|