版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第14章SPI串行外設接口總線
SPI(SerialPeripheralInterface,串行外設接口)總線系統(tǒng)是一種同步串行外設接口,它可以使MCU與各種外設以串行方式進行通信。外設可以是FlashRAM、網絡控制器、LCD顯示驅動器、A/D轉換器和MCU等。SPI總線系統(tǒng)可以直接與各個廠家生產的多種標準外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCLK)、主機輸入/從機輸出數據線(MISO)、主機輸出/從機輸入數據線(MOSI)和低電平有效的從機選擇線SS(有的SPI接口芯片帶有中斷信號線(INT),有的SPI接口芯片沒有主機輸出/從機輸入數據線)。SPI串行外設接口總線相比I2C總線效率要高,因為它是雙工的,但比I2C要多使用兩根數據線。本章介紹SPI串行外設接口的原理、接口控制寄存器的配置和使用、SPI串行外設接口編程。本章內容較多且較復雜,同學可根據需要、精力、興趣取舍?!?4.1SPI接口及操作§14.2SPI接口寄存器§14.3MCP2515芯片介紹§14.4硬件實驗電路§14.5SPI2實驗程序主要內容§14.1SPI接口及操作14.1.1SPI串行外設接口的原理14.1.2SPI串行外設接口的特性14.1.1SPI串行外設接口的原理SPI接口是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在EEPROM、Flash、實時時鐘、AD轉換器,以及數字信號處理器和數字信號解碼器之間。SPI接口在CPU和外圍低速器件之間進行同步串行數據傳輸,在主器件的移位脈沖下,數據按位傳輸,高位在前,低位在后,為全雙工通信,數據傳輸速度總體來說比I2C總線要快,速度可達到數Mbps。SPI接口是以主從方式工作的,這種模式通常有一個主器件和一個或多個從器件。接口包括以下4種信號。1.MOSI:主器件數據輸出,從器件數據輸入。2.MISO:主器件數據輸入,從器件數據輸出。3.SCLK:時鐘信號,由主器件產生。4.:從器件使能信號,由主器件控制。在點對點通信中,SPI接口不需要進行尋址操作,且為全雙工通信,簡單高效。在多個從器件的系統(tǒng)中,每個從器件都需要獨立的使能信號,由于SPI接口比I2C總線多兩根信號線,因此硬件上比I2C系統(tǒng)要稍微復雜一些。SPI接口的內部硬件實際上是兩個簡單的移位寄存器,傳輸的數據為8位,在主器件產生的從器件使能信號和移位脈沖下,按位傳輸,高位在前,低位在后。如圖所示,在SCLK的下降沿,數據發(fā)生改變,同時一位數據被存入移位寄存器。SPI接口的內部硬件接口如圖所示。SPI接口也有其缺點:沒有指定的流控制;沒有應答機制來確認是否接收到數據。Exynos4412包含3個串行外設接口SPn(n=0~2)接口,每個SPI接口都有兩個分別用于發(fā)送和接收的8位移位寄存器,在主設備的一個移位脈沖的驅動下,1bit數據被同步發(fā)送(串行移出)和接收(串行移入)。8位串行數據的速率由相關控制寄存器的內容決定。如果只想發(fā)送,接收到的是一些虛擬的數據;另外,如果只想接收,發(fā)送的數據也可以是一些虛擬的1。Exynos4412SPI0接口的結構框圖如圖所示14.1.2SPI串行外設接口的特性SPI接口具有如下特性:1.與SPI接口協議v2.11兼容;2.8位/16位/32位用于發(fā)送的移位寄存器;3.8位/16位/32位用于接收的移位寄存器;4.查詢、中斷和DMA傳送模式。§14.2SPI接口寄存器14.2.1SPI狀態(tài)寄存器14.2.2SPI時鐘分頻寄存器CLK_DIV_PERILn14.2.3SPI傳輸配置寄存器CH_CFGn14.2.4SPI發(fā)送數據寄存器(SPTDATn)14.2.5SPI接收數據寄存器(SPI_RX_DATAn(n=0~2))14.2.6SPI接口操作14.2.7SPI接口的傳輸格式14.2.8SPI通信模式14.2.1SPI狀態(tài)寄存器SPI狀態(tài)寄存器SPI_STATUSn(n=0~2)如表所示。名稱位描述復位值TX_DONG
[25]主模式下發(fā)送狀態(tài)0=其他情況;1=發(fā)送準備0RX_FIFO_LVL[23:15]接收FIFO數據個數0TX_FIFO_LVL[14:6]發(fā)送FIFO數據個數
RX_OVERRUN[5]接送FIFO溢出錯誤0RX_UNDERRUN[4]接收數據缺失錯誤0TX_OVERRUN[3]發(fā)送溢出錯誤0TX_UNDERRUN[2]發(fā)送FIFO數據缺失0RX_FIFO_RDY[1]0=接收FIFO大于觸發(fā)水平;1=接收FIFO小于觸發(fā)水平0TX_FIFO_rdy[0]0=發(fā)送FIFO大于觸發(fā)水平;1=發(fā)送FIFO小于觸發(fā)水平
14.2.2SPI時鐘分頻寄存器CLK_DIV_PERILnSPI時鐘分頻寄存器如表所示。CLK_DIV_PERILn(n=0~2)輸入時鐘的分頻值,以配合合適的傳輸速度。CLK_DIV_PERIL0位描述復位值SPI0_PRE_RATIO[15:8]SPI0時鐘分頻因子,SCLK-SPI0=DOUTSPI0/(SPI0_PRE_RATIO+1)0SPI0_RATIO[3:0]SPI0時鐘分頻因子,DOUTSPI0=MOUTSPI0/(SPI0_RATIO+1)0CLK_DIV_PERIL1位描述復位值SPI1_PRE_RATIO[31:24]SPI1時鐘分頻因子,SCLK-SPI1DOUTSPI1(SPI1_PRE_RATIO+1)0SPI11RATIO[16:19]SPI1時鐘分頻因子,DOUTSPI1=MOUTSPI1/(SPI1ATIO+1)0CLK_DIV_PERIL2位描述復位值SPI2_PRE_RATIO[15:8]SPI2時鐘分頻因子,SCLK_SPI2=DOUTSPI0/(SPI2_PRE_RATIO+1)0SPI2_RATIO[3:0]SPI0時鐘分頻因子,DOUTSPI2=MOUTSPI2(SPI2_RATIO+1)014.2.3SPI傳輸配置寄存器CH_CFGnSPI傳輸配置寄存器CH_CFGn(n=0~2)是對SPI進行使能和傳輸配置,如接收使能、發(fā)送使能、主從關系確定,相位、極性、軟件復位等,如表CH_CFGn(n=0~2)位描述復位值HIGH_SPEED_EN[6]從機模式下TX時間控制位,0=禁止;1=使能0SW_RST[5]軟件復位0SLAVE[4]主從模式選擇位0=主機模式;1=從機模式0CPOL[3]極性選擇0=高;1=低0CPHA[2]相位選擇0=方式A;1=方式B0PX_CH_ON[1]接收(RX)通道使能0=禁止;1=使能0TX_CH_ON[0]發(fā)送通道使能0=禁止;1=使能014.2.4SPI發(fā)送數據寄存器(SPTDATn)SPI發(fā)送數據寄存器SPI_TX_DATAn(n=0~2)如下表所示。發(fā)送數據寄存器中存放的是SPI接口待發(fā)送的數據。SPI_TX_DATAn(n=0~2)位描
述初
值SPI發(fā)送數據寄存器[31:0]發(fā)送數據寄存器中存放的是SPI接口待發(fā)送的數據0x0014.2.5SPI接收數據寄存器(SPI_RX_DATAn(n=0~2))SPI接收數據寄存器如下表所示。接收數據寄存器中存放的是SPI接口接收到的數據。SPI_RX_DATAn(n=0~2)位描
述初
值SPI接收數據寄存器[31:0]接收數據寄存器中存放的是SPI接口接收的數據0x0014.2.6SPI接口操作通過SPI接口,Exynos4412可以與外設同時發(fā)送/接收8位數據。串行時鐘線與兩條數據線同步,用于移位和數據采樣。如果SPI是主設備,那么數據傳輸速率由主設備寄存器的相關位控制??梢酝ㄟ^修改頻率來調整波特率寄存器的值。如果SPI是從設備,則其他主設備提供時鐘,向SPIDATAn寄存器中寫入字節(jié)數據,SPI發(fā)送/接收操作就同時啟動。某些情況下,在向SPIDATAn寄存器中寫入字節(jié)數據之前要激活nSS引腳。14.2.7SPI接口的傳輸格式Exynos4412支持4種不同的數據傳輸格式。14.2.8SPI通信模式SPI通信模式有如下3種。1.DMA模式:該模式不能用于從設備FormatB形式。2.查詢模式:如果接收用的設備采用FormatB形式,DATA_READ信號應該比SPICLK延遲一個相位。3.中斷模式:如果接收用的設備采用FormatB形式,DATA_READ信號應該比SPICLK延遲一個相位§14.3MCP2515芯片介紹本實驗是通過編寫SPI程序來控制MCP2515,MCP2515是一款獨立的局域網CAN總線控制器。它本身代有9條指令,還有一個內置的狀態(tài)寄存器,可以通過狀態(tài)寄存器獲取該芯片當前狀態(tài),MCP2515框圖如下頁圖所示。我們主要關注MCP2515與SPI的接口及SPI驅動編程。MCP2515芯片指令集見表14-8。我們實驗主要目的:1.設置SPI時鐘源2.設置SPI數據傳輸格式和使能通道3.設置SPI工作模式4.設置GPC1相關引腳SPI工作模式指令名稱格式說明復位11000000將內部基礎器置為省缺狀態(tài)讀00000011從指定地址寄存器讀數據讀RX緩沖器10010mn0讀取接收緩沖器時,在“n,m”指示的4個地址中一個放地址指針可以減輕讀命令開銷。寫00000010將數據寫入指定地址裝載TX緩沖區(qū)01000abc裝載TX緩沖區(qū)時,在a,b,c,所提示的6個地址中一個地址指針,可以減輕寫命令開銷。RTS10000abc指示控制器開始發(fā)送緩沖區(qū)報文,發(fā)送序列10000abc。a-TXB2請求發(fā)送,b-TXB1請求發(fā)送,c-TXB0請求發(fā)送讀狀態(tài)10100000讀取發(fā)送/接收功能狀態(tài)R狀態(tài)10110000快速查詢命令位修改00000101允許用戶修改寄存器某位§14.4硬件實驗電路Exynos4412配備3個SPI控制器,每個SPI總線控制
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 皮革服裝企業(yè)品牌發(fā)展戰(zhàn)略研究考核試卷
- 疾病預防控制中的健康監(jiān)測技術考核試卷
- 期末檢測:湖南省婁底市新化縣東方文武學校2020-2021學年九年級上學期期末考試歷史試題(原卷版)
- 2024年服裝銷售擔保合同規(guī)范文本3篇
- 2024年度商業(yè)活動拍攝制作合同6篇
- 液壓飼草打包機課程設計
- 2024年中國跨境擔保機構擔保業(yè)務合規(guī)性審查及合同管理合同3篇
- 海洋石油鉆探的深海油氣回收技術考核試卷
- 皮革服裝行業(yè)電子商務應用考核試卷
- 味精在食品工業(yè)中的創(chuàng)新研發(fā)考核試卷
- 誡勉談話檢討書3篇
- 行車時遇突發(fā)故障的應急辦法演示
- 倉儲管理員高級工題庫及參考答案
- XX公司學歷、職稱、技能工資補貼規(guī)定
- 川省成都市2022屆高二上學期期末考試:英語
- 消防安全操作規(guī)程
- 廣東省江門市2022-2023學年高一上學期期末調研考試物理試題(一)
- 蘇州市蘇教版五年級下冊數學第三單元第12課《因數和倍數整理練習(第2課時)》課件
- 干部履歷表-干部履歷表
- GB/T 19929-2014土方機械履帶式機器制動系統(tǒng)的性能要求和試驗方法
- GB 2714-2015食品安全國家標準醬腌菜
評論
0/150
提交評論