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

        ?

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

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

        鄧國(guó)榮

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

        0 引言

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

        1 STM32 SPI接口簡(jiǎn)介

        STM32 SPI接口結(jié)構(gòu)框圖如圖1所示。STM32 SPI接口內(nèi)部有一個(gè)移位寄存器,當(dāng)數(shù)據(jù)從MOSI管腳輸入時(shí),數(shù)據(jù)首先通過(guò)移位寄存器移位輸入,然后保存在接收緩沖區(qū)中,由地址和數(shù)據(jù)總線讀出,當(dāng)數(shù)據(jù)寫(xiě)出時(shí),寫(xiě)入數(shù)據(jù)首先被寫(xiě)入發(fā)送緩沖區(qū),然后由移位寄存器從MISO管腳移出。SPI接口輸入和輸出控制時(shí)序由波特率發(fā)生器產(chǎn)生,然后從SCK管腳輸出,在數(shù)據(jù)讀寫(xiě)過(guò)程中同步產(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開(kāi)始配置之前,必須先配置SPI接口控制的RCC時(shí)鐘,然后配置MOSI、MOSO和SCK管腳為復(fù)用管腳,并進(jìn)一步配置管腳工作方式為推挽上拉方式,管腳最大輸出工作時(shí)鐘為50M,配置SPI管腳為雙線雙向數(shù)據(jù)傳輸方式,NSS管腳為軟件控制模式,并配置SPI控制方式為主模式,數(shù)據(jù)寬度為8 bit,數(shù)據(jù)采樣時(shí)鐘極性通過(guò)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控制讀寫(xiě)的第一步就是讀取ID號(hào),只有ID正常讀取才能說(shuō)明M25P80時(shí)序控制配置正常。讀M25P80控制指令為0x30,讀M25P80的ID控制指令為0x9F,緊跟控制指令READ之后的是24位讀取數(shù)據(jù)地址,然后就可以直接讀取數(shù)據(jù)了。STM32F2xx固件庫(kù)中提供了向SPI FLASH發(fā)送和接收數(shù)據(jù) API函數(shù) SPI_I2S_SendData()和 SPI_I2S_ReceiveData(),在每次數(shù)據(jù)發(fā)送時(shí),都要檢測(cè)SPI控制接口的工作狀態(tài),可以通過(guò)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在寫(xiě)數(shù)據(jù)之前,必須首先擦除。首先,發(fā)送擦除控制指令,有3種擦除FLASH方式,頁(yè)擦除、扇區(qū)擦除和整片擦除,可以根據(jù)需要選擇擦除方式,頁(yè)擦除每次擦除一頁(yè)空間大小,為256 Byte空間,扇區(qū)擦除空間大小為1個(gè)扇區(qū)為64K,整片擦除就是將整個(gè)空間數(shù)據(jù)都擦除。按頁(yè)擦除需要的時(shí)間是最短的,適用于對(duì)于擦除時(shí)間要求比較短的情況下,扇區(qū)擦除和整片擦除都需要比較長(zhǎng)的時(shí)間,而且擦除區(qū)域大,需要擦除的數(shù)據(jù)區(qū)域也大,不適宜實(shí)時(shí)擦除數(shù)據(jù)更新情況,適用于一次性寫(xiě)入大片數(shù)據(jù)情況。

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

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

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

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

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

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

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

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

        5 結(jié)語(yǔ)

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

        [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盤(pán)故障排除經(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)用
        无色码中文字幕一本久道久| 无遮挡边吃摸边吃奶边做| 久久精品国产亚洲vr| 在线你懂| 日韩美女av一区二区三区四区| 亚洲av成人片无码网站| 亚洲国产av导航第一福利网| 精品熟女少妇免费久久| 亚洲国产精品一区二区| 99国产精品久久99久久久| 人妻少妇精品无码专区二区| 国产污污视频| 国产精品av网站在线| 文字幕精品一区二区三区老狼 | 网站在线观看视频一区二区| 亚洲香蕉成人av网站在线观看| 日韩av在线手机免费观看| 国产一区二区av在线免费观看| 强开少妇嫩苞又嫩又紧九色| 亚洲毛片αv无线播放一区| 热久久久久久久| 日韩精品一区二区三区含羞含羞草| 精品亚洲国产成人av色哟哟| 亚洲精品国偷拍自产在线麻豆| 久久久久久亚洲AV成人无码国产| 国产视频在线播放亚洲| 久久精品免费一区二区喷潮| 久久婷婷成人综合色| 欧洲亚洲综合| 日韩在线观看网址| 日本亚洲视频免费在线看 | 中文亚洲欧美日韩无线码| 国产精品亚洲片夜色在线| 日本少妇又色又紧又爽又刺激| 一本色道久久88加勒比—综合| 76少妇精品导航| 国产成人精品亚洲午夜| 日韩成人高清不卡av| 国产日产亚洲系列最新| 娇妻玩4p被三个男人伺候电影| 久久精品熟女亚洲av艳妇|