RT1170 EVK app won't run on an EVKB

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

RT1170 EVK app won't run on an EVKB

跳至解决方案
1,773 次查看
Littell
Contributor III

Even the dead-simple iled_blinky demo app built with the EVK SDK won't load and run on an EVKB.  Why?

And most importantly, how can I re-target apps build with the EVK SDK to the EVKB SDK.

Thanks very much.

0 项奖励
回复
1 解答
1,701 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Littell ,

Thanks you for your updated information.

If you want to use the SPT or other tools, you neet to use these steps:

1. Board enter the serial download mode

SW1:1-OFF,2-OFF,3-OFF,4-ON

SW2:0000000000

 

2. Find another USB cable to connect the J20, then you can use the mcubootutility to connect it

https://github.com/JayHeng/NXP-MCUBootUtility/releases/tag/v6.2.0
the related user manual is:
https://github.com/JayHeng/NXP-MCUBootUtility

This is the connection result:

kerryzhou_0-1719281735626.png

You can find it is connected, please also try it on your side.

Then mass erase use this one:

kerryzhou_1-1719281775843.png

Please try it on your side.

If yu still have issues, you may need to check, whether your board have issues or not, or you modify the fuse bit or not.

Best Regards,

kerry

 

 

 

 

在原帖中查看解决方案

0 项奖励
回复
5 回复数
1,725 次查看
Littell
Contributor III

The SPT was unable to pass even the "Test Connection".

0 项奖励
回复
1,702 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Littell ,

Thanks you for your updated information.

If you want to use the SPT or other tools, you neet to use these steps:

1. Board enter the serial download mode

SW1:1-OFF,2-OFF,3-OFF,4-ON

SW2:0000000000

 

2. Find another USB cable to connect the J20, then you can use the mcubootutility to connect it

https://github.com/JayHeng/NXP-MCUBootUtility/releases/tag/v6.2.0
the related user manual is:
https://github.com/JayHeng/NXP-MCUBootUtility

This is the connection result:

kerryzhou_0-1719281735626.png

You can find it is connected, please also try it on your side.

Then mass erase use this one:

kerryzhou_1-1719281775843.png

Please try it on your side.

If yu still have issues, you may need to check, whether your board have issues or not, or you modify the fuse bit or not.

Best Regards,

kerry

 

 

 

 

0 项奖励
回复
1,688 次查看
Littell
Contributor III
Thank you VERY much! It seems to be back in business.
0 项奖励
回复
1,729 次查看
Littell
Contributor III

Hi, Kerry!  Thank you for the quick reply.  Unfortunately the IDE Mass Erase resulted in the following error:

Flash Driver V.2 startup failed - rc Ef(34): Timed-out initializing flash.

chip initialization failed - Ef(34): Timed-out initializing flash.

failed to initialize flash driver MIMXRT1170_SFDP_QSPI.cfx

( 65) Chip Setup Complete

(100) Target Operation Failed

Unable to perform operation!

Command failed with exit code 1

I guess I should try the SPT Mass Erase now...

 

Thanks,

Dave

 

0 项奖励
回复
1,746 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Littell ,

  Thank you for your interest in the NXP MIMXRT product, I would like to provide service for you.

1. please use the following link to do the mass erase at first:

https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/RT-board-recovery-for-debugger-connect-issues/ta...

2. To the MIMXRT1170-EVKB, please download the EVKB related SDK, and import the code from the EVKB SDK:

https://mcuxpresso.nxp.com/en/builder?hw=MIMXRT1170-EVKB

3. About the EVK and EVKB, the used QSPI flash is different, so the XIP FCB have difference.

kerryzhou_1-1719194803993.png

 

kerryzhou_0-1719194797128.png

This is the EVK flexspi_nor_config.c

#define FLASH_DUMMY_CYCLES 0x09
#define FLASH_DUMMY_VALUE  0x09

const flexspi_nor_config_t qspiflash_config = {
    .memConfig =
        {
            .tag              = FLEXSPI_CFG_BLK_TAG,
            .version          = FLEXSPI_CFG_BLK_VERSION,
            .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackFromDqsPad,
            .csHoldTime       = 3u,
            .csSetupTime      = 3u,
            // Enable DDR mode, Wordaddassable, Safe configuration, Differential clock
            .controllerMiscOption = 0x10,
            .deviceType           = kFlexSpiDeviceType_SerialNOR,
            .sflashPadType        = kSerialFlash_4Pads,
            .serialClkFreq        = kFlexSpiSerialClk_133MHz,
            .sflashA1Size         = 16u * 1024u * 1024u,
            /* Enable flash configuration feature */
            .configCmdEnable   = 1u,
            .configModeType[0] = kDeviceConfigCmdType_Generic,
            /* Set configuration command sequences */
            .configCmdSeqs[0] =
                {
                    .seqNum   = 1,
                    .seqId    = 12,
                    .reserved = 0,
                },
            /* Prepare setting value for Read Register in flash */
            .configCmdArgs[0] = (FLASH_DUMMY_VALUE << 3),
            .lookupTable =
                {
                    // Read LUTs
                    [0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
                    [1] = FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, FLASH_DUMMY_CYCLES, READ_SDR, FLEXSPI_4PAD, 0x04),

                    // Read Status LUTs
                    [4 * 1 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x04),

                    // Write Enable LUTs
                    [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x0),

                    // Erase Sector LUTs
                    [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20, RADDR_SDR, FLEXSPI_1PAD, 0x18),

                    // Erase Block LUTs
                    [4 * 8 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8, RADDR_SDR, FLEXSPI_1PAD, 0x18),

                    // Pape Program LUTs
                    [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),

                    // Erase Chip LUTs
                    [4 * 11 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60, STOP, FLEXSPI_1PAD, 0x0),

                    // Set Read Register LUTs
                    [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),
                },
        },
    .pageSize           = 256u,
    .sectorSize         = 4u * 1024u,
    .ipcmdSerialClkFreq = 0x1,
    .blockSize          = 64u * 1024u,
    .isUniformBlockSize = false,
};

 

This is the EVKB flexspi_nor_config.c

#define FLASH_DUMMY_CYCLES 0x08
#define FLASH_DUMMY_VALUE  0x03

const flexspi_nor_config_t qspiflash_config = {
    .memConfig =
        {
            .tag              = FLEXSPI_CFG_BLK_TAG,
            .version          = FLEXSPI_CFG_BLK_VERSION,
            .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackFromDqsPad,
            .csHoldTime       = 3u,
            .csSetupTime      = 3u,
            // Enable DDR mode, Wordaddassable, Safe configuration, Differential clock
            .controllerMiscOption = 0x10,
            .deviceType           = kFlexSpiDeviceType_SerialNOR,
            .sflashPadType        = kSerialFlash_4Pads,
            .serialClkFreq        = kFlexSpiSerialClk_133MHz,
            .sflashA1Size         = 64u * 1024u * 1024u,
            /* Enable flash configuration feature */
            .configCmdEnable   = 1u,
            .configModeType[0] = kDeviceConfigCmdType_Generic,
            /* Set configuration command sequences */
            .configCmdSeqs[0] =
                {
                    .seqNum   = 1,
                    .seqId    = 12,
                    .reserved = 0,
                },
            /* Prepare setting value for Read Register in flash */
            .configCmdArgs[0] = (FLASH_DUMMY_VALUE << 4),
            .lookupTable =
                {
                    // Read LUTs
                    [0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEC, RADDR_SDR, FLEXSPI_4PAD, 0x20),
                    [1] = FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, FLASH_DUMMY_CYCLES, READ_SDR, FLEXSPI_4PAD, 0x04),

                    // Read Status LUTs
                    [4 * 1 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x04),

                    // Write Enable LUTs
                    [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x0),

                    // Erase Sector LUTs
                    [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x21, RADDR_SDR, FLEXSPI_1PAD, 0x20),

                    // Erase Block LUTs
                    [4 * 8 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8, RADDR_SDR, FLEXSPI_1PAD, 0x18),

                    // Pape Program LUTs
                    [4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x12, RADDR_SDR, FLEXSPI_1PAD, 0x20),
                    [4 * 9 + 1] = FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04, STOP, FLEXSPI_1PAD, 0x0),

                    // Erase Chip LUTs
                    [4 * 11 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60, STOP, FLEXSPI_1PAD, 0x0),

                    // Set Read Register LUTs
                    [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),
                },
        },
    .pageSize           = 256u,
    .sectorSize         = 4u * 1024u,
    .ipcmdSerialClkFreq = 0x1,
    .blockSize          = 64u * 1024u,
    .isUniformBlockSize = false,
};

You can see, the LUT, the dummy cycle have difference.

So, if you want to use the EVK demo to download to the EVKB, you need to modify the flexspi_nor_config.c code to the EVKB code.

In fact, I suggest you use the EVKB SDK directly, that will be more easy to you.

 

Wish it helps you!

If you still have quesiton about it, please kindly let me know.

If your question is solved, please help me to mark the correct answer to this case, just to close it.

Any new issues, welcome to create the new case, thanks.

Best Regards,

Kerry

 

0 项奖励
回复