0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA入門系列15--SPI總線介紹

e9Zb_gh_8734352 ? 來源:FPGA技術(shù)聯(lián)盟 ? 作者:FPGA技術(shù)聯(lián)盟 ? 2021-03-04 16:41 ? 次閱讀

本系列文章主要針對FPGA初學(xué)者編寫,包括FPGA的模塊書寫、基礎(chǔ)語法、狀態(tài)機、RAM、UART、SPI、VGA、以及功能驗證等。將每一個知識點作為一個章節(jié)進行講解,旨在更快速的提升初學(xué)者在FPGA開發(fā)方面的能力,每一個章節(jié)中都有針對性的代碼書寫以及代碼的講解,可作為讀者參考。

16

第十六章:SPI

SPI簡介

電子系統(tǒng)設(shè)計中,往往被IIC/SPI/UART等總線搞的暈頭轉(zhuǎn)向,本文詳細介紹SPI總線的接口協(xié)議和應(yīng)用。

SPI總線是一種同步串行外設(shè)接口,它可以使MCU/FPGA/DSP控制器與各種外圍設(shè)備以串行方式進行通信。其具有通信速度快,同步設(shè)計以及控制協(xié)議簡單等特點,是電子系統(tǒng)設(shè)計的常用選擇之一。很多芯片的控制都提供SPI接口。

SPI 是英語 Serial Peripheral Interface 的縮寫,顧名思義就是串行外圍設(shè)備接口。是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,最早由Motorola提出的。由于其簡單易用的特性,現(xiàn)在很多的芯片都集成了SPI通信協(xié)議。

SPI傳輸串行數(shù)據(jù)時首先傳輸最高位。波特率可以高達5Mbps,具體速度大小取決于SPI硬件。例如,Xicor公司的SPI串行器件傳輸速度能達到5MHz。

SPI flash 芯片應(yīng)用十分廣泛,在很多電子產(chǎn)品上面或多或少都有它的蹤影,如手機數(shù)碼、液晶顯示器、機頂盒、電腦主板等。主要應(yīng)用在EEPROM,F(xiàn)LASH,實時時鐘AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器等,也是很多復(fù)雜芯片參數(shù)配置的常用接口。

SPI總線介紹

SPI 接口一般使用 4 條線通信,包括片選線(cs_n)、時鐘線(sclk/sck)、輸入數(shù)據(jù)線(sdi/miso) 和輸出數(shù)據(jù)線(sdo/mosi):

SCLK:串行時鐘線,由主設(shè)備產(chǎn)生;

MISO:主設(shè)備數(shù)據(jù)輸入,從設(shè)備輸出;

MOSI:主設(shè)備數(shù)據(jù)輸出,從設(shè)備輸入;

CS:從設(shè)備片選信號,由主設(shè)備控制。

0e61a438-7b3c-11eb-8b86-12bb97331649.png

其中CS是片選信號,可以預(yù)先規(guī)定其為高使能或者低使能有效時,對此芯片的操作才有效。這就允許在同一總線上連接多個SPI設(shè)備。

SPI接口在Master控制下產(chǎn)生的從器件使能信號和時鐘信號,兩個雙向移位寄存器按位傳輸進行數(shù)據(jù)交換,傳輸數(shù)據(jù)高位在前,低位在后(MSB)。在SCK的下降沿數(shù)據(jù)改變,上升沿一位數(shù)據(jù)被存入移位寄存器,如圖所示:

0efbd364-7b3c-11eb-8b86-12bb97331649.png

SPI總線通信特點

1.采用主-從模式(Master-Slave) 的控制方式

SPI 規(guī)定了兩個 SPI 設(shè)備之間通信必須由主設(shè)備 (Master) 來控制從設(shè)備 (Slave). 一個 Master 設(shè)備可以通過提供 Clock 以及對 Slave 設(shè)備進行片選來控制多個 Slave 設(shè)備。

2.采用同步方式(Synchronous)傳輸數(shù)據(jù)

Master 設(shè)備會根據(jù)將要交換的數(shù)據(jù)來產(chǎn)生相應(yīng)的時鐘脈沖(Clock Pulse), 時鐘脈沖組成了時鐘信號(Clock Signal) , 時鐘信號通過時鐘極性 (CPOL) 和 時鐘相位 (CPHA) 控制著兩個 SPI 設(shè)備間何時數(shù)據(jù)交換以及何時對接收到的數(shù)據(jù)進行采樣, 來保證數(shù)據(jù)在兩個設(shè)備之間是同步傳輸?shù)摹?/p>

3.數(shù)據(jù)交換(Data Exchanges)

SPI設(shè)備間的數(shù)據(jù)傳輸之所以又被稱為數(shù)據(jù)交換, 是因為 SPI 協(xié)議規(guī)定一個 SPI 設(shè)備不能在數(shù)據(jù)通信過程中僅僅只充當(dāng)一個"發(fā)送(Transmitter)" 或者 "接收者(Receiver)". 在每個 Clock 周期內(nèi), SPI 設(shè)備都會發(fā)送并接收一個 bit 大小的數(shù)據(jù), 相當(dāng)于該設(shè)備有一個 bit 大小的數(shù)據(jù)被交換了。

0f3b1e0c-7b3c-11eb-8b86-12bb97331649.png

SPI FLASH讀寫介紹

對flash芯片的操作,一般包括對flash芯片的擦除,編程和讀取,各大廠商的SPI flash芯片都大同小異,操作命令基本是沒什么變化的,當(dāng)我們拿到一款芯片,要特別注意芯片的容量,操作分區(qū)等。

其實,無論是對芯片的擦除,編程還是讀取操作,我們大致可以按照以下的套路來:寫命令---寫地址---寫(讀)數(shù)據(jù)。正如以下的時序圖一樣清晰明了,我們先把片選信號拉低,再依次寫指令,地址和數(shù)據(jù),就可以對FLASH芯片進行操作。

0f75a6bc-7b3c-11eb-8b86-12bb97331649.png

在第十七章中將通過SPI總線控制Flash為例講解擦除的實現(xiàn)。

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21768

    瀏覽量

    604623
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6046

    瀏覽量

    136211
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1716

    瀏覽量

    91833

原文標(biāo)題:FPGA入門系列15--SPI

文章出處:【微信號:gh_873435264fd4,微信公眾號:FPGA技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    SH32F9001的SPI介紹與應(yīng)用

    SPI(Serial peripheral interface)即串行外圍設(shè)備接口,是由Motorola首先在其MC68HCxx系列單片機上定義的,基于高速全雙工總線的通訊協(xié)議。被廣泛應(yīng)用于LCD
    的頭像 發(fā)表于 12-31 17:04 ?953次閱讀
    SH32F9001的<b class='flag-5'>SPI</b><b class='flag-5'>介紹</b>與應(yīng)用

    請問FPGA同時連兩片AMC7836時SPI通信是否會互擾?

    請教確認一下,當(dāng)FPGA同時連兩片AMC7836時,兩片7836共用SPI總線,各有獨立的片選,那么在對其中一片7836進行SPI通信時另一片7836的
    發(fā)表于 12-05 06:26

    請問DAC80508M的SPI總線支持三線模式嗎?如果SPI總線上面只掛了一個DAC80508M,CS腳可以直接接地嗎?

    1. 請問DAC80508M的SPI總線支持三線模式嗎?如果SPI總線上面只掛了一個DAC80508M,CS腳可以直接接地嗎? 1. BRDCAST-DATA[
    發(fā)表于 11-20 06:00

    采用Xilinx FPGA的AFE79xx SPI啟動指南

    電子發(fā)燒友網(wǎng)站提供《采用Xilinx FPGA的AFE79xx SPI啟動指南.pdf》資料免費下載
    發(fā)表于 11-15 15:28 ?0次下載
    采用Xilinx <b class='flag-5'>FPGA</b>的AFE79xx <b class='flag-5'>SPI</b>啟動指南

    DS1302芯片與FPGA之間SPI通信原理

    本文通過以DS1302芯片為基礎(chǔ),介紹該芯片與FPGA之間SPI通信原理,詳細描述硬件設(shè)計原理及FPGA SPI接口驅(qū)動設(shè)計。
    的頭像 發(fā)表于 10-24 14:16 ?542次閱讀
    DS1302芯片與<b class='flag-5'>FPGA</b>之間<b class='flag-5'>SPI</b>通信原理

    SPI總線的定義和特點

    SPI總線(Serial Peripheral Interface),全稱為串行外圍設(shè)備接口,是由Motorola公司提出并定義的一種同步、串行、高速的通信總線。SPI
    的頭像 發(fā)表于 09-03 14:05 ?1075次閱讀

    【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(8)SPI 模塊介紹

    串行外設(shè)接口(Serial Peripheral Interface,縮寫為 SPI) 提供了基于SPI 協(xié)議的數(shù)據(jù)發(fā)送和接收功能, 可以工作于主機或從機模式。 SPI 接口支持具有硬件 CRC 計算和校驗的全雙工和單工模式。
    的頭像 發(fā)表于 08-17 09:36 ?713次閱讀
    【GD32 MCU <b class='flag-5'>入門</b>教程】GD32 MCU 常見外設(shè)<b class='flag-5'>介紹</b>(8)<b class='flag-5'>SPI</b> 模塊<b class='flag-5'>介紹</b>

    全國產(chǎn)T3+FPGASPI與I2C通信方案分享

    簡單、可靠和靈活的數(shù)據(jù)傳輸。它廣泛應(yīng)用于各種傳感器、存儲設(shè)備、顯示設(shè)備和通信模塊等領(lǐng)域。適用控制命名傳輸和系統(tǒng)配置的應(yīng)用場景。 圖3 I2C通信總線 國產(chǎn)T3 + FPGASPI與I2C通信方案
    發(fā)表于 07-17 10:52

    如何快速入門FPGA

    快速入門FPGA可以遵循以下步驟: 理解FPGA基礎(chǔ)知識: FPGA(Field Programmable Gate Array)即現(xiàn)場可編程門陣列,是作為專用集成電路(ASIC)領(lǐng)域
    發(fā)表于 04-28 09:06

    如何快速入門FPGA?

    快速入門FPGA可以遵循以下步驟: 理解FPGA基礎(chǔ)知識: FPGA(Field Programmable Gate Array)即現(xiàn)場可編程門陣列,是作為專用集成電路(ASIC)領(lǐng)域
    發(fā)表于 04-28 08:54

    Xilinx 7系列FPGA功能特性介紹

    Xilinx7系列FPGA由四個FPGA系列組成,可滿足一系列系統(tǒng)需求,從低成本、小尺寸、成本敏感的大容量應(yīng)用到最苛刻的高性能應(yīng)用的超高端連
    發(fā)表于 04-22 10:49 ?5632次閱讀
    Xilinx 7<b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>功能特性<b class='flag-5'>介紹</b>

    FPGA與MCU的區(qū)別入門難度如何

    如題,目前我的MCU入門了,請問FPGA入門如何,需要怎么樣去學(xué)習(xí)?
    發(fā)表于 03-16 07:16

    fpga芯片系列介紹

    FPGA芯片系列眾多,不同廠商會推出各具特色的產(chǎn)品系列以滿足不同的應(yīng)用需求。以下是一些主要的FPGA芯片系列
    的頭像 發(fā)表于 03-14 16:15 ?1356次閱讀

    淺析i2c總線spi總線的區(qū)別

    SPI總線需要4根(最少)或更多的線路,包括主設(shè)備的主時鐘(SCK),主設(shè)備發(fā)送數(shù)據(jù)的主輸出(MOSI),主設(shè)備接收數(shù)據(jù)的主輸入(MISO)以及用于片選(Chip Select)的信號線(SS)。
    發(fā)表于 02-02 16:24 ?3450次閱讀
    淺析i2c<b class='flag-5'>總線</b>和<b class='flag-5'>spi</b><b class='flag-5'>總線</b>的區(qū)別

    藍牙串口通訊總線——I2C/SPI/UART

    嵌入式工程師在做串口通信調(diào)試工作的時候,會經(jīng)常用到I2C、SPI、UART這3條總線,I2C、SPI、UART這三種通信總線在嵌入式領(lǐng)域很常見,目前主流的SOC芯片都內(nèi)置了這三種
    的頭像 發(fā)表于 01-22 09:41 ?1735次閱讀
    藍牙串口通訊<b class='flag-5'>總線</b>——I2C/<b class='flag-5'>SPI</b>/UART