12 Replies Latest reply on Apr 2, 2018 3:25 PM by asbr

    S25FS512S unresponsive to instructions

    alexjee_3252821

      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.

      CMD_Read_Identification.png

       

           2.a) WREN command to set SR1V[1] (WEL bit).

      2_WREN.png

           2.b) Subsequent RDSR1 command to read SRV1.

      4_RDSR1.PNG

       

       

      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!

        • 1. Re: S25FS512S unresponsive to instructions
          buha

          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

          • 2. Re: S25FS512S unresponsive to instructions
            user_78878863

            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)?

            • 3. Re: S25FS512S unresponsive to instructions
              alexjee_3252821

              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.

              • 4. Re: S25FS512S unresponsive to instructions
                asbr

                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

                • 5. Re: S25FS512S unresponsive to instructions
                  alexjee_3252821

                  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?

                  • 6. Re: S25FS512S unresponsive to instructions
                    alexjee_3252821

                    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)

                    FRDM_RDID_CS-CLK-SI-SO.png

                    Custom Board (RDID with zeros response - CS, SCK, SI, SO)

                    WDC_RDID_CS-CLK-SI-SO.png

                     

                     

                    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?

                    • 7. Re: S25FS512S unresponsive to instructions
                      user_78878863

                      > 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.

                      • 8. Re: S25FS512S unresponsive to instructions
                        alexjee_3252821

                        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:

                        signal_SI-IO0_1.png

                         

                        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

                        • 9. Re: S25FS512S unresponsive to instructions
                          alexjee_3252821

                          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.

                          • 10. Re: S25FS512S unresponsive to instructions
                            user_78878863

                            Out of curiosity: if this was the problem, then why does it work in some cases?

                            • 11. Re: S25FS512S unresponsive to instructions
                              alexjee_3252821

                              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.

                              • 12. Re: S25FS512S unresponsive to instructions
                                asbr

                                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