當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]SPI——串行外設(shè)總線(Seriel Peripheral Interface),全雙工通信,4條線:1、SCK(Seriel Clock,時(shí)鐘信號(hào)線——用于同步通信),由主機(jī)產(chǎn)生,兩個(gè)設(shè)備通信時(shí),速率受限于低速設(shè)備;2、SS(也稱NSS、CS,設(shè)備選擇信

SPI——串行外設(shè)總線(Seriel Peripheral Interface),全雙工通信,4條線:1、SCK(Seriel Clock,時(shí)鐘信號(hào)線——用于同步通信),由主機(jī)產(chǎn)生,兩個(gè)設(shè)備通信時(shí),速率受限于低速設(shè)備;2、SS(也稱NSS、CS,設(shè)備選擇信號(hào)線,也是片選信號(hào)線),每個(gè)設(shè)備通過(guò)一條獨(dú)有的CS線連接到主機(jī),當(dāng)CS拉低時(shí),表示被選中;3、MISO(Master Input Slave Output,主機(jī)輸入從機(jī)輸出);4、MOSI(Master Input Slave Output,主機(jī)輸出從機(jī)輸入)。SCK、MISO、MOSI這三條線各個(gè)從機(jī)共用,CS線為每個(gè)從機(jī)獨(dú)有連接主機(jī)。

SPI協(xié)議層:通信的起始信號(hào):CS由高變低;

通信的結(jié)束信號(hào):CS由低變高;

數(shù)據(jù)的有效性:在SCK每個(gè)時(shí)鐘周期發(fā)送一位數(shù)據(jù),數(shù)據(jù)輸入輸出同時(shí)進(jìn)行,在什么時(shí)候采樣以及時(shí)鐘信號(hào)在通信開(kāi)始前的狀態(tài)由SPI控制寄存器1位0CPHA(Clock Phase)位1CPOL(Clock Polarity)決定,CPOL和CPHA不同組合形成4種模式,00,01 ,10,11,在FLASH芯片W25Q128中支持模式0和模式3。

之后感覺(jué)重要的就是FLASH芯片的Instructions了,在文檔中有命令表。


然后復(fù)習(xí)一下思路:1、初始化——初始化GPIO引腳,初始化SPI結(jié)構(gòu)體,打開(kāi)引腳和外設(shè)時(shí)鐘,使能SPI。這塊FLASH芯片是先接收MSB的,所以初始化里設(shè)置為MSB先行。

2、在讀取芯片ID——先寫一個(gè)讀寫函數(shù)uint8_t Read_Write_Byte(uint8_t data)。在發(fā)送數(shù)據(jù)之前,先通過(guò)SPI_GetFlagStatus(...)判斷SPI狀態(tài)寄存器位1-TXE,等待發(fā)送緩沖區(qū)為空,再調(diào)用SPI_I2S_SendData(...)發(fā)送一個(gè)8位數(shù)據(jù),在通過(guò)SPI_GetFlagStatus(...)判斷SPI狀態(tài)寄存器位0-RXNE,等待接收緩沖區(qū)不為空,開(kāi)始接收一個(gè)8位數(shù)據(jù),返回讀到的值。在初始化中設(shè)置發(fā)送接收數(shù)據(jù)長(zhǎng)度。關(guān)于這邊為什么在一個(gè)函數(shù)中同時(shí)發(fā)送接收,說(shuō)是不發(fā)送數(shù)據(jù)時(shí)鐘線不開(kāi),接收也無(wú)效?!癝PI設(shè)備間的數(shù)據(jù)傳輸又被稱為數(shù)據(jù)交換,SPI協(xié)議規(guī)定SPI設(shè)備在通訊中不能僅充當(dāng)一個(gè)“發(fā)送者”或“接受者”,在每個(gè)CLOCK周期內(nèi),SPI設(shè)備都會(huì)發(fā)送并接收一個(gè)bit大小的數(shù)據(jù),相當(dāng)于數(shù)據(jù)交換”(百度文庫(kù))。

3、讀取芯片ID——拉高CS,用讀寫函數(shù)發(fā)送讀取ID指令9FH,之后,用讀寫函數(shù)發(fā)送一個(gè)DUMMY(任意數(shù)據(jù))并用一個(gè)8位變量接收返回值即(MF7-MF0),再用兩個(gè)變量接收(ID15-ID8)和(ID7-ID0),將三個(gè)變量整合到一個(gè)32位數(shù)據(jù)作為返回值返回。

4.1、寫使能——拉高CS,發(fā)送Write Enable指令06H,拉低CS

4.2、擦除存儲(chǔ)區(qū)域——在我們下載程序,寫入之前,得先擦除,擦除之前,先發(fā)送寫使能。FLASH有個(gè)特性,只能將0寫成1,不能將1寫成0,所以擦除后的FLASH全為1。這塊16MByte的FLASH芯片,由256個(gè)Block(塊,64k)組成,每個(gè)塊由16個(gè)Sector(扇區(qū),4k)組成,所以有整片擦除、扇區(qū)擦除、塊擦除。擦除扇區(qū)相當(dāng)于向存儲(chǔ)器寫1,所以在擦除扇區(qū)之前要先發(fā)送寫使能命令。

5、讀取數(shù)據(jù)——讀取數(shù)據(jù)之前得先等待芯片處理完內(nèi)部時(shí)序,即總線空閑,等待芯片狀態(tài)寄存器位0-BUSY為0。拉高CS,發(fā)送Read Data 指令03H,分3次發(fā)送讀的起始地址,開(kāi)始讀,傳入一個(gè)數(shù)組指針,將讀到的值存入一個(gè)數(shù)組,通過(guò)串口顯示出來(lái),地址自加1。通過(guò)判斷讀出的數(shù)據(jù)是否全為1檢驗(yàn)程序?qū)﹀e(cuò)。

6、寫數(shù)據(jù)——等待芯片處理時(shí)序,即等待總線空閑,發(fā)送寫使能,發(fā)送Page Program指令02H,分三次發(fā)送要寫入的地址,之后發(fā)送要寫入的數(shù)據(jù),可以通過(guò)數(shù)組指針寫入多個(gè)數(shù)據(jù),但是不得多于256個(gè),芯片規(guī)定??梢酝ㄟ^(guò)循環(huán)寫入超過(guò)256個(gè)數(shù)據(jù)

7、通過(guò)讀取數(shù)據(jù)將之顯示出來(lái)與寫入數(shù)據(jù)比較,檢驗(yàn)程序是否正確。

8、掉電模式——可用可不用,進(jìn)入掉電模式之后只有Release Power_down或者是重新上電才能與芯片通信。,拉高CS,通過(guò)簡(jiǎn)單的發(fā)送Power down指令B9H,拉低CS,就能使芯片進(jìn)入掉電模式,在程序最結(jié)束循環(huán)前加入掉電函數(shù),實(shí)驗(yàn)現(xiàn)象就是在第二次下載時(shí)讀不到ID,當(dāng)然在沒(méi)有重新上電的情況下。如果我們之前用指令A(yù)BH讀取ID,那么就沒(méi)有進(jìn)入掉電模式的實(shí)驗(yàn)現(xiàn)象了。

來(lái)自學(xué)習(xí)野火教程,純個(gè)人理解。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉