国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電子工程網

標題: 【開發教程7】瘋殼·人形街舞機器人-外部 Flash 讀寫 [打印本頁]

作者: Linda-x    時間: 2022-7-20 16:51
標題: 【開發教程7】瘋殼·人形街舞機器人-外部 Flash 讀寫
多自由度人形雙足舞蹈機器人
——瘋殼·機器人開發系列
外部 Flash 讀寫




    1SPI 簡介

    本章將使用 IAP15W4K61S4 單片機的 SPI 接口,對外部 Flash 進行讀寫操作。

    SPI 是一種全雙工、高速、同步的通信總線,有兩種操作模式:主模式和從模式。在主模式中支持高達 3Mbps 的速率(工作頻率為 12MHz 時,如果 CPU 主頻率采用 20MHz 到 36MHz,就可以更高,從模式時速度無法太快),還具有傳輸完成標志和寫沖突標志保護。SPI 的功能框圖如下圖所示:

   
    圖 1
    SPI 接口其實是一個 8 位移位寄存器和數據緩沖器,數據可以同時發送和接收。在 SPI 數據的傳輸過程中,發送和接收的數據都存儲在數據緩沖器中。

    對于主模式,如果要發送一個字節的數據,只需要將這個數據寫到 SPDAT 寄存器中。主模式下/SS 信號不是必須的,但是在從模式下,必須在/SS 信號變為有效并接受到合適的時鐘信號后,方可進行數據傳輸。在從模式下,如果一個字節傳輸完成后,/SS 信號變為高電平,這個字節立即被硬件邏輯標志為接收完成, SPI 接口準備接收下一個數據。
    2硬件設計

    本次我們所使用的外部 Flash 是 W25X20CL,它一共有 8 個引腳。1 號引腳 CS 用于芯片的選擇。2 號引腳 DO 是數據輸出引腳。3 號引腳 WP 是寫保護。4 號是GND。5 號 DIO 引腳既可以作為數據輸入,也可以作為數據輸出。6 腳 CLK 是 Flash 的串行時鐘信號。第 7 腳用于暫停 SPI 的通信。最后 VCC 就是電源腳。具體的硬件連接如下圖所示。

   
    圖 2
    3軟件設計

    本次軟件設計主要是講解 SPI 讀寫外部 Flash,在此之前,先簡要介紹 3 個與

    SPI 相關的主要寄存器,其它相關寄存器可以參考官方數據手冊中的相關章節。

    (1)SPI 控制寄存器 SPCTL

   
    圖 3
    SSIG:SS 引腳忽略控制位。

    SSIG=1,MSTR(位 4)確定器件為主機還是從機。SSIG=0,SS 腳用于確定器件為主機還是從機。
    SPEN:SPI 使能位。

    SPEN=1,SPI 使能。

    SPEN=0,SPI 被禁止,所有 SPI 引腳都作為 I/O 使用。

    DORD:設定 SPI 數據發送和接收的位順序。DORD=1,數據字的最低位最先發送。DORD=0,數據字的最高位最先發送。
    MSTR:主/從模式選擇位。CPOL:SPI 時鐘極性。
    CPOL=1,SCLK 空閑時為高電平。SCLK 的前時鐘沿為下降沿而后沿為上升沿。

    CPOL=0,SCLK 空閑時為低電平。SCLK 的前時鐘沿為上升沿而后沿為下降沿。

    CPHA:SPI 時鐘相位選擇。

    CPHA=1,數據在 SCLK 的前時鐘沿驅動,并在后時鐘沿采樣。

    CPHA=0,數據在/SS 為低時被驅動,在 SCLK 的后時鐘沿被改變,并在前時鐘沿被采樣。
    SPR1、SPR0:SPI 時鐘頻率選擇控制位。如下圖所示:

   
    圖 4
    (2)SPI 狀態寄存器 SPSTAT

   
    圖 5
    SPIF:SPI 傳輸完成標志

    當一次串行輸出完成時,SPIF 置位。此時,如果 SPI 中斷被打開,則產生中斷。當 SPI 處于主模式且 SSIG=0 時,如果/SS 為輸入并被驅動為低電平,SPIF 也將置位,表示“模式改變”。SPIF 標志通過軟件向其寫入“1”清零。WCOL:SPI 寫沖突標志。
    在數據傳輸的過程中如果對 SPI 數據寄存器 SPDAT 執行寫操作,WCOL 將置位。WCOL 標志通過軟件向其寫入“1”清零。
    (3)控制 SPI 功能切換的寄存器 AUXR1(P_SW1)

   
    圖 6

   
    圖 7
    DSP:SPTR 寄存器選擇位。

    0,使用缺省數據指針 DPTR0。
    1,使用另一個數據指針 DPTR1。首先看一下 SPI 初始化函數。

   
    代碼1

    SPI 初始化函數,其實就是配置 SPI 相關寄存器的幾個位。當然,大家也可以按照自己的實際需求進行配置。
    完成 SPI 初始化之后,就可以使用 SPI 發送接收函數。

   
    代碼2

    在 SPI_SendByte(u8 SPI_SendData)函數中,首先是將要發送的數據放入 SPI 數據寄存器SPDAT 中,然后判定 SPI 狀態寄存器 SPTAT 中的 SPIF 位。等待數據寫入完成之后,清除中斷標志和寫沖突標志。由于 SPI 為雙工通訊,最后就能返回得到的數據。
    關 于 外 部 Flash W25X20CL 的 使 用 , 其 實 就 是 通 過 SPI_SendByte(u8 SPI_SendData)寫指令、寫地址、寫數據。外部 Flash 的使用方法詳情可以讀數據手冊。
    另外,本次實驗還用到了串口,串口的使用方法可以閱讀前面的章節:串口控制舵機原理。
    4        實驗現象

    首先打開下載軟件 STC-ISP。

   
    圖 8
    (1)點擊 Keil 仿真設置,添加 STC 相關的頭文件。STC 的相關頭文件路徑是我們之前安裝 Keil C51 的路徑,如果之前采用的默認路徑,那么選擇 C 盤 Keil 文件夾。

   
    圖 9
    (2)添加完 STC 相關的頭文件,點擊彈窗中的確定。

           
    圖 10

    (3)設置單片機的型號、最低波特率、最高波特率如下圖所示,硬件選項等選項默認即可。串口號根據實際情況選擇。

   
    圖 11
    (4)點擊打開程序文件,選擇我們例程中的.hex 文件。

   
    圖 12
    (5)點擊下載/編程,下載代碼。

           
    圖 13

    (6)按一下電路板上面的 RST 按鍵,完成下載。

   
    圖 14
    代碼下載完成之后,打開串口調試助手,如下圖所示。

    (1)選擇串口號,我們圖中是 COM1,這個根據實際情況選擇。

    (2)配置串口參數,波特率為 115200,數據位 8,停止位 1,沒有校驗位和控制流,與下圖一致。
    (3)點擊打開串口。

   
    圖 15
    完成上述操作,運行代碼之后,就會看到串口調試助手區域 4 中會顯示出讀寫 Flash 的數據信息。
      
    圖 16







更多完整學習資料和對應開源套件,請登陸官網:“瘋殼”

    文件下載請點擊: 6_外部Flash的讀寫.pdf (1.35 MB)







歡迎光臨 電子工程網 (http://m.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 欧美有码在线 | 黑人26厘米大战亚洲女 | 一本久道热中字伊人 | 69热视频在线观看免费自拍 | 日日摸狠狠的摸夜夜摸 | 国产精品va在线观看一 | 青青青视频蜜桃一区二区 | 午夜免费观看福利片一区二区三区 | 欧美日本国产 | 4438全国最大成人网 | 好男人影视官网在线www | 五月天男人的天堂 | 亚洲黄色激情网 | 日韩欧美亚洲乱码中文字幕 | 精品一区二区三区的国产在线观看 | 极品在线播放 | 99热视| 日产精品久久久一区二区 | 国产 日韩 欧美 在线 | 好男人影视 | 亚洲痴汉| 精品国产三级 | 久久久噜噜噜久久久 | 含羞草app实验室网站直接进入 | 亚洲精品高清国产麻豆专区 | www.99视频| 日本在线免费观看视频 | 日韩一区在线播放 | 日韩福利视频高清免费看 | 八戒八戒看片在线观看网 | 国产午夜精品免费一二区 | 精品免费国产一区二区三区 | 午夜影院一区 | 日本不卡免费高清一级视频 | 99热这里只有精品国产免费 | 人蛇大战高清完整版在线观看 | 久久综合九九 | 精品日韩在线视频一区二区三区 | 男女一边摸一边做羞羞视频免费 | 亚洲欧美色图片 | 国产91专区 |