在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

一文講透SPI總線和IIC總線通信4

jf_78858299 ? 來源:金沙灘工作室 ? 作者:宋雪松 ? 2023-02-13 10:41 ? 次閱讀

下面將對W25Q128的常用操作方式進行介紹。

1、只發送指令——寫使能、寫失能

寫使能是指狀態寄存器中的WEL位置1(發送寫使能指令后硬件自動設置),失能就是清零操作。在發送頁寫,扇區擦除,塊擦除,片擦除,寫狀態寄存器,擦寫安全寄存器指令之前,必須先等待WEL 位置1 ,這些操作完成后,WEL會自動硬件清零。寫失能是將狀態寄存器中的WEL軟件清零,寫失能這個操作很少用到,大多數情況都是硬件自動完成。

根據SPI的操作時序,將指令(06h或04h)通過DI(MOSI)發送給W25Q128,期間DO(MISO)處于高阻狀態,時序圖如圖6-11和圖6-12所示。

圖片

圖6-13 寫使能時序

圖片 圖6-14 寫失能時序

2、發送指令,返回數據——讀狀態寄存器

讀狀態寄存器指令允許讀8位狀態寄存器位。讀狀態寄存指令在任何時間都可使用,可以用05H/35H/15H分別讀取W25Q128的三個狀態寄存器。實際上用的最多的只有05H讀取狀態寄存器1的第0位(BUSY位),用來查看相應指令周期是否結束,芯片是否可以接收新的指令。

根據SPI的操作時序,將指令05H通過DI發送,而后通過DO讀回狀態寄存器的值,時序圖如圖6-15所示。注意通常我們只讀一個字節,時序圖后續字節為芯片備用擴展的。

圖片

圖6-15 讀狀態寄存器時序圖

3、發送指令+數據——寫狀態寄存器

寫狀態寄存器的作用主要實現對Flash某些區域的數據或者狀態保護,一旦寫入保護狀態,在狀態解除之前,這塊區域是禁止寫入和擦除的。這部分在本教程中沒有應用,有興趣的讀者可以根據時序圖和手冊資料了解一下,時序圖如圖6-16所示。

圖片

圖6-16 寫狀態寄存器時序圖

4、讀數據

讀數據指令允許從存儲器讀一個字節和連續多個字節。

首先要確認BUSY位為0,然后根據SPI的操作時序,首先寫入指令代碼03H,而后緊跟3個字節的地址。當W25Q128收到地址后,會將相應地址處的數據根據SPI時序輸出來;如果連續讀多個字節,那每經過8個時鐘周期地址自動加1,并且輸出相應數據,一直到CS拉高,時序圖如圖6-17所示。

圖片

圖6-17 讀數據時序圖

5、寫入數據(頁編程

W25Q128一次寫入的數據只能小于等于256字節,并且不能一次性跨頁寫入。當遇到跨頁時,應先寫滿一頁,等待BUSY位為0,再次往下一頁寫。(如果寫滿一頁繼續往下寫則會跳到緩存區的頁首位置開始寫,之前數據會被覆蓋)

在寫入數據之前,該頁必須被擦除過,然后根據寫入地址和寫入的字節數計算是否跨頁以及頁數。根據SPI的操作時序,首先通過寫使能將WEL置1,然后寫入指令代碼02H,而后緊跟著3個字節的地址,而后接著發送要存儲的數據,時序圖如圖6-18所示。

圖片

圖6-18 頁編程時序圖

寫入數據完畢后,W25Q128將數據從緩存搬移到非易失區所消耗的時間要了解一下,在手冊的84頁有介紹,大概是(30+(x-1)*2.5)us ~ (50+(x-1)*12) us之間(x為寫入的字節),搬移完成后,WEL位會自動清零,BUSY自動清零。

6、扇區擦除、塊擦除

可以使用20H、52H和D8H分別對扇區擦除、32K塊擦除和64K塊擦除。根據SPI的操作時序,在寫入擦除指令之前首先通過寫使能將WEL置1,然后寫入指令代碼20H/52H/D8H中的一個,而后緊跟著3個字節的擦除首地址。

地址發送完畢后,必須將CS拉高,擦除指令才開始執行,并且需要一定的擦除時間,在這個時間內,只能讀狀態寄存器,其他操作均不能進行。扇區、32K塊和64K的擦除典型時間分別是100ms、120ms和150ms,最大時間分別是400ms、1.6s、2s。當擦除完成,WEL和BUSY位自動清零,就可以再次接收新的操作指令,時序圖如圖6-19所示。

圖片

圖6-19 扇區和塊擦除時序圖

7、全片擦除

可以使用C7H/60H指令對整片進行擦除操作。根據SPI的操作時序,在寫入擦除指令之前首先通過寫使能將WEL置1,然后寫入指令代碼C7H或者60H,發送完畢拉高CS后,擦除指令開始執行。

整片擦除過程中,只能讀狀態寄存器,其他操作均不能進行。整片擦除的典型時間是40秒,最大時間是200秒。當擦除完成后,WEL和BUSY位自動清零,就可以再次接收新的操作指令,時序圖如圖6-20所示。

圖片

圖6-20 全片擦除時序圖

接下來根據W25Q128的時序編寫驅動程序,該驅動文件可以驅動W25Qxx系列的Flash存儲芯片,不同型號的ID不同,W25Qxx初始化時會通過判斷芯片ID來識別是否通信成功。

圖片

圖片

圖片

圖片

圖片

圖片

6.9.3 串口控制Flash讀寫實驗

由于Flash與EEPROM實現的功能類似,本節通過改寫串口發送指令控制EEPROM讀寫數據的例程,設計了串口發送指令控制Flash讀寫。幫助大家更好的體會串口實用例程以及Flash讀寫流程。

Flash讀數據指令格式:“f-read 地址 字節長度”,其中地址范圍為0~1610241024,e2read、地址、字節長度之間由空格隔開,比如從地址1開始讀取5字節數據:f-read 1 5。單片機收到指令后執行多字節讀操作,通過串口助手返回讀出的數據。

Flash寫數據指令格式:“f-write 地址 數據”,地址范圍為0~1610241024,f-write、地址、數據之間同樣由空格隔開,比如從地址1開始寫入hello:f-write 1 hello。單片機收到指令后執行多字節寫操作,寫入成功后通過串口助手返回“f-write done.”

如果發送指令格式錯誤,返回“bad parameter.”,如果發送指令錯誤,將返回發送的數據。由于程序中設定的串口接收和發送緩沖區最大為256字節,因此該實驗單次讀取或者寫入的字節數應小于256字節。

圖片

圖片

圖片

圖片

106.10 邏輯分析儀測試SPI信號

當進行SPI通信出現異常時,可以通過邏輯分析儀進行通信時序上的問題查找,如圖6-18所示。從圖上可以看出SCK空閑時是高電平,即CPOL=1;從CLK的跳沿箭頭上可以看出,是后沿讀取數據,即CPHA=1。數據分析可以通過MISO和MOSI解析后的數據判斷出。通過分析儀的數據解析功能,可以直觀看到STM32與Flash之間的通信數據,從而進一步確定問題所在。

圖片

圖6-21 Kingst LA5016邏輯分析儀解析SPI數據

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6040

    文章

    44592

    瀏覽量

    636897
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1717

    瀏覽量

    91839
  • EEPROM
    +關注

    關注

    9

    文章

    1027

    瀏覽量

    81773
  • IIC
    IIC
    +關注

    關注

    11

    文章

    302

    瀏覽量

    38405
  • uart
    +關注

    關注

    22

    文章

    1242

    瀏覽量

    101538
收藏 人收藏

    評論

    相關推薦

    詳解IIC總線

    IIC(Inter-Integrated Circuit)集成電路總線,它是種兩線式串行通信總線,又叫I2C,使用多主從架構,由飛利浦公司
    發表于 06-07 15:38 ?9949次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>詳解<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>

    詳解IIC總線

    IIC(Inter-Integrated Circuit)是個多主從的串行總線,又叫I2C,是由飛利浦公司發明的通訊總線,屬于半雙工同步傳輸類型
    發表于 09-12 11:15 ?2300次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>詳解<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>

    SPI總線學習筆記

    SPI種全雙工的串行通信總線,最早由Motorola提出,雖然應用廣泛,但沒有個統
    發表于 09-20 15:17 ?1134次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>總線</b>學習筆記

    IIC總線SPI總線的比較

    現今,在低端數字通信應用領域,我們隨處可見IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是這兩種
    發表于 09-26 09:30 ?2664次閱讀
    <b class='flag-5'>IIC</b><b class='flag-5'>總線</b>和<b class='flag-5'>SPI</b><b class='flag-5'>總線</b>的比較

    IIC總線SPI總線通信詳解

    IIC總線SPI總線通信介紹
    發表于 12-23 07:02

    串行通信中的IIC總線工作原理是什么

    串行通信中的IIC總線工作原理51本身不帶IIC總線 ,使用程序模擬IIC
    發表于 12-08 07:52

    什么是IIC總線

    - 什么是IIC總線IIC總線是同步通信種特殊形式,具有接線口少、控制簡單、器件封裝形式小、
    發表于 01-24 08:27

    iic總線通信程序

    iic總線通信,要的人速度下載看看哦。
    發表于 03-21 13:50 ?30次下載

    深度解析IICSPI總線協議的區別與應用場景

    IIC vs SPI: 哪位是贏家?我們來對比IICSPI些關鍵點: 第
    的頭像 發表于 12-22 16:48 ?1.9w次閱讀
    深度解析<b class='flag-5'>IIC</b>和<b class='flag-5'>SPI</b><b class='flag-5'>總線</b>協議的區別與應用場景

    解讀IIC總線的FPGA實現原理及過程

    本文首先介紹了IIC總線概念和IIC總線硬件結構,其次介紹了IIC總線典型應用,最后詳細介紹了
    發表于 05-31 10:56 ?6749次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>解讀<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>的FPGA實現原理及過程

    IIC通信總線尋址

    連接到總線都是SCL連到起,SDA連到4、任何器件都可以拉低總線的電平IIC
    發表于 12-04 16:06 ?14次下載
    <b class='flag-5'>IIC</b><b class='flag-5'>通信</b><b class='flag-5'>總線</b>尋址

    SPI總線IIC總線通信1

    從應用上來講,UART通信多用于板間通信,比如單片機和計算機,這個設備和另外個設備之間的通信。而IIC
    的頭像 發表于 02-13 10:39 ?2697次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>講</b><b class='flag-5'>透</b><b class='flag-5'>SPI</b><b class='flag-5'>總線</b>和<b class='flag-5'>IIC</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>1

    SPI總線IIC總線通信2

    從應用上來講,UART通信多用于板間通信,比如單片機和計算機,這個設備和另外個設備之間的通信。而IIC
    的頭像 發表于 02-13 10:40 ?2072次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>講</b><b class='flag-5'>透</b><b class='flag-5'>SPI</b><b class='flag-5'>總線</b>和<b class='flag-5'>IIC</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>2

    SPI總線IIC總線通信3

    從應用上來講,UART通信多用于板間通信,比如單片機和計算機,這個設備和另外個設備之間的通信。而IIC
    的頭像 發表于 02-13 10:41 ?1598次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>講</b><b class='flag-5'>透</b><b class='flag-5'>SPI</b><b class='flag-5'>總線</b>和<b class='flag-5'>IIC</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>3

    淺談SPI總線通信接口及其協議

    上篇內容我們介紹了IIC總線通信接口及其協議,這篇文章我們介紹另種項目開發中非常常見的通信
    的頭像 發表于 03-22 16:11 ?1847次閱讀
    淺談<b class='flag-5'>SPI</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>接口及其協議
    主站蜘蛛池模板: 色黄视频| 女性一级全黄生活片在线播放| 91精品啪国产在线观看免费牛牛| 狠狠插狠狠插| 国产小毛片| 日本高免费观看在线播放| 色多多网| 日本三级带日本三级带黄首页| 欧美人另类zooz| 四虎影院一区二区| 中文字幕一区精品欧美| 亚洲区在线播放| 美女被强插| 亚洲欧美经典| 国产在线99| 亚洲xx网| 日本免费成人| 黄色三级视频在线观看| 97色在线播放| 97影院午夜在线观看视频| 午夜在线看片| 久久夜夜操| 久久精品免视看国产成人2021| 国产国产成人人免费影院| 亚洲视频一| 亚洲电影一区二区三区| 午夜色视频| 青楼社区51在线视频视频| 河南毛片| 国产三级精品视频| 午夜久久免费视频| 国产真实灌醉美女疯狂弄| 国产三级日本三级日产三级66| 日本sese| 亚洲色图日韩| 噜噜嘿| 激情网婷婷| 五月天天| ssswww日本免费网站片| 妖精视频一区二区三区| 五月婷在线观看|