erasing & writing external flash

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

erasing & writing external flash

3,640 Views
adi2Intel
Contributor III

Hi all

We are new on NXP and testing capabilities to use SPI methods to erase and write data on external flash chip.

 

our board designers have attached an external flash drive to the evaluation board (1050)as this :

adi2levy_0-1652799562969.png

 

which sdk example should we try in order to verify the capabilities? and what configurations need to be done on the software (IDE) ?

I have tried tried:

1. flexspi_hyper_flash_polling_transfer :

recieved this error :

adi2levy_1-1652799724066.png

no error on unmodified evaluation boards

2.flexspi_nor_polling_transfer :

get 0xff as vendor ID and a deadlock:

adi2levy_2-1652799969389.png

on unmodified evaluation boards we get a valid ID but also deadlock

3. flash_component_nor:

***NOR Flash Initialization Failed!*** on every board

 

any help and insights will be blessed!

if something is not clear please tell so I would try re-explain
thanks

Adi
Intel

 

Labels (1)
0 Kudos
Reply
11 Replies

3,630 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @adi2Intel 

  Which external flash chip you are using? Qspi flash or the hyperflash?

   If it is the QSPI flash, which is needed to test in the MIMXRT1050-EVKB, you need to modify the hardware at first:

OPTION1: USE Hyperflash( DNP R153~R158, Mount R356,R361~R366)
OPTION2: USE QSPI FLASH(Mount R153~R158, DNP R356,R361~R366)

Use option2, remove the on board QSPI flash.

Test project:

SDK_2_11_1_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\flexspi\nor\polling_transfer

Please note, different flash, different code.

Please try it on your side.

Best Regards,

Kerry

0 Kudos
Reply

3,607 Views
adi2Intel
Contributor III

Hi Kerry

Perhaps I was not clear enough:

We have connected our own QSPI flash device - not the on board flashes you have talked about - and we want to use some SPI features such as reading its JedecId and erasing the chip etc.

Adi from Intel

0 Kudos
Reply

3,601 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @adi2Intel 

   Yes, I know, from your picture, you are connect your external flash to the MIMXRT1050-EVKB board, right?

   Then, I want to check with you, as the NXP MIMXRT1050-EVKB is using the hyperflash in default. So, when you connect to the related pins, you need to check which package you are using, hyperflash or the QSPI flash, and different flash configuration is not the same.

   And you also need to remove the on board flash, just don't let it to influence your external flash.

  I checked your picture, in fact, I don't think that wire is good connection to make it works. It's better to connect your external flash to the on board package directly, if it is the QSPI flash, you totally can solder it to the U33 package.

 

Best Regards,

Kerry

0 Kudos
Reply

3,571 Views
adi2Intel
Contributor III

Hi Kerry

I want to begin with a default board as reference for start.

I am trying the FLEXSPI nor polling, with default unmodified board, without changing any configuration, trying to flash the hyperflash, and receive these results:


FLEXSPI example started!
Vendor ID: 0xf6
Erasing whole chip over FlexSPI...
Erase finished !
Erasing Serial NOR over FlexSPI...
Erase data - read out data value incorrect !

what needed to be done in order to pass this example with default board?

0 Kudos
Reply

3,567 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @adi2Intel ,

   Do you have a new MIMXRT1050-EVKB board?

  If yes, just run this code directly:

SDK_2_11_1_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\flexspi\hyper_flash\polling_transfer

  Run from RAM:

kerryzhou_0-1654505301995.png

Then everything will pass.

Please note, RT1050 default is hyperflash, not norflash(QSPI flash), just after you modify the resistor to QSPI flsh, then you need to use nor code:

SDK_2_11_1_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\flexspi\nor\polling_transfer

 

Best Regards,

Kerry

 

0 Kudos
Reply

3,564 Views
adi2Intel
Contributor III

Hi Kerry

Thanks for quick reply ! I succeeded with this example.

now for the modified board with external flash

my team removed the on board hyperFlash U19 and used the pins to attach our external flash, same one as before.

this configuration suppose to work? or we need to remove the QSPI on U33 and do the resistors rework?

reminder : we are testing single SPI capabilities such as reading JedecID, erasing chip etc.

adi2levy_1-1654513666159.png

these are the pins we want to configure for programming:

adi2Intel_0-1654515763031.png

 

Adi 

Intel

0 Kudos
Reply

3,556 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @adi2Intel ,

   Thanks for your effort.

   Now, let me confirm your aim at first.

   You want to use your external flash solder to the MIMXRT1050-EVKB board, and also boot from it directly, right?

   Which interface now, the following one? As your other post mentioned you want to boot from secondary pins. So, I am a little confusing about your issues now.

   From your new solder, I think you want like the the MIMXRT1050-EVKB on board flash, and boot it directly, right?

kerryzhou_0-1654572200277.png

 

Which detail points you are soldering now in the following picture?

kerryzhou_1-1654572215594.png

I checked your external flash, in fact, I think, you totally can solder it to the U33 package directly, it should be enough. And the pin should be the same as the U33 package, so I think you can use that package directly, then you don't need to fly wire to chip.

If you use the U33, then you need to use:

OPTION2: USE QSPI FLASH(Mount R153~R158, DNP R356,R361~R366)

SDK_2_11_1_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\flexspi\nor\polling_transfer

SW7:1-OFF,2-OFF,3-ON,4-OFF.

 

Wish it helps you!

Best Regards,

Kerry

 

 

 

 

0 Kudos
Reply

3,540 Views
adi2Intel
Contributor III

Hi Kerry

actually we are not testing  booting for this issue. we are not trying to boot from the soldering.

our device (that the NXP chip should be its MCU) is connected to boards with external flashes, erase them and program them using single SPI.

so my mission is to test these abilities.
the boot should be done from different flash and its for a different topic.

we want all the boot will  be done from flexSPI PORT A and not related to flexSPI PORT B usage.

 

So to our topic:

all the flashing I am talking about in this discussion should be made from flexSPI PORT B. therefore the pin configuration table i have sent on my previous message.
I am trying to run the flexSPI_nor_polling example because our flash is QSPI type
I have made these changes on flexSPI_nor_polling :

adi2Intel_0-1655017926821.png

and on iomux.h :

adi2Intel_1-1655017965770.png

but still example is failing (erasing). I believe there is something missing in the code because I can't see the  pins I configured reflect in the code besides in file "pin_mux.h"

I will be pleased for reading JedecId only for now. right now I get 0x0 

0 Kudos
Reply

3,527 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @adi2Intel ,

   Your reply is a little slow, and this post is opened for about one month, could you please create a new question post about it, as our one case can't open so long time, we can continue to discuss your issues in the new question post.

  Now, check your testing board:

1. your test board is the customer board, or the MIMXRT1050-EVKB board, just like your previous picture, which solders the related external flash pins to the related pin area?

2. About the testing code, you are testing modified flexSPI_nor_polling example, and it should run from the internal RAM, right?

When you modify the code to the B port, which detail area you have modified?

3. Please tell me do you leave this pin:

FLEXSPI_B_DQS, GPIO_SD_B0_05 as float?

If not, you need to modify the DQS loop from the internal side, and set the flexSPI frequency to 60Mhz.

Check datasheet, 4.5.2.1 FlexSPI input/read timing

Just let the flexSPI_nor_polling working from internal RAM at first, I mean, the erase, write, and read, etc.

You can create a new question post and provide all the related information in this post.

Especially, tell me how do you connect the external flash to B port, if it is the NXP MIMXRT1050-EVKB board, which detail point you are soldering? When you want to boot from A port flash, you are using hyperflash or the QSPI flash?

As you know hyperflash also need to use the B port, so it is conflict with your mentioned external flash.

Best Regards,

Kerry

 

 

 

0 Kudos
Reply

3,517 Views
adi2Intel
Contributor III
0 Kudos
Reply

3,515 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @adi2Intel ,

  Thanks for your cooperation!

   We will reply to you in your new post!

Best Regards,

Kerry 

0 Kudos
Reply