女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

QSPI Flash驅(qū)動(dòng)功能解析和使用注意事項(xiàng)

汽車(chē)ECU開(kāi)發(fā) ? 來(lái)源: ADAS與ECU之吾見(jiàn) ? 2023-10-19 10:09 ? 次閱讀

前言

首先,請(qǐng)問(wèn)大家?guī)讉€(gè)小小問(wèn)題,你清楚:

QSPI協(xié)議的基本內(nèi)容與功能應(yīng)用場(chǎng)景嗎?

QSPI Flash驅(qū)動(dòng)讀寫(xiě)過(guò)程中存在哪些不一樣的操作模式呢?

基于AUTOSAR架構(gòu)下Flash驅(qū)動(dòng)接口有哪些?

在平常使用QSPI Flash接口的過(guò)程中存在哪些注意事項(xiàng)呢?

今天,我們來(lái)一起探索并回答這些問(wèn)題。為了便于大家理解,以下是本文的主題大綱:

2e371e2c-6e1f-11ee-939d-92fbcf53809c.png

正文

QSPI協(xié)議介紹

QSPI全稱(chēng)為“Queued SPI”,本質(zhì)上是屬于SPI協(xié)議的一種,一般來(lái)說(shuō),SPI協(xié)議可以分為Standard SPI,Dual SPI,以及本文要講解的Queued SPI。只不過(guò)Dual SPI,Queued SPI常用于作為SPI Flash的通信接口

功能應(yīng)用

QSPI作為一種隊(duì)列串行外圍接口協(xié)議,就是對(duì)SPI協(xié)議的擴(kuò)展,可以通過(guò)單線,雙線或四線模式與外部Flash存儲(chǔ)器進(jìn)行高速通信。其功能應(yīng)用場(chǎng)景如下:

數(shù)據(jù)存儲(chǔ):可以用來(lái)實(shí)現(xiàn)大量數(shù)據(jù)的存儲(chǔ),如代碼,圖像,視頻等,從而提高數(shù)據(jù)的讀寫(xiě)速度與容量;

代碼執(zhí)行:QSPI用于執(zhí)行外部Flash存儲(chǔ)器的代碼,這樣可以節(jié)約內(nèi)部Flash的空間,如通過(guò)QSPI XIP模式從而實(shí)現(xiàn)在Memmap下執(zhí)行代碼;

與其他外圍設(shè)備進(jìn)行通信:QSPI也可支持與其他QSPI協(xié)議的外圍設(shè)備進(jìn)行通信,如傳感器,顯示器等,可以提高通信的效率與靈活性;

協(xié)議特點(diǎn)

QSPI協(xié)議作為一種SPI協(xié)議的擴(kuò)展,一般而言,可以分為兩種工作模式,即設(shè)置模式與Memmap模式,雖然也有些芯片存在三種,如STM32,不同芯片存在些許差異可以理解,本質(zhì)上可以歸納為上述兩者;

QSPI協(xié)議的命令序列包括指令、地址、交替字節(jié)、空指令和數(shù)據(jù)這五個(gè)階段,任一階段均可跳過(guò),但至少要包含指令、地址、交替字節(jié)或數(shù)據(jù)階段之一;

一般而言,QSPI僅支持dual read 與quad read模式,不支持dual write與quad write兩種模式,同時(shí)也不會(huì)存在QSPI 輸入與輸出的loop back模式;

QSPI Flash驅(qū)動(dòng)說(shuō)明

雖然市面上存在許多的Flash驅(qū)動(dòng)供應(yīng)商,但是基本都大同小異,本文已TI系列的QSPI Flash驅(qū)動(dòng)介紹舉例給大家介紹下其QSPI的硬件實(shí)現(xiàn)原理,讀寫(xiě)操作模式以及EDMA搬運(yùn)等操作。

QSPI硬件實(shí)現(xiàn)原理

作為QSPI通信的雙方,本質(zhì)上來(lái)講都是主芯片端作為主設(shè)備,可以通過(guò)控制CS引腳來(lái)決定與外圍不同的Flash芯片進(jìn)行通信,同時(shí)通過(guò)輸出Clock時(shí)鐘來(lái)完成針對(duì)從設(shè)備的通信傳輸控制,如下圖所示:

2e3b2f6c-6e1f-11ee-939d-92fbcf53809c.png

圖1 QSPI硬件連接原理(圖片來(lái)源于TI官方文檔)

左圖為主芯片的內(nèi)部QSPI的控制器,右圖則為外部的支持QSPI協(xié)議的外部Flash,兩者之間通過(guò)QSPI協(xié)議接口連接,包含1個(gè)CLK引腳,1個(gè)CS引腳與4個(gè)用于傳輸數(shù)據(jù)的IO引腳。

針對(duì)上圖中的內(nèi)容,小T將針對(duì)每個(gè)引腳做個(gè)較為詳細(xì)的介紹,如下表所示:

2e4ce234-6e1f-11ee-939d-92fbcf53809c.png

圖2 QSPI接口引腳功能定義

QSPI讀寫(xiě)操作模式

通過(guò)上述文章我們了解到QSPI存在3線Single Write/Read模式,4線Single Write/ Read,Dual Read模式,6線Quad Read模式的6種QSPI讀寫(xiě)方式,在具體的項(xiàng)目實(shí)際應(yīng)用過(guò)程中,我們一般推薦正常的寫(xiě)入操作通過(guò)4線Single Write來(lái)寫(xiě)入,讀取操作推薦采用6線Quad Read模式,這樣才能最大效率的利用Flash硬件自身特性,從而提高通信效率。

如下圖所示為QSPI 控制器的內(nèi)部組成關(guān)系,從中我們可以得出如下幾個(gè)關(guān)鍵結(jié)論:

2e579f94-6e1f-11ee-939d-92fbcf53809c.png

圖3 QSPI控制器接口內(nèi)部結(jié)構(gòu)(來(lái)源于TI官方文檔)

整個(gè)QSPI控制器可以分為SFI_MM_IF與SPI_CORE兩個(gè)模塊,其中SFI_MM_IF模塊主要負(fù)責(zé)讀寫(xiě)指令,地址以及dummy cycle的個(gè)數(shù)等,而SPI_CORE主要負(fù)責(zé)芯片的時(shí)鐘極性與時(shí)鐘相位以及傳輸?shù)拈L(zhǎng)度等;

SFI_MM_IF接口由以下兩個(gè)部分組成:

SFI register control:用來(lái)實(shí)現(xiàn)上述讀寫(xiě)指令的初始化設(shè)置;

SFI translator:將對(duì)應(yīng)的SFI register control中的讀寫(xiě)指令發(fā)送至SPI_CORE模塊來(lái)外部Flash;

SPI_CORE模塊則是由如下四個(gè)部分組成:

SPI_CNTIF:SPI Control Interface,用于設(shè)置對(duì)應(yīng)的讀寫(xiě)指令,時(shí)鐘極性或相位等,在配置模式下會(huì)使用到;

SPI_CLKGEN:SPI Clock Generator,用于設(shè)置通信相關(guān)的時(shí)鐘頻率;

SPI_MACHINE:SPI State Machine,將SPI_CNTIF中的相關(guān)讀寫(xiě)指令作為輸入,然后控制數(shù)據(jù)的移位發(fā)送等;

SPI_SHIFTER:SPI Data Shifter,用來(lái)實(shí)現(xiàn)接口信號(hào)的捕捉與生成。

QSPI控制器支持兩種配置方式,一種是Config模式,另外一種則是Memmap方式;對(duì)于寫(xiě)入操作不支持Memmap方式僅支持Config模式,對(duì)于讀取操作推薦使用Memmap方式,這樣便可以直接在芯片MCU的Memory Layout中看到相應(yīng)的外部Flash空間的代碼或者數(shù)據(jù)。

對(duì)于QSPI接口的通信雙方而言,需要確保兩者通信的時(shí)鐘極性與時(shí)鐘相位是一致的,時(shí)鐘極性與時(shí)鐘相位的組合有如下4種方式:

2e6772b6-6e1f-11ee-939d-92fbcf53809c.png

圖4 QSPI時(shí)鐘極性與時(shí)鐘相位關(guān)系圖

QSPI EDMA搬運(yùn)

當(dāng)通過(guò)QSPI去讀取大量數(shù)據(jù)時(shí),我們推薦使用Memmap方式讀取+EDMA的方式來(lái)完成,因?yàn)橥ㄟ^(guò)該兩種技術(shù)手段的結(jié)合,我們便可以減小CPU負(fù)擔(dān),直接讓EDMA去執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作;

有關(guān)EDMA的具體實(shí)現(xiàn)機(jī)理就不再本文進(jìn)行展開(kāi),后續(xù)將進(jìn)行單獨(dú)講解,歡迎多多關(guān)注小T。

AUTOSASR架構(gòu)下Flash驅(qū)動(dòng)標(biāo)準(zhǔn)接口

小T將AUTOSAR架構(gòu)下針對(duì)Flash驅(qū)動(dòng)的標(biāo)準(zhǔn)接口以及相關(guān)需求列舉如下,這樣在我們使用Flash驅(qū)動(dòng)過(guò)程我們能夠快速的了解到Flash驅(qū)動(dòng)的關(guān)鍵API的具體功能與作用。

2e76949e-6e1f-11ee-939d-92fbcf53809c.png

圖5 Flash驅(qū)動(dòng)標(biāo)準(zhǔn)接口表

在使用上述標(biāo)準(zhǔn)的AUTOSAR Flash驅(qū)動(dòng)API也有很多需要注意的地方,小T將自己覺(jué)得需要特別注意的點(diǎn)列舉如下,這也是大家容易忽視的一些點(diǎn):

在使用Flash驅(qū)動(dòng)其他讀,寫(xiě)等接口之前,務(wù)必需調(diào)用Fls_Init完成初始化,否則后續(xù)的Flash操作請(qǐng)求將會(huì)無(wú)效;

如果你使用的是外部Flash并采用QSPI驅(qū)動(dòng),請(qǐng)務(wù)必在Fls_Init之前執(zhí)行QSPI驅(qū)動(dòng)的初始化,保證一個(gè)有效的初始化過(guò)程;

在執(zhí)行Flash寫(xiě)入操作時(shí)其寫(xiě)入地址與長(zhǎng)度均需要與Flash的Page單位進(jìn)行對(duì)齊,如一般為256字節(jié),具體還是取決于Flash芯片型號(hào);

在執(zhí)行Flash擦除操作時(shí),需確保其擦除地址與長(zhǎng)度與Flash的sector單位進(jìn)行對(duì)齊,如一般為4K,具體還是取決于Flash芯片型號(hào);

Fls_Read, Fls_Write等關(guān)鍵API操作均屬于異步操作且不可重入,因此需確保Flash驅(qū)動(dòng)的被操作對(duì)象的唯一性,不要應(yīng)用層與Fee模塊沖突,統(tǒng)一通過(guò)NVM發(fā)送請(qǐng)求來(lái)完成Flash的操作;

QSPI Flash驅(qū)動(dòng)使用注意事項(xiàng)

小T在具體的軟件開(kāi)發(fā)過(guò)程中,也遇到過(guò)很多跟Flash驅(qū)動(dòng)操作有關(guān)的問(wèn)題,這些問(wèn)題往往解決起來(lái)非常棘手,因?yàn)榉浅E及l(fā)且極難復(fù)現(xiàn)。

這類(lèi)問(wèn)題更多時(shí)候還是我們?nèi)狈Ψ烙?a target="_blank">編程思維,沒(méi)有針對(duì)Flash可能失效的場(chǎng)景進(jìn)行全面的考慮,以下小T將我個(gè)人針對(duì)Flash驅(qū)動(dòng)的幾個(gè)常見(jiàn)的經(jīng)驗(yàn)總結(jié)列舉如下,希望能給大家后續(xù)的Flash驅(qū)動(dòng)開(kāi)發(fā)帶來(lái)一些幫助與思考。

在每次系統(tǒng)啟動(dòng)或者復(fù)位的過(guò)程中,最為推薦的做法針對(duì)外部Flash同步進(jìn)行reset操作,該操作可以一般存在如下三種方式:

每次啟動(dòng)或者復(fù)位的過(guò)程中可通過(guò)硬件來(lái)操作Flash的上下電操作來(lái)完成Flash自身的重置;

通過(guò)軟件的方式來(lái)拉低Reset引腳來(lái)實(shí)現(xiàn)外部Flash復(fù)位,這種方式需要考慮到引腳復(fù)用功能是否可用的可能性;

通過(guò)軟件的方式在初始化的過(guò)程中通過(guò)QSPI通信發(fā)送軟復(fù)位指令讓Flash芯片進(jìn)行重置;

如果需要針對(duì)外部的SPI Flash通過(guò)QSPI進(jìn)行通信,需要特別注意該SPI Flash芯片的QE位是否默認(rèn)使能,如果沒(méi)有使能,將無(wú)法采用QUAD SPI進(jìn)行通信,因此建議工廠端刷寫(xiě)軟件過(guò)程中均需要主動(dòng)設(shè)置該QE位或者在軟件初始化過(guò)程中設(shè)置該QE位,該QE位一旦寫(xiě)入掉電也會(huì)丟失,僅需寫(xiě)入一次即可;

在執(zhí)行Flash初始化過(guò)程中需要針對(duì)Flash外部型號(hào),如Manufacture ID等設(shè)備號(hào)進(jìn)行校驗(yàn),確保不會(huì)出現(xiàn)生產(chǎn)過(guò)程中出現(xiàn)芯片型號(hào)貼錯(cuò)的場(chǎng)景;

在軟件運(yùn)行過(guò)程中有時(shí)會(huì)偶發(fā)導(dǎo)致系統(tǒng)跑飛意外執(zhí)行操作Flash驅(qū)動(dòng)寫(xiě)或者擦除操作導(dǎo)致用戶(hù)程序遭到破壞,從而軟件無(wú)法正常啟動(dòng),因此有必要針對(duì)關(guān)鍵應(yīng)用程序代碼空間進(jìn)行Flash寫(xiě)保護(hù),這樣即使程序死機(jī)復(fù)位后整個(gè)系統(tǒng)也能夠再次正常啟動(dòng)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1663

    瀏覽量

    150976
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8936

    瀏覽量

    153191
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1780

    瀏覽量

    94703
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    371

    瀏覽量

    22394
  • QSPI
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    12578
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    電調(diào)驅(qū)動(dòng)原理是什么?有哪些注意事項(xiàng)?

    電調(diào)驅(qū)動(dòng)原理是什么?有哪些注意事項(xiàng)
    發(fā)表于 09-24 06:54

    膽機(jī)使用的注意事項(xiàng)

    膽機(jī)使用的注意事項(xiàng):膽機(jī)使用的注意事項(xiàng) 我是初哥, 現(xiàn)在對(duì)膽機(jī)感興趣, 但聽(tīng)說(shuō)膽機(jī)使用麻煩, 請(qǐng)問(wèn)有什么需要注意的?湖南吉首火車(chē)站 范增不必?fù)?dān)心, 膽機(jī)的使用方法
    發(fā)表于 11-29 17:09 ?46次下載

    IGBT驅(qū)動(dòng)電路布線設(shè)計(jì)注意事項(xiàng)

    IGBT驅(qū)動(dòng)電路布線設(shè)計(jì)注意事項(xiàng) 1.The layout must minimize the parasitic inductance between the driver’s output
    發(fā)表于 11-05 23:17 ?4295次閱讀
    IGBT<b class='flag-5'>驅(qū)動(dòng)</b>電路布線設(shè)計(jì)<b class='flag-5'>注意事項(xiàng)</b>

    IGBT驅(qū)動(dòng)光耦TLP250的應(yīng)用及注意事項(xiàng)

    IGBT驅(qū)動(dòng)光耦TLP250的應(yīng)用及注意事項(xiàng)
    發(fā)表于 07-18 11:01 ?5.9w次閱讀
    IGBT<b class='flag-5'>驅(qū)動(dòng)</b>光耦TLP250的應(yīng)用及<b class='flag-5'>注意事項(xiàng)</b>

    繼電器驅(qū)動(dòng)電路的原理和注意事項(xiàng)

    繼電器驅(qū)動(dòng)電流一般需要20-40mA或更大,線圈電阻100-200歐姆,因此要加驅(qū)動(dòng)電路。那么繼電器的驅(qū)動(dòng)電路的原理和注意事項(xiàng)有哪些?
    發(fā)表于 02-06 15:44 ?3.6w次閱讀
    繼電器<b class='flag-5'>驅(qū)動(dòng)</b>電路的原理和<b class='flag-5'>注意事項(xiàng)</b>

    如何開(kāi)發(fā)功能齊全的QSPI驅(qū)動(dòng)

    1. 摘要 本篇筆記主要介紹,如何開(kāi)發(fā)穩(wěn)定可靠,功能齊全的QSPI驅(qū)動(dòng)。 2. 準(zhǔn)備工作 1, IAR 8.32.1 2, STM32Cube_FW_H7_V1.6.0 3. QSPI
    的頭像 發(fā)表于 09-25 14:42 ?4106次閱讀
    如何開(kāi)發(fā)<b class='flag-5'>功能</b>齊全的<b class='flag-5'>QSPI</b><b class='flag-5'>驅(qū)動(dòng)</b>

    門(mén)驅(qū)動(dòng)的欠壓保護(hù)功能及其注意事項(xiàng)

    門(mén)驅(qū)動(dòng)的欠壓保護(hù)功能及其注意事項(xiàng)
    發(fā)表于 11-01 08:26 ?1次下載
    門(mén)<b class='flag-5'>驅(qū)動(dòng)</b>的欠壓保護(hù)<b class='flag-5'>功能</b>及其<b class='flag-5'>注意事項(xiàng)</b>

    APM32F030C8T6_Flash_Flash讀寫(xiě)設(shè)計(jì)注意事項(xiàng)

    APM32F030C8T6_Flash_Flash讀寫(xiě)設(shè)計(jì)注意事項(xiàng)
    發(fā)表于 11-09 21:03 ?3次下載
    APM32F030C8T6_<b class='flag-5'>Flash_Flash</b>讀寫(xiě)設(shè)計(jì)<b class='flag-5'>注意事項(xiàng)</b>

    IGBT 柵極驅(qū)動(dòng)注意事項(xiàng)

    IGBT 柵極驅(qū)動(dòng)注意事項(xiàng)
    發(fā)表于 11-15 19:51 ?8次下載
    IGBT 柵極<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>注意事項(xiàng)</b>

    使用注意事項(xiàng)

    使用注意事項(xiàng)
    發(fā)表于 03-17 20:14 ?1次下載
    使用<b class='flag-5'>注意事項(xiàng)</b>

    微控制器外置QSPI Flash選型的注意事項(xiàng)

    為了擴(kuò)展微控制器可用的 Flash 空間,用戶(hù)可以使用 QSPI 接口連接 QSPI Flash;為了讓用戶(hù)能盡量像使用片內(nèi) Flash
    的頭像 發(fā)表于 04-07 09:23 ?2601次閱讀

    使用注意事項(xiàng)

    使用注意事項(xiàng)
    發(fā)表于 07-07 19:04 ?0次下載
    使用<b class='flag-5'>注意事項(xiàng)</b>

    調(diào)制驅(qū)動(dòng)器初次使用注意事項(xiàng)

    在初次使用調(diào)制驅(qū)動(dòng)器時(shí),有幾個(gè)注意事項(xiàng)需要考慮。
    的頭像 發(fā)表于 07-10 11:47 ?1162次閱讀

    深度剖析 IGBT 柵極驅(qū)動(dòng)注意事項(xiàng)

    深度剖析 IGBT 柵極驅(qū)動(dòng)注意事項(xiàng)
    的頭像 發(fā)表于 11-24 14:48 ?1079次閱讀
    深度剖析 IGBT 柵極<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>注意事項(xiàng)</b>

    美國(guó)Odyssey奧德賽電池充電注意事項(xiàng)解析

    Odyssey奧德賽電池充電注意事項(xiàng)解析 奧德賽電池作為高性能的深循環(huán)鉛酸電池,廣泛應(yīng)用于汽車(chē)啟動(dòng)、摩托車(chē)、船舶以及備用電源系統(tǒng)中。正確的充電方法不僅能夠延長(zhǎng)電池壽命,還能保障其性能穩(wěn)定發(fā)揮
    的頭像 發(fā)表于 05-19 16:31 ?216次閱讀
    美國(guó)Odyssey奧德賽電池充電<b class='flag-5'>注意事項(xiàng)</b>全<b class='flag-5'>解析</b>