一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

ZYNQ-QSPI Flash讀寫(xiě)操作

冬至子 ? 來(lái)源:Embeddeder ? 作者:Vuko ? 2023-06-02 17:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Flash簡(jiǎn)介

Flash存儲(chǔ)器,又叫做閃存,是一種非易失性存儲(chǔ)器。具有操作方便讀寫(xiě)速度快等優(yōu)點(diǎn)。一般用于存儲(chǔ)操作系統(tǒng)程序代碼,或者用于數(shù)據(jù)存儲(chǔ)。Flash的存儲(chǔ)單元組織為塊陣列,塊是擦除操作的最小單位,擦除操作將塊內(nèi)的所有為置位為1,頁(yè)是讀寫(xiě)操作的基本單位。在對(duì)頁(yè)進(jìn)行寫(xiě)操作前,要判斷該頁(yè)內(nèi)所有位是否為1。如果全部為1可以寫(xiě)操作,否則要對(duì)整塊進(jìn)行擦除操作(Flash只能從1反轉(zhuǎn)到0)。Flash在內(nèi)部結(jié)構(gòu)(接口)上主要分為Nor flash 和NAND flash。Nor Flash :寫(xiě)入和擦除的速度低;結(jié)構(gòu)復(fù)雜,成本高;存儲(chǔ)容量較?。灰话阌糜诖鎯?chǔ)Bootloader以及操作系統(tǒng)或者程序代碼,可以在芯片內(nèi)部直接運(yùn)行代碼。NAND Flash :寫(xiě)入和擦除的速度較快;結(jié)構(gòu)簡(jiǎn)單,成本低;存儲(chǔ)容量較大;一般用于存儲(chǔ)材料和數(shù)據(jù)。

Flash在外部接口上主要分為CFI flash 和SPI(STD/Dual/Quad) flash。CFI flash 讀寫(xiě)速度快,需要的硬件引腳多且不同容量的硬件不兼容;而SPI(STD/Dual/Quad) flash讀寫(xiě)速度慢,需要的硬件引腳少且不同容量的硬件兼容。

QSPI Flash簡(jiǎn)介

介紹

Quad-SPI閃存控制器是位于PS內(nèi)的輸入/輸出外設(shè)(IOP)的一部分。它用于訪問(wèn)多位串行閃存設(shè)備,以實(shí)現(xiàn)高吞吐量和低引腳數(shù)應(yīng)用。

控制器可以以三種模式運(yùn)行: I / O模式 ,線(xiàn)性尋址模式傳統(tǒng)SPI模式

在I / O模式下,軟件與閃存設(shè)備協(xié)議緊密交互,所以在該模式下需要對(duì)協(xié)議進(jìn)行詳細(xì)了解。軟件通過(guò)使用四個(gè)TXD寄存器將閃存命令和數(shù)據(jù)寫(xiě)入控制器。軟件通過(guò)讀取RXD寄存器。

線(xiàn)性尋址模式使用設(shè)備操作的子集來(lái)消除I / O模式讀取閃存所需的軟件開(kāi)銷(xiāo)。也就是說(shuō)線(xiàn)性尋址模式比IO模式要快的多。線(xiàn)性模式采用硬件來(lái)向閃存發(fā)出命令,并控制從flash到AXI接口的數(shù)據(jù)??刂破黜憫?yīng)AXI接口上的存儲(chǔ)器請(qǐng)求,就好像閃存是ROM存儲(chǔ)器。

在傳統(tǒng)模式下,QSPI控制器充當(dāng)普通的SPI控制器。

控制器可以與一或兩個(gè)閃存設(shè)備接口??梢圆⑿羞B接兩個(gè)設(shè)備以實(shí)現(xiàn)8位性能,也可以以堆疊的4位布局連接以最大程度地減少引腳數(shù)。

系統(tǒng)框圖

QSPI Flash 控制器的系統(tǒng)框圖如下所示:

圖片

從上圖中可知, QSPI Flash 控制器通過(guò) MIO 與外部 Flash 器件連接,支持三種模式:?jiǎn)蝹€(gè)從器件模式、雙從器件并行模式和雙從器件堆疊模式。雙從器件并行模式把每個(gè)flash的IO進(jìn)行單獨(dú)連接,擴(kuò)展成8位用于控制對(duì)不同flash的訪問(wèn)。而雙從器件堆疊模式,使用SS片選信號(hào)進(jìn)行區(qū)分flash的使能,所以想擴(kuò)展 QSPI Flash 的存儲(chǔ)容量,可以使用雙從器件并行模式。

當(dāng)使用單個(gè)設(shè)備時(shí),直接存儲(chǔ)器讀取的地址映射從FC00_0000開(kāi)始,最大為FCFF_FFFF(16 MB)。兩臺(tái)設(shè)備系統(tǒng)的地址映射取決于存儲(chǔ)設(shè)備和I / O配置。

QSPI Flash 控制器內(nèi)部框圖

圖片

由上圖可知,在線(xiàn)性地址模式下,使用的是AXI的接口進(jìn)行數(shù)據(jù)交互的,首先由AXI總線(xiàn)讀取到響應(yīng)的指令,并存到Command FIFO,然后使用AXI to SPI的命令轉(zhuǎn)化器傳輸?shù)竭x擇器。在IO模式下,使用的是APB接口直接把接收到的信號(hào)傳輸給選擇器進(jìn)行選擇。然后選擇器進(jìn)行功能選擇后傳輸?shù)絋xFIFO,接著把Tx FIFO的數(shù)據(jù)進(jìn)行串行化,然后通過(guò)MIO引腳發(fā)送。接收部分原理相反,而且可以看出在線(xiàn)性地址模式下,接收信號(hào)的轉(zhuǎn)換使用的是數(shù)據(jù)轉(zhuǎn)換器。所以在線(xiàn)性地址模式下,只支持讀取數(shù)據(jù),不支持發(fā)送數(shù)據(jù)。

流程控制

在數(shù)據(jù)傳輸期間,I / O模式具有不同的流控制模式。用戶(hù)可以在自動(dòng)和手動(dòng)模式之間進(jìn)行選擇,該模式由config_reg.MANSTARTEN(Man_start_com)控制。在自動(dòng)模式下,包括芯片選擇控制在內(nèi)的整個(gè)傳輸過(guò)程都在硬件中完成。無(wú)需軟件干預(yù)。在手動(dòng)模式下,用戶(hù)控制數(shù)據(jù)傳輸?shù)拈_(kāi)始。在這種情況下,軟件要么將整個(gè)傳輸序列寫(xiě)入TxFIFO,要么直到TxFIFO已滿(mǎn)。在手動(dòng)模式下,用戶(hù)除了控制傳輸開(kāi)始之外,還可以選擇控制芯片選擇。從命令開(kāi)始,軟件再次將傳輸序列寫(xiě)入TxFIFO,直到TxFIFO已滿(mǎn)。然后,軟件拉高CS,然后手動(dòng)啟動(dòng)進(jìn)行硬件管理。

編程指南

在xilinx給出的UG585指導(dǎo)手冊(cè)中,對(duì)QSPI Flash 控制器編程設(shè)計(jì)進(jìn)行了指導(dǎo)開(kāi)發(fā),用戶(hù)可以根據(jù)自己的設(shè)計(jì)需要參考指導(dǎo)手冊(cè)中的編程順序?qū)崿F(xiàn)自己的應(yīng)用功能。

啟動(dòng)順序

  1. 配置時(shí)鐘。
  2. 配置發(fā)送/接收信號(hào)。(以上兩步在vivado底層搭建中已經(jīng)完成設(shè)計(jì))
  3. 重置控制器。
  4. 配置控制器。

配置控制器

該步驟適用于線(xiàn)性尋址和I / O模式。它配置了控制器的波特率,F(xiàn)IFO,flash模式,時(shí)鐘相位/極性和對(duì)環(huán)回延遲進(jìn)行編程。

  1. 配置控制器。寫(xiě)入qspi.Config_reg寄存器。a. 設(shè)置波特率[BAUD_RATE_DIV]。b. 選擇主模式,[MODE_SEL] = 1。C. 選擇flash模式(不是傳統(tǒng)SPI),[LEG_FLSH] = 1。d. 選擇Little Endian,[endian] = 0。e. 將FIFO寬度設(shè)置為32位[FIFO_WIDTH]。F. 設(shè)置時(shí)鐘相位[CLK_PH]和極性[CLK_POL]。
  2. 啟用回送時(shí)鐘。如果使用回送時(shí)鐘,確保將qspi.Config_reg [BAUD_RATE_DIV]設(shè)置為0b00,并使用以下設(shè)置配置qspi.LPBK_DLY_ADJ(回送延遲調(diào)整)寄存器:a. 設(shè)置為選擇內(nèi)部時(shí)鐘。qspi.LPBK_DLY_ADJ [USE_LPBK] = 1。b. 將時(shí)鐘延遲設(shè)置為0。qspi.LPBK_DLY_ADJ [DLY0] = 0b00。c. 設(shè)置時(shí)鐘延遲1. qspi.LPBK_DLY_ADJ [DLY1] = 0b00。

線(xiàn)性尋址模式

線(xiàn)性尋址模式下數(shù)據(jù)讀?。ù鎯?chǔ)器讀?。┑牟僮黜樞蛉缦拢?/p>

  1. 將手動(dòng)啟動(dòng)啟用設(shè)置為自動(dòng)模式。設(shè)置qspi.Config_reg [Man_start_en] = 0。
  2. 使能片選信號(hào)。設(shè)置qspi.Config_reg [PCS] = 0。
  3. 將配置寄存器編程為線(xiàn)性尋址模式。
  4. 啟用控制器。設(shè)置qspi.En_REG [SPI_EN] = 1。
  5. 從線(xiàn)性地址存儲(chǔ)區(qū)讀取數(shù)據(jù)。內(nèi)存范圍取決于大小和設(shè)備數(shù)量。范圍是從0xFC00_0000到0xFDFF_FFFF。
  6. 禁用控制器。設(shè)置qspi.En_REG [SPI_EN] = 0。
  7. 取消使能片選信號(hào)。設(shè)置qspi.Config_reg [PCS] = 1。

配置I / O模式

使用I / O模式進(jìn)行讀取和寫(xiě)入編程步驟如下:

  1. 啟用手動(dòng)模式。qspi.Config_reg [Man_start_en,Manual_CS] = 1。
  2. 配置flash設(shè)備。對(duì)單個(gè)閃存設(shè)備使用qspi.LQSPI_CFG寄存器的重置值。如果是并行雙閃存設(shè)備,則將1寫(xiě)入TWO_MEM,SEP_BUS位字段。
  3. 使能片選。設(shè)置qspi.Config_reg [PCS] = 0。
  4. 啟用控制器。設(shè)置qspi.En_REG [SPI_EN] = 1。
  5. 將字節(jié)序列寫(xiě)入閃存。使用TXD從1到4字節(jié)寫(xiě)入TxFIFO寄存器。
  6. 避免TxFIFO溢出。當(dāng)TxFIFO為空時(shí),可以寫(xiě)入252個(gè)字節(jié)。此后,軟件可以通過(guò)讀取qspi.Intr_status_REG [TX_FIFO_full]并等待直到它等于0之后再寫(xiě)入TXD寄存器,來(lái)避免TxFIFO溢出。
  7. 啟用中斷。寫(xiě)入qspi.Intrpt_en_REG。
  8. 開(kāi)始數(shù)據(jù)傳輸。設(shè)置qspi.Config_reg [Man_start_com] = 1。
  9. 中斷處理程序:在編程/讀取操作期間,將所有需要的數(shù)據(jù)傳輸?shù)絈SPI flash,并傳輸?shù)絈uad-SPI flash。
  10. 如果執(zhí)行了讀取操作:重新排列READ數(shù)據(jù)以消除由于空循環(huán)而讀取的數(shù)據(jù)。
  11. 取消使能片選信號(hào)。設(shè)置QSPI.Config_reg [PCS] = 1。
  12. 禁用控制器。設(shè)置qspi.En_REG [SPI_EN] = 0。

I/O模式中斷服務(wù)程序

配置ISR以根據(jù)Quad-SPI器件類(lèi)型處理中斷條件。要從Quad-SPI器件讀取數(shù)據(jù),最簡(jiǎn)單的ISR從RxFIFO讀取數(shù)據(jù)并將內(nèi)容寫(xiě)入TxFIFO??刂破魃上到y(tǒng)外設(shè)中斷(SPI),IRQ ID#51。對(duì)以下兩種情況進(jìn)行觸發(fā)中斷。a. 讀取傳輸中斷。RxFIFO不為空中斷 b. 寫(xiě)傳輸中斷。TxFIFO未完全中斷

I/O模式中斷

中斷僅在I / O模式下使用。只要滿(mǎn)足任何中斷條件,控制器中斷就被置為有效。Quad-SPI中斷處理程序檢查中斷原因。單個(gè)中斷服務(wù)程序可以管理所有中斷條件。

Rx和Tx的中斷處理程序

中斷處理程序由IRQ ID#51觸發(fā)。示例讀取RxFIFO直到其為空,然后填充TxFIFO。RxFIFO非空中斷狀態(tài)用于確定是否可以從RxFIFO讀取內(nèi)容。TxFIFO未滿(mǎn)中斷指示TxFIFO中是否有空間容納更多內(nèi)容。

  1. 禁用控制器中的所有中斷。將qspi.Intrpt_dis_REG [TX_FIFO_not_full,RX_FIFO_full]都設(shè)置為1。
  2. 清除中斷。將1s寫(xiě)入中斷狀態(tài)寄存器qspi.Intr_status_REG。
  3. 清空RxFIFO。檢查是否聲明了RxFIFO非空中斷。如果qspi.Intr_status_REG [RX_FIFO_not_empty] = 1,則RxFIFO中有數(shù)據(jù)。a. 如果狀態(tài)為有效,則從RxFIFO讀取數(shù)據(jù)。使用qspi.RX_data_REG寄存器讀取數(shù)據(jù)。b. 從RxFIFO讀取數(shù)據(jù)并輪詢(xún)中斷狀態(tài),直到RxFIFO為空。當(dāng)qspi.Intr_status_REG [RX_FIFO_not_empty] = 0時(shí),RxFIFO為空。
  4. 填充TxFIFO。檢查T(mén)xFIFO未滿(mǎn)狀態(tài)是否有效。如果 qspi.Intr_status_REG [TX_FIFO_not_Full] = 1,則存在要發(fā)送到閃存設(shè)備的數(shù)據(jù)(編程和/或讀取操作):a. 將數(shù)據(jù)寫(xiě)入qspi.TXD0寄存器。b. 輪詢(xún)qspi.Intr_status_REG [TX_FIFO_full] = 1,這表明TX FIFO已滿(mǎn)。c. 遵循步驟a和b,直到將所有數(shù)據(jù)寫(xiě)入TxFIFO或直到qspi.Intr_status_REG[TX_FIFO_full] = 1。
  5. 啟用中斷。將qspi.Intrpt_en_REG [TX_FIFO_not_full,RX_FIFO_full]都設(shè)置為1。
  6. 開(kāi)始數(shù)據(jù)傳輸。設(shè)置qspi.Config_reg [MANSTRTEN] = 1。

工程系統(tǒng)框圖

本次工程的系統(tǒng)框圖如下:

圖片

在本次工程設(shè)計(jì)中,使用QSPI Flash控制器對(duì)ZYNQ的QSPI Flash進(jìn)行讀寫(xiě)操作。通過(guò)對(duì)比讀取數(shù)據(jù)和寫(xiě)入數(shù)據(jù)是否相等驗(yàn)證讀寫(xiě)功能是否正常。

硬件平臺(tái)搭建

新建工程,創(chuàng)建 Block Design。添加ZYNQ7 ip,根據(jù)本次工程需要對(duì)IP進(jìn)行配置。勾選本次工程使用的資源。

圖片

完成對(duì)所用資源的勾選,

圖片

在clock configuration這里可以查看對(duì)QSPI的時(shí)鐘配置。

圖片

這里不需要對(duì)其他資源進(jìn)行配置,所以可以使用默認(rèn)配置。整體硬件系統(tǒng)構(gòu)建完成如下:

圖片

然后我們進(jìn)行g(shù)enerate output product 然后生成HDL封裝。這里用到了僅僅用到了PS部分的資源,所以不需要進(jìn)行管腳分配。點(diǎn)擊導(dǎo)出硬件資源(不用包含bit流文件),接著launch SDK,進(jìn)入軟件部分編寫(xiě)。

SDK軟件部分

打開(kāi)SDK后,新建application project。在system.mss中可以打開(kāi)相關(guān)參考文檔輔助設(shè)計(jì)。

圖片

可以選擇qspi的例程進(jìn)行參考設(shè)計(jì),導(dǎo)入例程模板,

圖片

根據(jù)提供的模板,主要使用的函數(shù)如下,這里對(duì)他的讀寫(xiě)測(cè)試進(jìn)行了簡(jiǎn)化,

int QspiFlashPolledExample(XQspiPs *QspiInstancePtr, u16 QspiDeviceId)
{
	int Status;
	u8 *BufferPtr;
	u8 UniqueValue;
	int Count;
	int Page;
	XQspiPs_Config *QspiConfig;
	//初始化QSPI
	QspiConfig = XQspiPs_LookupConfig(QspiDeviceId);
	XQspiPs_CfgInitialize(QspiInstancePtr, QspiConfig,QspiConfig- >BaseAddress);
	//自測(cè)
	Status = XQspiPs_SelfTest(QspiInstancePtr);
	if (Status != XST_SUCCESS) {
		return XST_FAILURE;
	}
	//初始化讀寫(xiě)B(tài)UFFER
	for (UniqueValue = UNIQUE_VALUE, Count = 0; Count < PAGE_SIZE;
	     Count++, UniqueValue++) {
		WriteBuffer[DATA_OFFSET + Count] = (u8)(UniqueValue + Test);
	}
	memset(ReadBuffer, 0x00, sizeof(ReadBuffer));
	//設(shè)置手動(dòng)啟動(dòng)和手動(dòng)片選模式
	XQspiPs_SetOptions(QspiInstancePtr, XQSPIPS_MANUAL_START_OPTION |
			XQSPIPS_FORCE_SSELECT_OPTION |
			XQSPIPS_HOLD_B_DRIVE_OPTION);
	//設(shè)置QSPI時(shí)鐘的分頻系數(shù)
	XQspiPs_SetClkPrescaler(QspiInstancePtr, XQSPIPS_CLK_PRESCALE_8);
	//片選信號(hào)置為有效
	XQspiPs_SetSlaveSelect(QspiInstancePtr);
	//讀FLASH ID
	FlashReadID();
	//使能FLASH Quad模式
	FlashQuadEnable(QspiInstancePtr);
	//擦除FLASH
	FlashErase(QspiInstancePtr, TEST_ADDRESS, MAX_DATA);
	//向FLASH中寫(xiě)入數(shù)據(jù)
	for (Page = 0; Page < PAGE_COUNT; Page++) {
		FlashWrite(QspiInstancePtr, (Page * PAGE_SIZE) + TEST_ADDRESS,
			   PAGE_SIZE, WRITE_CMD);
	}
	//使用QUAD模式從FLASH中讀出數(shù)據(jù)
	FlashRead(QspiInstancePtr, TEST_ADDRESS, MAX_DATA, READ_CMD);
	//對(duì)比寫(xiě)入FLASH與從FLASH中讀出的數(shù)據(jù)
	BufferPtr = &ReadBuffer[DATA_OFFSET];
	for (UniqueValue = UNIQUE_VALUE, Count = 0; Count < MAX_DATA;
	     Count++, UniqueValue++) {
		if (BufferPtr[Count] != (u8)(UniqueValue + Test)) {
			return XST_FAILURE;
		}
	}
	return XST_SUCCESS;
}

運(yùn)行效果

讀寫(xiě)測(cè)試正常,運(yùn)行效果如下:

圖片

聲明:本文內(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)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17116

    瀏覽量

    184444
  • STD
    STD
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    14550
  • Flash存儲(chǔ)器
    +關(guān)注

    關(guān)注

    3

    文章

    105

    瀏覽量

    26436
  • QSPI
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    12730
  • 選擇器
    +關(guān)注

    關(guān)注

    0

    文章

    110

    瀏覽量

    14835
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    編譯可在QSPI Flash上運(yùn)行的程序

    在前文中已經(jīng)實(shí)現(xiàn)了一個(gè)能夠在 MDK 平臺(tái)進(jìn)行下載代碼到 QSPI Flash 中的下載算法,以及一個(gè)能跳轉(zhuǎn)執(zhí)行應(yīng)用程序的 2nd Bootloader,但若想將代碼下載到 QSPI Flas
    的頭像 發(fā)表于 03-31 09:50 ?4159次閱讀
    編譯可在<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>上運(yùn)行的程序

    使用PCIE更新AMD ZYNQQSPI Flash參考設(shè)計(jì)

    AMD ZYNQ 7000 的 S_AXI 端口提供了外設(shè)訪問(wèn) PS 內(nèi)部外設(shè)控制器的接口,這其中包括 4 個(gè) S_AXI_HP 端口以及兩個(gè) S_AXI_GP 端口。一般來(lái)說(shuō),可以訪問(wèn)的內(nèi)部資源包括 DDR 控制器,QSPI 控制器,OCM,IIC,SPI 等。
    的頭像 發(fā)表于 11-17 10:02 ?1755次閱讀
    使用PCIE更新AMD <b class='flag-5'>ZYNQ</b>的<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>參考設(shè)計(jì)

    STM32H750 QSPI flash重映射模式下有方法能實(shí)現(xiàn)讀寫(xiě)操作嗎?

    STM32H750 QSPI flash重映射模式下有方法能實(shí)現(xiàn)讀寫(xiě)操作
    發(fā)表于 03-25 08:06

    STM32CUBEMX_H750_QSPI單片flash間接讀寫(xiě)模式

    STM32CUBEMX_H750_QSPI單片flash間接讀寫(xiě)模式使用STM32cubemx配置串口,QSPI等(QSPI 配置初始化是g
    發(fā)表于 12-09 06:39

    使用硬件QSPI讀寫(xiě)SPI Flash的方法

    本篇詳細(xì)的記錄了如何使用STM32CubeMX配置STM32L431RCT6的硬件QSPI外設(shè)與 SPI Flash 通信(W25Q64)。
    發(fā)表于 01-26 07:29

    什么是QSPI?如何使用QSPIQSPI Flash進(jìn)行通信呢?

    ,然后是交替字節(jié),空指令周期,最后是數(shù)據(jù),任意兩個(gè)階段之間都是緊挨著的?! ∫话銇?lái)說(shuō),每次與 QSPI Flash 通信都至少包含指令階段,其余的階段都是可選的,例如讀寫(xiě) QSPI
    發(fā)表于 03-17 15:17

    使用 PCIE 更新 AMD ZYNQ? 的 QSPI Flash 參考設(shè)計(jì)

    的內(nèi)部資源包括 DDR 控制器,QSPI 控制器,OCM,IIC,SPI 等。 本教程提供一個(gè)最小的參考設(shè)計(jì),使上位機(jī)可以通過(guò) PCIE 端口,通過(guò) S_AXI_GP0 端口訪問(wèn) ZYNQ 內(nèi)部
    發(fā)表于 11-30 18:49

    如何使用QSPI Flash控制器開(kāi)發(fā)板上的 QSPI Flash進(jìn)行寫(xiě)讀操作

    學(xué)習(xí)內(nèi)容 本文首先介紹FlashQSPI Flash控制器的相關(guān)內(nèi)容,然后使用 QSPI Flash 控制器,開(kāi)發(fā)板上的
    的頭像 發(fā)表于 06-10 17:08 ?1.5w次閱讀
    如何使用<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>控制器開(kāi)發(fā)板上的 <b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>進(jìn)行寫(xiě)讀<b class='flag-5'>操作</b>

    STM32內(nèi)部Flash讀寫(xiě)問(wèn)題

    讀寫(xiě)要注意幾點(diǎn)keil的.map文件中包含了什么操作不當(dāng)導(dǎo)致Flash損壞會(huì)怎樣Flash上鎖與解鎖Keil編譯器如何查看MCU寄存器的值Flash
    發(fā)表于 12-01 20:21 ?20次下載
    STM32內(nèi)部<b class='flag-5'>Flash</b><b class='flag-5'>讀寫(xiě)</b>問(wèn)題

    【STM32Cube-18】使用硬件QSPI讀寫(xiě)SPI Flash(W25Q64)

    本篇詳細(xì)的記錄了如何使用STM32CubeMX配置STM32L431RCT6的硬件QSPI外設(shè)與 SPI Flash 通信(W25Q64)。
    發(fā)表于 12-01 21:06 ?14次下載
    【STM32Cube-18】使用硬件<b class='flag-5'>QSPI</b><b class='flag-5'>讀寫(xiě)</b>SPI <b class='flag-5'>Flash</b>(W25Q64)

    nrf5340 LCD和flash 共用Qspi 息屏導(dǎo)致flash讀寫(xiě)問(wèn)題

    操作flash,影響qspr的時(shí)序,導(dǎo)致flash讀寫(xiě)錯(cuò)誤?,F(xiàn)象表現(xiàn):CPU工作頻率低于qspr頻率時(shí),影響flash
    發(fā)表于 12-07 20:36 ?10次下載
    nrf5340 LCD和<b class='flag-5'>flash</b> 共用<b class='flag-5'>Qspi</b> 息屏導(dǎo)致<b class='flag-5'>flash</b><b class='flag-5'>讀寫(xiě)</b>問(wèn)題

    STM32H743+CubeMX-QSPI讀寫(xiě)外部FLASH(W25Q128JVSQ)

    的開(kāi)發(fā)板上使用的是已經(jīng)停產(chǎn)的華邦的W25Q128FV外部FLASH,這塊老FLASHQSPI上的編程比較坑,
    發(fā)表于 12-27 18:36 ?45次下載
    STM32H743+CubeMX-<b class='flag-5'>QSPI</b><b class='flag-5'>讀寫(xiě)</b>外部<b class='flag-5'>FLASH</b>(W25Q128JVSQ)

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

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

    基于RL78-FDL庫(kù)實(shí)現(xiàn)RL78G13 Data Flash讀寫(xiě)操作

    基于RL78-FDL庫(kù)實(shí)現(xiàn)RL78G13 Data Flash讀寫(xiě)操作
    的頭像 發(fā)表于 10-27 09:19 ?3433次閱讀
    基于RL78-FDL庫(kù)實(shí)現(xiàn)RL78G13 Data <b class='flag-5'>Flash</b>的<b class='flag-5'>讀寫(xiě)</b><b class='flag-5'>操作</b>

    Zynq中程序存儲(chǔ)位置和設(shè)置方法

    Zynq中存儲(chǔ)程序的地方有QSPI Flash,SD卡,EMMC。
    的頭像 發(fā)表于 10-17 17:00 ?2996次閱讀