2133936_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2133936_ja-JP

2133936_ja-JP

RT1176 SFPD QSPI IS25LP064D-JKLE

私は評価ボードと同じ方法で FlexSPI1 を実装するカスタム RT1176 ボードをフラッシュしようとしていますが、使用しようとしている IS25LP064D-JKLE をサポートするために、フラッシュ VCC に 3.3V を供給しています。flexspi_nor_config.cを添付しました。およびメモリの設定。デフォルトのflexspi_nor_polling_transfer_cm7を使用しています。Link Application to RAM を有効にしてデバッグすると、「プログラムデータ - 読み出しデータ値が正しくありません!」というエラーが返されます(125行目)。設定上の問題が何なのかまだ把握できていません。現在、MCU Link MR を使用していますが、Jlink にもアクセスできます。カスタムボードにはディップ・スイッチがあり、ブートモード 1 を 1、ブートモード 0 を 0 に設定しています。

Re: RT1176 SFPD QSPI IS25LP064D-JKLE

こんにちは@AnteoJ

NXP MIMXRTシリーズにご興味をお持ちいただきありがとうございます。

RT1020-EVK で使用されるフラッシュは ISSI_IS25LP064A SO、対応する flexspi_nor_config.c は SDKs 内にあります。まずはこれを確認してください。

また、フラッシュを交換するときは、まず SEC/MCUBootUtility に組み込まれているテンプレートのテストに合格すると、独自のフラッシュを LUT の問題から保護することができます。

よろしくお願いします、
ギャビン

Re: RT1176 SFPD QSPI IS25LP064D-JKLEデータシートに従って特定のフラッシュの値を調べて置き換えましたが、デバッグを開始すると、依然として IMPRECISERR と UNDEFINSTR が発生します。調整する必要がある追加のパラメータがあるかどうかはわかりません。ここに私のコードがあります: /*
* 著作権 2018-2022 NXP
* 無断転載を禁じます。
*
* SPDXライセンス識別子: BSD-3条項
*/

#include "evkbmimxrt1170_flexspi_nor_config.h"

/* ツールによって使用されるコンポーネント ID 定義。*/
#ifndef FSL_COMPONENT_ID
#FSL_COMPONENT_ID "プラットフォーム.ドライバ.xip_board" を定義します
#endif

/****************************************************************************************
* コード
**********************************************************************************/
#定義されている場合(XIP_BOOT_HEADER_ENABLE) && (XIP_BOOT_HEADER_ENABLE == 1)
# __CC_ARM が定義されている場合 || __ARMCC_VERSION が定義されている場合 || __GNUC__が定義されている場合
__attribute__ ((セクション(".boot_hdr.conf")),使用済み))
#elif 定義済み( __ICCARM__ )
#pragma location = ".boot_hdr.conf"
#endif

#FLASH_DUMMY_CYCLES 0x03 を定義する
#FLASH_DUMMY_VALUE 0x03 を定義する

const flexspi_nor_config_t qspiflash_config = {
.memConfig=
{
。タグ= FLEXSPI_CFG_BLK_TAG、
.バージョン= FLEXSPI_CFG_BLK_VERSION、
.readSampleClksrc=kFlexSPIReadSampleClk_Loopback内部的に、
.csホールド時間= 3u、
.csセットアップ時間= 3u、
// DDRモード、ワードアダッサブル、セーフ構成、差動クロックを有効にする
.controllerMiscOption= 0x10,
.デバイスタイプ= kFlexSpiDeviceType_SerialNOR、
.sflashPadType= kSerialFlash_4Pads、
.シリアルクロック周波数= kFlexSpiシリアルクロック_60MHz、
.sflashA1サイズ= 8u * 1024u * 1024u、
/* フラッシュ設定機能を有効にする */
.configCmdEnable= 1u、
.configModeType[0]= kDeviceConfigCmdType_Generic、
/* 設定コマンドシーケンスを設定する */
.configCmdSeqs[0]=
{
.seqNum= 1,
.seqId= 12,
。予約済み= 0,
},
/* フラッシュ内の読み取りレジスタの設定値を準備する */
.configCmdArgs[0]= (FLASH_DUMMY_VALUE << 4)、
.lookupTable=
{
// LUTを読み込む
[0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x20),
[1] = FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, FLASH_DUMMY_CYCLES, READ_SDR, FLEXSPI_4PAD, 0x04),

// ステータスLUTの読み取り
[4 * 1 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x04),

// 書き込み有効LUT
[4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x0),

// セクターLUTを消去する
[4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20, RADDR_SDR, FLEXSPI_1PAD, 0x18),

// ブロックLUTを消去する
[4 * 8 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8, RADDR_SDR, FLEXSPI_1PAD, 0x18),

// PapeプログラムLUT
[4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02, RADDR_SDR, FLEXSPI_1PAD, 0x18),
[4 * 9 + 1] = FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04, STOP, FLEXSPI_1PAD, 0x0),

// チップLUTを消去する
[4 * 11 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60, STOP, FLEXSPI_1PAD, 0x0),

// 読み取りレジスタLUTを設定する
[4 * 12 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xC0, WRITE_SDR, FLEXSPI_1PAD, 0x01),
[4 * 12 + 1] = FLEXSPI_LUT_SEQ(STOP, FLEXSPI_1PAD, 0x00, 0, 0, 0),
},
},
.ページサイズ= 256u、
.セクターサイズ= 4u * 1024u、
.ipcmdシリアルクロック周波数= 0x1、
.ブロックサイズ= 64u * 1024u、
.isUniformBlockSize= 偽、
};
#endif /* XIP_BOOT_HEADER_ENABLE */
Tags (1)
No ratings
Version history
Last update:
‎11-22-2025 12:02 AM
Updated by: