SPI串行接口
SPI是由Motorala公司提出的一種同步串行外圍接口。它在速度要求不高、低功耗、需保存少量參數(shù)的智能化傳感系統(tǒng)中得到了廣泛應(yīng)用。
SPI是一個全雙工的同步串行接口。在數(shù)據(jù)傳輸過程中,總線上只能是一個主機和一個從機進行通信。
1、MISO(Master In Slave Out)
主機輸入、從機輸出信號。
2、MOSI(Master Out Slave In)
主機輸出、從機輸入信號。
3、SCK(Serial Clock)
串行時鐘信號。(用來同步使用的)
4、SS(Slave Select)
從機選擇信號,低電平有效。
SPI系統(tǒng)連接
SPI總線可在軟件的控制下構(gòu)成各種簡單或復雜的系統(tǒng)。
SPI通信工作原理
SPI的基本結(jié)構(gòu)相當于兩個8位移位寄存器的首位相接,構(gòu)成16位的環(huán)形移位寄存器。從而實現(xiàn)了主機與從機的數(shù)據(jù)交換。
SPI框圖
分析:
①首先看SCK 管腳,通過波特率發(fā)生器產(chǎn)生時鐘信號,這個信號可以出去給從機使用,也可以進來給自己驅(qū)動 COMMUNICATION CONTROL(通信控制),其中波特率發(fā)生器由BR0、BR1、BR2控制,由這三個值來決定波特率的速度,通信控制受MSTR、SSM、SSI控制
,如果通信控制出錯,比如控制的CRCERR(CRC校驗錯誤)、MODF(模式)、OVR(數(shù)據(jù)溢出),就會在SPI_SR的相應(yīng)位置1。通信控制出來的信號連接著 MASTER CONTROL LOGIC(主控邏輯電路),中控邏輯電路控制著MOSI、MISO這一塊。
②數(shù)據(jù)從MISO進來,進入SHIFT REGISTER(移位寄存器),移位寄存器數(shù)據(jù)一旦8位接收完整之后,會自動放到 RX BUFFER 中,我們可以通過 RX BUFFER可以讀取數(shù)據(jù)。 當我們要發(fā)送內(nèi)容,就是通過總線(地址總線,數(shù)據(jù)總線)將數(shù)據(jù)寫入 TX BUFFER 中去,然后送到移位寄存器 ,數(shù)據(jù)一旦8位接收完整之后,可以通過MOSI將數(shù)據(jù)發(fā)送出去。
SPI通信的幾個步驟
1.SPI主從模式
設(shè)置MSTR(主設(shè)備選擇)和SPE位(使能位)來選擇是否工作在主模式還是從模式下。(這兩個位都在SPI_CR1寄存器中都可以設(shè)置),作為從機,片選要接地,可以硬件實現(xiàn)也可以軟件實現(xiàn),接電源是作主機
2.時鐘信號的相位和極性
SPI接口可由CPOL和CPHA設(shè)定4種不同傳輸格式的時序。(CPOL和CPHA在SPI_CR1寄存器中)
CPOL決定時鐘脈沖SCK的有效脈沖方式(正脈沖、負脈沖)。CPHA決定數(shù)據(jù)線MOSI什么時候輸出數(shù)據(jù)或采集數(shù)據(jù)。
根據(jù)CPOL和CPHA的組合數(shù)目,一共有4種設(shè)置情況。
分析:
CPOL決定了脈沖的方式,第一行(CPOL=0),是正脈沖,第二行(CPOL=1),是負脈沖(空閑時高電平,來數(shù)據(jù)下降沿);當CPHA=0,數(shù)據(jù)是先出來的,即比上方的SCK的電平變化(時鐘輸出)要快,大概快半拍,我們稱之為數(shù)據(jù)傳輸相位超前;當CPHA=1,SCK的電平變化之后數(shù)據(jù)才會出來,相位是同步的,當在SCK的第二個上升沿或者下降沿的時候才開始數(shù)據(jù)采集
4種時序下的數(shù)據(jù)傳輸,其中“第一位數(shù)據(jù)的輸出”和“其他位數(shù)據(jù)的輸出”欄是表示數(shù)據(jù)在什么時候更新輸出。還需注意數(shù)據(jù)采樣是上升沿還是下降沿有效。
數(shù)據(jù)與時鐘的相位關(guān)系如下圖:
3.數(shù)據(jù)幀的格式
根據(jù)SPI_CR1寄存器中的LSBFIRST位,輸出數(shù)據(jù)位時可以MSB在先也可以LSB在先。
根據(jù)SPI_CR1寄存器的DFF位,每個數(shù)據(jù)幀可以是8位或是16位。所選擇的數(shù)據(jù)幀格式對發(fā)送和/或接收都有效。
SPI主模式通信
在主模式時,串行時鐘在SCK腳產(chǎn)生。
配置步驟:
通過 SPI_CR1寄存器的 BR[2:0]位定義串行時鐘波特率
選擇 CPOL和CPHA 位,定義數(shù)據(jù)傳輸和串行時鐘間的相位關(guān)系
設(shè)置 DFF 位來定義8或16位數(shù)據(jù)幀格式
配置 SPI_CR1寄存器的 LSBFIRST 位定義幀格式
如果 NSS 引腳需要工作在輸入模式,硬件模式中在整個數(shù)據(jù)幀傳輸期間應(yīng)把 NSS 腳連接到髙電平:在軟件模式中,需設(shè)置 SPI_CR1寄存器的 SSM 和 SSI 位 。 如 果 NSS 引腳工作在輸出模式.則只需設(shè)置 SSOE 位
必須設(shè)置 MSTR 和 SPE 位(只當 NSS 腳被連到高電平.這些位才能保持置位)
在這個配置中, MOSI 腳是數(shù)據(jù)輸出,而 MISO 腳是數(shù)據(jù)輸入。
數(shù)據(jù)發(fā)送過程
1、 當一字節(jié)寫進發(fā)送緩沖器時,發(fā)送過程開始。
2、 在發(fā)送第一個數(shù)據(jù)位時,數(shù)據(jù)字被并行地(通過內(nèi)部總線–TX BUFFER)傳入移位寄存器,而后串行地移出到 MOSI 腳上; MSB 在先還是 LSB 在先,取決于 SPI_CR1寄存器中的 LSBFIRST 位。數(shù)據(jù)從發(fā)送緩沖器傳輸?shù)揭莆患拇嫫?TXE 標志將被置位,如果設(shè)置 SPI_CR1寄存器中的 TXEIE 位,將產(chǎn)生中斷。
3、 在試圖寫發(fā)送緩沖器之前,需確認 TXE 標志應(yīng)該是1
數(shù)據(jù)接收過程
當數(shù)據(jù)傳輸完成時:
1、 移位寄存器里的數(shù)據(jù)傳送到接收緩沖器(8位–>RX BUFFER),并且 RXNE 標志被置位(硬件接受滿自動置位1)。如果 SPI_CR2寄存器中的 RXEIE 位被設(shè)置,則產(chǎn)生中斷。
2、 讀 SPI_ DR 寄存器時, SPI 設(shè)備返回接收到的數(shù)據(jù)字。讀 SPI_DR 寄存器將清除RXNE 位(也是硬件自動清零)。
數(shù)碼管顯示 123.4
main.c
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_lib.h" //包含了所有的頭文件 它是唯一一個用戶需要包括在自己應(yīng)用中的文件,起到應(yīng)用和庫之間界面的作用。
#include "../Module_Function/Module.h"
#include TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; ErrorStatus HSEStartUpStatus; void Delay_Ms(u16 time); void RCC_Configuration(void); void GPIO_Configuration(void); /* Private functions ---------------------------------------------------------*/ /******************************************************************************* * Function Name : main * Description : Main program. * Input : None * Output : None * Return : None *******************************************************************************/ int main(void) { // u16 i=0,j; #ifdef DEBUG debug(); #endif RCC_Configuration();//使能外設(shè)時鐘 SEG_Init(); //========實現(xiàn)數(shù)碼管顯示========== while (1) { /*for(i=0;i<9999;i++) { for(j=0;j<500;j++) SEG_Display(i,0); } */ SEG_Display(1234,3); } } /******************************************************************************* * Function Name : Delay_Ms * Description : delay 1 ms. * Input : time (ms) * Output : None * Return : None *******************************************************************************/ void Delay_Ms(u16 time) //延時函數(shù) { u16 i,j; for(i=0;i
上一篇:STM32-(17):SPI與數(shù)碼管,
下一篇:STM32-(19):I2C通信(理論基礎(chǔ))
推薦閱讀
史海拾趣
隨著市場競爭的加劇,國盛科技意識到傳統(tǒng)生產(chǎn)方式已難以滿足市場需求。于是,公司開始積極探索自動化生產(chǎn)之路。經(jīng)過不懈努力,國盛科技成功自主研發(fā)了電位器自動包裝設(shè)備、自動測試設(shè)備等多種自動化設(shè)備,實現(xiàn)了產(chǎn)品流水化生產(chǎn)。這一突破不僅大大提高了生產(chǎn)效率,還使得電位器年產(chǎn)量突破一億只,為國盛科技贏得了市場的廣泛認可。
國盛科技在技術(shù)創(chuàng)新方面取得了顯著成果。截至目前,公司已累計取得8項發(fā)明專利、30項新型實用型專利,并成功轉(zhuǎn)化了19項高新技術(shù)產(chǎn)品和知識產(chǎn)權(quán)成果。這些專利和成果的取得,不僅展示了國盛科技在電子元器件領(lǐng)域的研發(fā)實力,也為公司的持續(xù)發(fā)展提供了有力支撐。
隨著萬物互聯(lián)時代的到來,CEVA公司迎來了新的發(fā)展機遇。Wi-Fi 6、Wi-Fi 7、5G-Advanced和蜂窩式物聯(lián)網(wǎng)等技術(shù)的快速發(fā)展,推動了客戶對新建置芯片和解決方案的需求。CEVA憑借其在無線連接和智能傳感技術(shù)領(lǐng)域的領(lǐng)先地位,能夠為客戶提供全面的解決方案,滿足這些技術(shù)在多個終端市場帶來的巨大商機。同時,CEVA也是唯一能夠提供藍牙加上Wi-Fi或UWB加上藍牙等組合解決方案的授權(quán)許可商,這一優(yōu)勢使得CEVA在全球半導體產(chǎn)業(yè)中占據(jù)了重要地位。
以上是基于公開資料對CEVA, Inc.在電子行業(yè)中的幾個重要發(fā)展節(jié)點的概述。這些故事展示了CEVA如何在技術(shù)創(chuàng)新、市場布局和應(yīng)對挑戰(zhàn)等方面取得了顯著成就,為公司的持續(xù)發(fā)展奠定了堅實基礎(chǔ)。然而,由于電子行業(yè)的快速發(fā)展和不斷變化的市場環(huán)境,CEVA的未來仍充滿挑戰(zhàn)和機遇。
背景:2008年全球金融危機爆發(fā),電子行業(yè)受到重創(chuàng),市場需求大幅下降。
發(fā)展:面對嚴峻的市場環(huán)境,HN Electronics迅速調(diào)整戰(zhàn)略,削減非核心業(yè)務(wù),加強成本控制,并加大在研發(fā)領(lǐng)域的投入,以技術(shù)創(chuàng)新為突破口,尋找新的增長點。
關(guān)鍵事件:在金融危機期間,HN Electronics成功開發(fā)出具有更高性價比的物聯(lián)網(wǎng)傳感器芯片,滿足了市場對智能家居、智慧城市等新興領(lǐng)域的需求,從而實現(xiàn)了業(yè)績的穩(wěn)步增長。
隨著產(chǎn)品線的不斷豐富和技術(shù)實力的提升,Charcroft Electronics Ltd公司開始積極拓展國內(nèi)外市場。公司加強與國際知名企業(yè)的合作,通過參加國際電子展會、舉辦技術(shù)研討會等方式,提升品牌知名度和影響力。同時,公司還針對不同地區(qū)的市場需求,推出定制化的產(chǎn)品和服務(wù),進一步鞏固和擴大市場份額。
CADENCE硬件仿真器在Ethernet交換芯片驗證中的應(yīng)用 1 概述 隨著網(wǎng)絡(luò)通信的高速發(fā)展,集成多種內(nèi)容的以太網(wǎng)交換芯片在網(wǎng)絡(luò)通信中起著越來越重要的作用,如何加快以太網(wǎng)交換芯片的開發(fā)速度,縮短驗證的周期,是我們面臨的重要課題,為此,我們選用了Cadence硬件仿真器Pallad ...… 查看全部問答∨ |
本帖最后由 paulhyde 于 2014-9-15 09:20 編輯 為了電設(shè) 大家相互學習 相互交流 對于TI的msp43 大家有什么使用心得可以交流 我為人人 人人為我 … 查看全部問答∨ |
將自己的TI 樣片申請歷程記錄下來,對沒有申請過的朋友有所幫助 打開網(wǎng)址 http://focus.ti.com.cn/cn/tihome/docs/homepage.tsp 進入如下界面: 點擊右邊”樣片/購買”,打開網(wǎng)址 http://focus.ti.com.cn/cn/general/docs/buy.tsp?DCMP=TI- ...… 查看全部問答∨ |
|
關(guān)于Wince中OnPaint函數(shù)的問題 本人在做wince時鐘顯示界面時遇到了點問題,希望能夠在這里得到解答 這是OnPaint函數(shù),設(shè)置了定時器每55ms刷新調(diào)用Invalidate(),強制發(fā)送消息WM_PAINT DrawNeedle()函數(shù)是用來繪制指針的,因為每55ms要繪制一直CPen,必須在OnPaint里做重繪的處 ...… 查看全部問答∨ |
|
想學ARM,但是不了解,不知道買什么板子比較好,有經(jīng)驗的指教一下,謝謝! 首先,ARM 11太貴了,1000多算是便宜的 退而求其次,ARM 9吧,看中2440,貌似還不錯,500元左右,可以承受 后來又聽說了個cortex,貌似比ARM 11還高級?但是又有cortex-A/R/M,搞不懂,有點暈 網(wǎng)上賣得比較多的是cortex-M3,比2440好像稍微便宜 ...… 查看全部問答∨ |
我想做一個能模擬樂器聲音播放音樂的電子設(shè)計,但不知道各樂器的聲譜組成,即其基音和泛音的大小。哪位知道哪里有相關(guān)數(shù)據(jù)下載????… 查看全部問答∨ |
請各位老大推薦開發(fā)所用的硬件環(huán)境,什么公司的什么板子比較好?(目標是工業(yè)用) 最好是基于WinCE6.0的,可以自己定制CE的,可擴充攝像頭的 本人初學,謝謝!… 查看全部問答∨ |
來者有分,問了半年了。uclinux里面怎么配置,讓arm上電后自動獲得ip? uclinux里面怎么配置,讓arm上電后自動獲得ip? 我的開發(fā)板是S3C44B0,我聽說uclinux里面支持dhcp,請問 1,編譯uclinux 2.4內(nèi)核時候要選上什么才支持dhcp? 2,是否要寫配置文件? 3,哪位能說得詳細點?謝謝了。 … 查看全部問答∨ |
設(shè)計資源 培訓 開發(fā)板 精華推薦
- 2025中國工博會集成電路展區(qū)陣容揭曉!行業(yè)巨頭齊聚,共繪“芯”藍圖
- 消息稱三星在美“特斯拉專供”2nm 生產(chǎn)線 2026H2 投運,初期產(chǎn)能每月 1~1.5 萬片晶圓
- 黑客如何入侵軟件定義的汽車
- 中國首款國芯腦機智能頭環(huán)正式發(fā)布:非侵入式腦機 全自主國產(chǎn)芯片
- 自動駕駛中Transformer大模型會取代深度學習嗎?
- 這家面板廠在車載OLED領(lǐng)域或再迎新大單
- 激光雷達和攝像頭,誰會是機器人主要的“眼睛”?
- 毫米波雷達技術(shù)參數(shù)有哪些?毫米波雷達如何用于機器人導航
- 毫米波雷達技術(shù)有哪些優(yōu)勢?如何提高毫米波雷達測距精度
- 工業(yè)邊緣設(shè)備的安全啟動,TPM 2.0與可信執(zhí)行環(huán)境(TEE)的硬件級防護
- 機器視覺系統(tǒng)的構(gòu)成和優(yōu)缺點詳細解析
- 不只是開發(fā)者,微軟谷歌FB居然也受限?
- 汽車夜視系統(tǒng)分類及原理
- 本田全新SUV來襲!搭載地球夢動力售價8萬,哈弗H6迎大敵
- 法拉利LaFerrari國內(nèi)首臺現(xiàn)身上海
- SK海力士發(fā)2021財年第二季度財務(wù)報告
- 臺積電南京廠28nm將擴產(chǎn)到每月10萬片
- 英特爾代工業(yè)務(wù)拿下大客戶高通!2025年追上臺積電和三星
- 北方華創(chuàng)擬定增募資85億元證監(jiān)會審核通過
- 儲能將成為能源革命浪潮中第三大超級賽道,逆變器環(huán)節(jié)彈性最高