- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm currently bringing up a custom board which uses the S25FS512SAGNFI011 NOR Flash NVM as a flash memory device. Due to a demand for pins on the processor, the QSPI interface between it and the flash device only supports single-bit or dual I/O mode. The physical layout of the QSPI interface and other connections is identical to that of another working board that was used as a close reference.
At this time, I've tested two boards that exhibit the same behavior; I can't get the flash device to read out any non-zero data. The Serial Out signal will stay perpetually low no matter which instructions I send. Some examples:
1) RDID command to read from ID-CFI address space.
2.a) WREN command to set SR1V[1] (WEL bit).
2.b) Subsequent RDSR1 command to read SRV1.
I have checked the power, control, and data signals on an oscilloscope. All signals are at proper thresholds. VCC remains at 1.8V and never drops below VCC(min) or VCC(cut-off) during operation. Everything seems to match the timing requirements too. Nothing in particular stands out to me other than that the signals seem to be tri-stated when the CS isn't asserted.
It worries me that CS# does not follow VCC during power-up, but I perform hard and soft resets which should ensure proper initialization.
I've also tried sending the RES command in case the device is in the deep power-down state.
There may be the possibility that the device was pre-programmed to default into QPI mode, in which case it wouldn't recognize my single-bit instructions. The physical interface of my board doesn't allow me to send quad I/O mode instructions, but I'm seeing if I can find a workaround to test for this.
Any insight or suggestions are appreciated!
Solved! Go to Solution.
- Tags:
- qspi flash
- s25fs512s
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Problem Solved
It turned out that there was a discrepancy between the schematic and the PCB layout. Essentially, the flash device never had a reference GND due to the VSS pad not actually being connected to the rest of the GND plane.
Regrettably, we had overlooked checking continuity between the GND to the part and board GND. After an easy modification to our board, the part works as expected.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Alex,
Thank you for contacting Cypress Community Forum. We are reviewing your issue and will get back to you as soon as we find the resolution.
Regards,
Bushra
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The S25FS512 is a 1.8V device, so your logic analyzer needs to use the correct thresholds (and your board too). You also should double-check that MISO and MOSI are connected correct. The last thing (although difficult to check): could it be that the Flash chips are in Quad mode on powerup (this is a non-volatile setting in the config registers)?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, VCC and logic high signals are 1.8V. The 900mV displayed on the LA screen is just the trigger level.
Serial In/Out is connected correctly.
I've acknowledged that it could be in QPI mode, and am working on a way to check.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Alex,
If at all possible, please read the value of the S25FS512S Status and Configuration registers.
Default (factory) values are as follows :
SR1NV = 00h
CR1NV = 00h
CR2NV = 08h
CR3NV = 02h
Please provide the Status and Configuration register values at your earliest convenience
Best regards,
Albert
Cypress Applications Support
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry, I cannot. The flash device is just as unresponsive to the RDAR command as any other command so only 0s are read on Serial Out. This goes for all volatile and non-volatile Status and Configuration registers.
On another note, the datasheet states that the "Initial Delivery State" of CR3NV is 0h, contradictory to the "Default State" of 2h. Which one is correct?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Update:
I replaced the flash device on my custom board with an identical one from a working reference board. However, the same behavior presented itself--now the flash device that used to be working is reading all zeros.
Here are two scope captures showing the RDID command given to my custom and reference boards, which have the same connections from the same processor to the same flash device. Please excuse the noise caused by the signals bleeding into each other; you'll have to trust me that the signals are stable when individually measured.
Reference Board (RDID with valid response - CS, SCK, SI, SO)
Custom Board (RDID with zeros response - CS, SCK, SI, SO)
I'll recheck all other signals just in case, but I bet they'll be within parameters as well. The only notable difference that I've encountered is the fact that the SI seems to be tri-stated when CS is deasserted and SO doesn't seem to be driven quite to zero.
I can't rule out the possibility that the flash device was damaged during the transplant, but could it also be that my custom board is somehow bricking the parts somehow?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
> I replaced the flash device on my custom board with an identical one from a working reference board. However, the same behavior presented itself--now the flash device that used to be working is reading all zeros.
Now the question is: if you place the non-working device on the working board, does if function there correctly? What you are writing indicates that the problem is with the board, and not with the devices.
From the scope shots above, the CS line on the second boards looks much noisier that the other one. I would even go so far as to say that it probably goes to '1' inbetween, invalidating the whole transaction. There seems to be much more ringing in the other signals too. Maybe the PCB traces are too long, maybe you need some termination resistors.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We're currently investigating a bunch of items, and testing the working board with non-working flash device is on the list. I'll provide an update when that happens.
Regarding the signal quality, I think it's caused by poorly grounded probes since the noise is only present when using all four simultaneously. Here's how a single signal appears:
The bouncing following an edge is reduced by using a probe tip ground pin. I don't have a capture of just chip select on hand at the moment, but you'll have to trust me that it looks okay
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Problem Solved
It turned out that there was a discrepancy between the schematic and the PCB layout. Essentially, the flash device never had a reference GND due to the VSS pad not actually being connected to the rest of the GND plane.
Regrettably, we had overlooked checking continuity between the GND to the part and board GND. After an easy modification to our board, the part works as expected.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Out of curiosity: if this was the problem, then why does it work in some cases?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We had two sets of boards, our custom ones and reference ones. The reference boards were commercially available from NXP, while our custom boards were designed by another contractor and passed to us for bring-up. Only our custom boards that displayed the issue.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Alex,
This is certainly good news...
From the waveforms you had provided, the issue may appear to be a grounding issue fro mall the noise captured.
However, in regards to intermittent operation there may have been some kind of marginal circuit capacitance on
the PC board and/or within the S25FS512S FLASH device which may have given the false indication that the
FLASH and PC board were actually operating correctly, when in fact, there was no solid connection from the VSS
pin to the PC board GND plane.
Glad to know it is now working.
Best regards,
Albert