cancel
Showing results for 
Search instead for 
Did you mean: 

Nucleo-H7S3l8 XSPI - Read device ID (RDID), read not returning data

Samiksha
Associate II

I am using Nucleo-H7S3l8 board which has STM32H7S3L8H6 MCU and Macronix NOR Flash MX25UW25645GXDI00. Using XSPI Interface, I am trying simple read device id command RDID. After I send the command, observed busy(BUSY of XSPI_SR) bit going high and FIFO level(FLEVEL of XSPI_SR) bit field with some value and both the both fields got cleared immediately and when I try to read from data register, got no data.

Can someone suggest what might have gone wrong or suggest a way so that I can get Device Id?

1 ACCEPTED SOLUTION

Accepted Solutions
KDJEM.1
ST Employee

Hello @Samiksha and welcome to the community,

 

Could you please check your XSPI configuration like as Chip select boundary (CSBOUND). The chip select boundary is configured depending on the memory datasheet. The chip select must go high when crossing the page boundary (2CSBOUND bytes defines the page size). and the dummy cycle.

Make sure that the FIFO threshold is set  to half of the FIFO size buffer to ensure that there is always sufficient space in the FIFO for receiving or sending.

Could you please share your XSPI configuration?

Thank you.

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

6 REPLIES 6
KDJEM.1
ST Employee

Hello @Samiksha and welcome to the community,

 

Could you please check your XSPI configuration like as Chip select boundary (CSBOUND). The chip select boundary is configured depending on the memory datasheet. The chip select must go high when crossing the page boundary (2CSBOUND bytes defines the page size). and the dummy cycle.

Make sure that the FIFO threshold is set  to half of the FIFO size buffer to ensure that there is always sufficient space in the FIFO for receiving or sending.

Could you please share your XSPI configuration?

Thank you.

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hello @KDJEM.1 

After changing CSBOUND Configuration, I could read device ID successfully in SPI mode.

As macronix memory also supports OPI mode commands, I am trying to read device ID using OPI mode command now. For that I am first writing configuration register 2 -> DTR OPI enable bit to 1 to enter into OPI mode. After that tried to read device ID using OPI mode commands, I am not receiving ID with that. Is there any different configuration required for that.

One observation is after enabling DTR OPI mode, if I configure IMODE, ADMODE, DMODE to 1 i.e  data on single line and read device ID then getting 0xFF as a result of read. If MODE, ADMODE, DMODE is set to 3 i.e  data on four lines, then getting 0x0 as a result of device ID read operation.

When I referred memory datasheet for WRCR2 command details, it says #CS should go high when clock is low while in SPI mode #CS should go lo at 8 bits boundary. Can you please guide on how can we have a control on #CS going high when clock is low?

Samiksha_0-1742299429544.png

 

Is there anything that I might be missing on for DTR OPI mode? Please suggest. Let me know if you require any more configuration details.

Thanks for the comment on CSBOUND, it helped a lot.

Thanks in advance.

KDJEM.1
ST Employee

Hello @Samiksha,

 

For DTR mode issue, I recommend you to refer to XSPI_NOR_ReadWhileWrite_DTR example and check your configuration.

This project is designed to run on the STM32H7S3xx device on the NUCLEO-H7S3L8 board from STMicroelectronics.

 

I hope this help you.

Thank you.

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hello @KDJEM.1 ,

I am referring to the project that you have mentioned and replicated the same settings but still no success.

Is it possible to connect with you or someone from ST regarding this? It would help better.

Thanks,

Samiksha

KDJEM.1
ST Employee

Hello @Samiksha,

 

I am referring to the project that you have mentioned and replicated the same settings but still no success.

->Are you able to run successfully the shared example without any modification? 

I recommend you to create a new post for DTR issue. 

Is it possible to connect with you or someone from ST regarding this? It would help better.

-> You can contact our Online support and one of our local FAE will be in touch with you on your application use case : https://ols.st.com/s/

 

Thank you.

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Are you able to run successfully the shared example without any modification? 

I recommend you to create a new post for DTR issue. 

--> I tried to directly load binary of the project, but it didn't seem to work. Also, replicated same settings in my project but no success.

Sure, will open new thread for DTR issue.

 

Thanks, I will get in touch with online support.

 

Thanks,

Samiksha