亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于STM32 SPI接口的M25P80FLASH的驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

        2013-07-07 11:22:04鄧國榮
        機(jī)電信息 2013年6期
        關(guān)鍵詞:控制指令管腳扇區(qū)

        鄧國榮

        (暨南大學(xué)信息技術(shù)研究所,廣東 廣州 510075)

        0 引言

        M25P80FLASH可以按頁、扇區(qū)和整片擦除,并提供按頁寫數(shù)據(jù)功能,能夠方便地保存數(shù)據(jù)。STM32有獨(dú)立的SPI控制器,該控制器可以直接控制SPI FLASH的讀寫操作,自動(dòng)生成讀寫SPI FLASH控制時(shí)序。因此,本文采用STM32的SPI接口控制M25P80FLASH讀寫,分析了M25P80FLASH的讀寫時(shí)序和SPI接口的初始化,最終實(shí)現(xiàn)了M25P80FLASH的讀寫,仿真結(jié)果顯示,該方案正確、可行。

        1 STM32 SPI接口簡介

        STM32 SPI接口結(jié)構(gòu)框圖如圖1所示。STM32 SPI接口內(nèi)部有一個(gè)移位寄存器,當(dāng)數(shù)據(jù)從MOSI管腳輸入時(shí),數(shù)據(jù)首先通過移位寄存器移位輸入,然后保存在接收緩沖區(qū)中,由地址和數(shù)據(jù)總線讀出,當(dāng)數(shù)據(jù)寫出時(shí),寫入數(shù)據(jù)首先被寫入發(fā)送緩沖區(qū),然后由移位寄存器從MISO管腳移出。SPI接口輸入和輸出控制時(shí)序由波特率發(fā)生器產(chǎn)生,然后從SCK管腳輸出,在數(shù)據(jù)讀寫過程中同步產(chǎn)生。

        圖1 STM32 SPI接口結(jié)構(gòu)圖

        2 STM32 SPI接口與M25P80之間的硬件連接

        STM 32 SPI接口與M25P80SPI FLASH硬件連接如圖2所示。MOSI對(duì)應(yīng)連接M25P80的數(shù)據(jù)輸出口Q,MOSO對(duì)應(yīng)M25P80的數(shù)據(jù)輸入口D,時(shí)鐘管腳SCK提供M25P80的時(shí)鐘控制管腳C,CS 對(duì)應(yīng) M25P80片選控制管腳 S[1]。

        圖2 STM32與M25P80之間的硬件連接

        3 M25P80驅(qū)動(dòng)的實(shí)現(xiàn)

        3.1 STM32 SPI接口的初始化

        STM32 SPI接口初始化流程圖如圖3所示。首先,在SPI開始配置之前,必須先配置SPI接口控制的RCC時(shí)鐘,然后配置MOSI、MOSO和SCK管腳為復(fù)用管腳,并進(jìn)一步配置管腳工作方式為推挽上拉方式,管腳最大輸出工作時(shí)鐘為50M,配置SPI管腳為雙線雙向數(shù)據(jù)傳輸方式,NSS管腳為軟件控制模式,并配置SPI控制方式為主模式,數(shù)據(jù)寬度為8 bit,數(shù)據(jù)采樣時(shí)鐘極性通過CPOL和CPHA控制,設(shè)置時(shí)鐘分頻系數(shù)和CRC校驗(yàn)方式,最后,設(shè)置數(shù)據(jù)傳輸起始位,即先傳輸數(shù)據(jù)高位還是低位。

        M25P80的片選控制管腳S,可以直接用STM32的普通IO控制,需要配置為輸出模式,推免上拉,最大輸出與SPI接口管腳一致,都為50M。

        圖3 SPI接口初始化配置流程

        3.2 M25P80讀數(shù)據(jù)實(shí)現(xiàn)

        M25P80控制讀寫的第一步就是讀取ID號(hào),只有ID正常讀取才能說明M25P80時(shí)序控制配置正常。讀M25P80控制指令為0x30,讀M25P80的ID控制指令為0x9F,緊跟控制指令READ之后的是24位讀取數(shù)據(jù)地址,然后就可以直接讀取數(shù)據(jù)了。STM32F2xx固件庫中提供了向SPI FLASH發(fā)送和接收數(shù)據(jù) API函數(shù) SPI_I2S_SendData()和 SPI_I2S_ReceiveData(),在每次數(shù)據(jù)發(fā)送時(shí),都要檢測(cè)SPI控制接口的工作狀態(tài),可以通過API函數(shù)SPI_I2S_GetFlagStatus()檢測(cè)SPI接口控制狀態(tài)。在控制指令和讀取數(shù)據(jù)地址發(fā)送之后完成,讀取數(shù)據(jù)時(shí),需向FLASH發(fā)送空指令0xA5才能啟動(dòng)數(shù)據(jù)讀取時(shí)序。

        在每次向FLAHS發(fā)送數(shù)據(jù)之前,必須先將片選管腳拉低,在每次數(shù)據(jù)讀取完成之后,必須拉高。

        3.3 M25P80擦除實(shí)現(xiàn)

        M25P80FLASH在寫數(shù)據(jù)之前,必須首先擦除。首先,發(fā)送擦除控制指令,有3種擦除FLASH方式,頁擦除、扇區(qū)擦除和整片擦除,可以根據(jù)需要選擇擦除方式,頁擦除每次擦除一頁空間大小,為256 Byte空間,扇區(qū)擦除空間大小為1個(gè)扇區(qū)為64K,整片擦除就是將整個(gè)空間數(shù)據(jù)都擦除。按頁擦除需要的時(shí)間是最短的,適用于對(duì)于擦除時(shí)間要求比較短的情況下,扇區(qū)擦除和整片擦除都需要比較長的時(shí)間,而且擦除區(qū)域大,需要擦除的數(shù)據(jù)區(qū)域也大,不適宜實(shí)時(shí)擦除數(shù)據(jù)更新情況,適用于一次性寫入大片數(shù)據(jù)情況。

        3.4 M25P80寫數(shù)據(jù)實(shí)現(xiàn)

        M25P80寫數(shù)據(jù)之前,首先需要擦除需要寫入空間數(shù)據(jù),然后才能寫入數(shù)據(jù),每次寫數(shù)據(jù)之前還需要寫使能,即設(shè)置狀態(tài)寄存器的WEL位為高電平同時(shí),需要檢查狀態(tài)寄存器的SRWD寫保護(hù)位,高電平為寫保護(hù)失效,低電平為寫保護(hù)使能,在每次數(shù)據(jù)寫入時(shí),必須SRWD為高電平,即寫保護(hù)失效才能寫入數(shù)據(jù)。M25P80按頁寫入數(shù)據(jù)時(shí)序圖如圖4所示,按頁寫數(shù)據(jù)一次可以寫入256 Byte,M25P80只提供按頁寫數(shù)據(jù)命令,只能一次寫入一頁數(shù)據(jù)。

        圖4 M25P80按頁寫入數(shù)據(jù)時(shí)序圖

        由于M25P80只能一次寫入一頁數(shù)據(jù),只能一次寫入256 Byte數(shù)據(jù),而且M25P80的地址空間是按頁分配的,每次不能跨頁寫數(shù)據(jù),一次只能在一頁中寫數(shù)據(jù),所以,當(dāng)寫入數(shù)據(jù)超出一頁時(shí),就需要多次寫入數(shù)據(jù)。M25P80多頁寫數(shù)據(jù)處理流程圖如圖5所示。首先,寫入數(shù)據(jù)之前,需要先擦寫寫入地址空間數(shù)據(jù),然后判斷寫入起始地址是否是頁初始地址,如果是頁初始地址,再判斷寫入數(shù)據(jù)長度是否超出一頁大小,如果是,數(shù)據(jù)計(jì)算需要寫入的頁數(shù)N,把數(shù)據(jù)寫入N頁地址空間中,并將最后剩余字節(jié)寫入第N頁的下一頁中,如果寫入數(shù)據(jù)長度小于一頁,只需要直接將數(shù)據(jù)寫入指定頁中即可。如果寫入地址不是頁初始地址,首先需要判斷數(shù)據(jù)是否超出一頁,如果沒有超出一頁大小,還需要判斷寫入數(shù)據(jù)長度是否大于寫入數(shù)據(jù)起始地址到頁尾的剩余字節(jié)數(shù),如果是,則寫滿寫入頁地址空間,并將剩余字節(jié)寫入下一頁中,如果寫入數(shù)據(jù)小于寫入數(shù)據(jù)起始地址到頁尾的剩余字節(jié)數(shù),則直接將數(shù)據(jù)寫入指定頁中即可;如果寫入數(shù)據(jù)超出一頁大小,首先填滿起始頁地址空間,然后計(jì)算剩余數(shù)據(jù)需要寫入頁數(shù)N,將剩余數(shù)據(jù)寫入N頁地址空間中,最后,將剩余字節(jié)寫入第N頁的下一頁中即可[2-3]。

        4 仿真結(jié)果與分析

        圖5 SPI FLASH多頁寫數(shù)據(jù)處理流程圖

        STM32的SPI接口控制M25P80仿真結(jié)果圖如圖6所示。首先,STM32控制頁擦除M25P80的地址空間0x00對(duì)應(yīng)的頁,然后向FLASH中寫入SPI_SendData[]中的數(shù)據(jù),寫完之后,再讀取FLASH對(duì)應(yīng)地址中的數(shù)據(jù),將結(jié)果存放到SPI_RecData[]中,仿真結(jié)果顯示,寫入數(shù)據(jù)和讀出數(shù)據(jù)一致,說明FLASH已經(jīng)正常讀寫了。

        圖6 SPI FLASH數(shù)據(jù)讀寫仿真圖

        5 結(jié)語

        本文分析了M25P80FLASH的讀寫控制時(shí)序,并針對(duì)M25P80的多頁寫數(shù)據(jù)功能進(jìn)行了詳細(xì)的分析和介紹,并使用STM32的SPI控制接口實(shí)現(xiàn)了對(duì)M25P80FLASH的讀寫控制。仿真結(jié)果顯示,STM32的 SPI控制接口可以實(shí)現(xiàn)對(duì)M25P80FLASH的讀寫控制。

        [1]關(guān)珊珊,周潔敏.基于Xilinx FPGA的SPI Flash控制器設(shè)計(jì)與驗(yàn)證[J].電子器件,2012,2(35):216~220

        [2]張立為,鐘慧敏.實(shí)現(xiàn)基于FPGA的SPI Flash控制器設(shè)計(jì)[J].微計(jì)算機(jī)信息,2010,6(26):124~126

        [3]唐琳,方方,張保靜,等.基于ARM的多通道SPI Flash控制器設(shè)計(jì)[J].核電子學(xué)與探測(cè)技術(shù),2012,5(32):583~586

        猜你喜歡
        控制指令管腳扇區(qū)
        分階段調(diào)整增加扇區(qū)通行能力策略
        南北橋(2022年2期)2022-05-31 04:28:07
        城軌車輛控制指令試驗(yàn)裝置研制
        宏指令控制的多軸系統(tǒng)研究及實(shí)現(xiàn)
        U盤故障排除經(jīng)驗(yàn)談
        基于圖像處理的異型電子元器件管腳偏移誤差檢測(cè)方法研究
        基于貝葉斯估計(jì)的短時(shí)空域扇區(qū)交通流量預(yù)測(cè)
        高速公路隧道通風(fēng)、照明聯(lián)動(dòng)控制方案探討
        科技視界(2016年13期)2016-06-13 23:11:43
        CMOS數(shù)字IC管腳電容的估算與測(cè)量
        重建分區(qū)表與FAT32_DBR研究與實(shí)現(xiàn)
        煤礦提升機(jī)控制系統(tǒng)中PLC技術(shù)的應(yīng)用
        日本亚洲欧美在线观看| 亚洲人精品午夜射精日韩| 777精品久无码人妻蜜桃| 久久天天躁狠狠躁夜夜爽| 免费一级欧美大片久久网| 国产伦精品一区二区三区| 亚洲精品无码不卡在线播he| 男男性恋免费视频网站| 在线观看亚洲AV日韩A∨| 91中文字幕精品一区二区| 国产自拍高清在线观看| 午夜无码片在线观看影视| 国产91吞精一区二区三区 | 日本精品av中文字幕| 图片小说视频一区二区| 亚洲精品乱码久久久久久蜜桃图片| 99精品热6080yy久久| 日本高清一区在线你懂得| 搡女人真爽免费视频大全| 五月天激情婷婷婷久久| 国产品精品久久久久中文| 熟女一区二区国产精品| 久久久免费精品re6| 国产精品嫩草影院AV| 日韩狼人精品在线观看| 国产亚洲精品国产精品| 亚洲精品一区二区| 欧美韩国精品另类综合| 亚洲av成人永久网站一区| 国产98色在线 | 国产| 久久天天躁夜夜躁狠狠躁2022 | 黄色网页在线观看一区二区三区| av免费不卡一区二区| 精品少妇人妻av无码久久| 亚洲国产成人手机在线电影| 久久婷婷综合激情亚洲狠狠| 粗大的内捧猛烈进出小视频| 国产99r视频精品免费观看| 国产精品99久久不卡二区| 免费观看国产短视频的方法| 看国产黄大片在线观看|