資源描述:
《第十五章 串行外設(shè)接口(spi)課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第十五章串行外設(shè)接口(SPI)介紹主要內(nèi)容:15.1SPI接口及操作15.2SPI接口控制寄存器SPI(SerialPeripheralInterface,串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信。外圍設(shè)備可以是FLASHRAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動(dòng)器、A/D轉(zhuǎn)換器和MCU等。概述15.1SPI接口及操作15.1.1SPI接口原理SPI接口的全稱是“SerialPeripheralInterface”,意為串行外圍接口,是Motorola首先在其MC68HCXX
2、系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。SPI接口是以主從方式工作的,這種模式通常有一個(gè)主器件和一個(gè)或多個(gè)從器件。接口包括以下四種信號(hào):(1)MOSI–主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入。(2)MISO–主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出。(3)SCLK–時(shí)鐘信號(hào),由主器件產(chǎn)生。(4)–從器件使能信號(hào),由主器件控制。如圖15-1所示,在SCLK的下降沿?cái)?shù)據(jù)改變,同時(shí)一位數(shù)據(jù)被存入移位寄存器。SPI接口內(nèi)部硬件如圖15-2所示:S3C2410
3、SPI0口結(jié)構(gòu)詳圖如15-3所示:15.1.2SPI接口特性?與SPI接口協(xié)議v2.11兼容;?8位用于發(fā)送的移位寄存器;?8位用于接收的移位寄存器;?8位預(yù)分頻邏輯;?查詢、中斷和DMA傳送模式;15.1.3SPI接口操作通過SPI接口,S3C2410可以與外設(shè)同時(shí)發(fā)送/接收8位數(shù)據(jù)。串行時(shí)鐘線與兩條數(shù)據(jù)線同步,用于移位和數(shù)據(jù)采樣。如果SPI是主設(shè)備,數(shù)據(jù)傳輸速率由SPPREn寄存器的相關(guān)位控制??梢孕薷念l率來調(diào)整波特率寄存器的值。如果SPI是從設(shè)備,其他的主設(shè)備提供時(shí)鐘,向SPDATn寄存器中寫入字節(jié)數(shù)據(jù),SPI發(fā)
4、送/接收操作就同時(shí)啟動(dòng)。某些情況下nSS要在向SPDATn寄存器中寫入字節(jié)數(shù)據(jù)之前激活。15.1.4SPI接口編程如果ENSCK和SPCONn中的MSTR位都被置位,向SPDATn寄存器寫一個(gè)字節(jié)數(shù)據(jù),就啟動(dòng)一次發(fā)送。也可以使用典型的編程步驟來操作SPI:?設(shè)置波特率預(yù)分頻寄存器(SPPREn)。?設(shè)置SPCONn配置SPI模塊。?向SPDATn中寫10次0xFF來初始化MMC或SD卡。?把一個(gè)GPIO(當(dāng)作nSS)清零來激活MMC或SD卡。?發(fā)送數(shù)據(jù)→核查發(fā)送準(zhǔn)備好標(biāo)志(REDY=1),之后向SPDATn中寫數(shù)據(jù)。?
5、接收數(shù)據(jù)(1):禁止SPCONn的TAGD位,正常模式→向SPDAT中寫0xFF,確定REDY被置位后,從讀緩沖區(qū)中讀出數(shù)據(jù)。?接收數(shù)據(jù)(2):使能SPCONn的TAGD位,自動(dòng)發(fā)送虛擬數(shù)據(jù)模式→確定REDY被置位后,從讀緩沖區(qū)中讀出數(shù)據(jù),之后自動(dòng)開始數(shù)據(jù)傳輸。?置位GPIO引腳(當(dāng)作nSS的那個(gè)引腳),停止MMC或SD卡。15.1.5SPI口的傳輸格式S3C2410支持4種不同的數(shù)據(jù)傳輸格式,圖15-2顯示了具體的波形圖。15.1.6SPI通信模式?DMA模式,該模式不能用于從設(shè)備FormatB形式。?查詢模式,如果
6、接受從設(shè)備采用FormatB形式,DATA_READ信號(hào)應(yīng)該比SPICLK延遲一個(gè)相位。?中斷模式,如果接受從設(shè)備采用FormatB形式,DATA_READ信號(hào)應(yīng)該比SPICLK延遲一個(gè)相位。15.2SPI接口控制寄存器15.2.1SPI控制寄存器(SPICONn)SPI控制寄存器具體描述如表15-1所示。15.2.2SPI狀態(tài)寄存器(SPSTAn)SPI狀態(tài)寄存器如表15-2所列。15.2.3SPI引腳控制寄存器(SPPINn)SPI引腳控制寄存器如表15-3所列。15.2.4SPI波特率預(yù)分頻寄存器(SPIPREn
7、)SPI波特率預(yù)分頻寄存器如表15-4所示。15.2.5SPI發(fā)送數(shù)據(jù)寄存器(SPTDATn)SPI發(fā)送數(shù)據(jù)寄存器如表15-5所示。發(fā)送數(shù)據(jù)寄存器中存放待SPI口發(fā)送的數(shù)據(jù)。15.2.6SPI接收數(shù)據(jù)寄存器(SPRDATn)SPI接收數(shù)據(jù)寄存器如表15-6所列。接收數(shù)據(jù)寄存器中存放SPI口接收到的數(shù)據(jù)。15.3參考編程例(詳見書中)