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

查看: 1647|回復: 0
打印 上一主題 下一主題

【教程10】瘋殼·ARM功能手機-SPI教程

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2022-8-16 12:01:16 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: ARM , 功能手機 , SPI , 教程 , 寄存器
ARM功能手機
——瘋殼·開發板系列
SPI教程   





    圖1


    第一節SPI Flash硬件電路

    SPI_Flash可用于存儲程序以及一些數據,如果需要存儲程序則必須連接在規定的引腳,開發板上選用的MCU引腳分別為:P00,P03,P05,P06,如下圖所示:

   
    圖2



    第二節 SPI+寄存器

    2.1 SPI+介紹

    這個接口支持SPI總線的一個子集。這個串行接口在主/從模式可以發送和接收8、16或32位,并且在主模式可以發送9位。SPI+接口有雙向的2×16位字的FIFO,功能得到了增強。
    該接口可以工作在主或從模式;有8、9、16、32位的操作方式;SPI控制器的時鐘達到16MHz,SPI時鐘源可以通過編程進行1、2、4、8分頻;SPI的時鐘線達到8MHz;支持SPI的0、1、2、3四種工作模式;SPI_DO的空閑電平可以通過編程設置;可屏蔽的中斷發生器;單向讀和寫模式降低總線負載。

    2.2 寄存器介紹
    2.2.1 SPI控制寄存器0


   
    圖3
    15位:SPI_EN引腳是否有效,’0’表示無效,’1’表示有效;
    14位:SPI中斷使能位,’0’表示無效,’1’表示有效;
    13位:’0’表示接收寄存器或FIFO為空,’1’表示SPI中斷,數據已經被發送或接收,該位必須通過軟件寫SPI_CLR_INT_REG清零;
    12位:返回SPI_DI引腳的狀態值;
    11位:‘0’表示發送FIFO滿,‘1’表示發送FIFO空;
    10位:‘0’正常模式,‘1’使SPIDO的值等于SPI_DO的值;
    9位:‘0’正常操作,‘1’復位SPI;
    8:7位:SPI數據格式;
    6位:SPI工作模式,‘0’為主設備,‘1’為從設備;
    5位:當SPI處于空閑模式或者當SPI_FORCE_DO=1時引腳SPI_DO的值;
    4:3位:SPI在主模式下的時鐘頻率選擇;
    2位:SPI時鐘初始電平的高低,‘0’為低,‘1’為高;
    1位:SPI時鐘的相位選擇,具體看SPI的時序圖;(SPI的資料)
    0位:SPI的開關。

    2.2.2 SPI接收/發送寄存器0

   
    圖4
    15:0位:SPI發送或接收的數據,寫操作是,存儲發送的數據,讀操作時,為接收到的數據。

    2.2.3 SPI接收/發送寄存器1

   
    圖5
    15:0位:SPI發送或接收的數據,寫操作是,存儲發送的數據,讀操作時,為接收到的數據;為32位模式的高16位數據。

    2.2.4 SPI清除中斷寄存器

   
    圖6
    15:0位:寫任意值到該寄存器清除SPI的中斷標志。

    2.2.5 SPI控制寄存器1


   
    圖7
    15:5位:保留不使用;
    4位:決定在9位模式下的第一位的值;
    3位:SPI忙標志位,‘0’表示SPI空閑,‘1’表示SPI忙;
    2位:SPI優先級選擇位,‘0’低優先級,‘1’高優先級;
    1:0位:SPI_FIFO模式。

    2.3 寄存器配置講解
    #define CLK_PER_REG                (* ( volatile uint16*)0x50000004)
    #define SPI_CTRL_REG                (* ( volatile uint16*)0x50001200)
    #define SPI_RX_TX_REG0              (* ( volatile uint16*)0x50001202)
    #define SPI_RX_TX_REG1              (* ( volatile uint16*)0x50001204)
    #define SPI_CLEAR_INT_REG           (* ( volatile uint16*)0x50001206)
    #define SPI_CTRL_REG1               (* ( volatile uint16*)0x50001208)
    啟動SPI模塊的時鐘:CLK_PER_REG |= 0x0800;
    SPI的初始化配置寄存器:
    先關閉SPI, SPI_CTRL_REG =0x8000;
    SPI配置為8位模式,主模式,時鐘空閑為低電平,相位模式0,關閉SPI中斷,時鐘8分頻(0x1000000000000000),則SPI_CTRL_REG =0x8000;
    開SPI, SPI_CTRL_REG | =0x0001;
    發送一個字節0x55,將數據填充進發送寄存器SPI_RX_TX_REG0 = 0x55;等待發送寄存器為空while(SPI_CTRL_REG&0x2000);
    接收一個字節,讀取接收寄存器rx_data = SPI_RX_TX_REG;



    第三節 SPI實驗

    實驗需要使用的模塊有:手機開發板底板,Jlink調試工具,USB轉串模塊、杜邦線、3.7V鋰電池或Mocro USB線。
    使用USB轉串模塊連接手機藍牙串口,連接方式如下:
        (1)USB轉串模塊一端只需要使用杜邦線連接RXD、TXD、GND三個引腳,如下圖所示:

   
    圖8
    (2)手機主控底板一端需要使用杜邦線連接左側J7三個引腳,與USB轉串模塊的引腳一一對應(串口引腳交叉),分別為RXD-->TXD、TXD-->RXD、GND-->GND,如下圖所示:

   
    圖9
    使用JLINK通過杜邦線連接手機藍牙,連接方式如下:
    (1)JLINK一端只需要使用杜邦線連接JLINK的SWC、SWD、GND三個引腳,如下圖所示:

   
    圖10
    (2)手機藍牙一端需要使用杜邦線連接上方右側的J3三個引腳,與JLINK的連接引腳一一對應,分別為SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下圖所示:

   
    圖11
    將JLINK插上電腦的USB接口,連接好之后給手機主控底板供電,詳細的介紹可以參考《如何上電》教程,路徑為:..\WT_Mobile\0.從這里開始\0.開機測試。
    SPI實驗的Keil工程為spi_flash.uvproj,位于目錄:
    ..\WT_Mobile\1.初級教程\DA14580\6_初級_SPI\projects\target_apps\peripheral_examples\spi\spi_flash\Keil_5,如下圖所示:


    圖12
    打開串口調試助手連接串口模塊。在KEIL中編譯源代碼,點擊DEBUG,然后點擊全速運行,就看到串口打印出的讀寫Flash的信息,如下圖所示:





   
    圖13


    如需定制開發,請通過官網“瘋殼”網頁底部的“聯系我們”進行聯系

    文件下載請點擊: SPI教程.pdf (1.03 MB)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品哟哟哟国产在线不卡 | 免费羞羞网站视频 | 免费网站色 | 亚洲天堂精品在线 | 亚洲国产一区二区三区a毛片 | 亚洲欧美日韩综合二区三区 | 国产精品一区高清在线观看 | 激情视频网址 | 综合一区自拍亚洲综合图区 | 亚洲b | 4hu在线| 欧美综合视频在线 | 噜噜噜 综合 亚洲 | 亚洲男人天堂网站 | 亚洲专区一 | 久久精品无码一区二区日韩av | 人蛇大战4免费完整版 | 成年女人视频网站免费m | 黑粗硬大欧美视频 | 欧美日韩免费播放一区二区 | 美日韩在线观看 | 国产精品自产拍视频观看 | 久久国产热这里只有精品8 久久国产热这里只有精品 久久国产热视频 | 日本在线观看免费观看完整版 | 欧美视频在线一区二区三区 | 久久久久成人精品免费播放动漫 | 欧美人与d0gxxx | 国产羞羞的视频在线观看免费 | 被cao的奶水直喷 | 欧美香蕉网 | 无人区国语版免费观看 | 一级特黄aaa大片在 一级特黄aaa大片免费看 | 在线播放一区二区精品产 | 日本夜夜操| 国产美女视频免费看网站 | 真正免费一级毛片在线播放 | 亚洲永久免费视频 | 欧美精选在线观看 | 五月网| 九色自拍视频 | 亚洲第十色 |