11 Replies Latest reply on Mar 6, 2020 1:25 AM by ApurvaS_36

    S29GL128S90FHI010 不能擦除

    LiYu_4614546

      S29GL128S90FHI010 不能擦除,可以缓冲编程写全0,读出来全0。但是不能擦除,给的擦除命令之后,状态寄存器0X00并且RY引脚为低,经过几百微妙状态寄存器为0X80并且RY引脚变高,读出来还是全0,感觉是执行了擦除命令而未改变阵列数据。命令参照datesheet中命令页的表格执行。还有S29GL256S、S29GL512S、S29GL01GS都遇到这个难题。有人见过并解决了吗?

        • 1. Re: S29GL128S90FHI010 不能擦除
          ApurvaS_36

          Hi Li Yuanrong,

           

          Thank you for contacting Cypress Semiconductor.

          I would like to ask you a few questions -

          1. Are you able to read the correct Device ID for the mentioned devices?
          2. Are you facing this issue in all the sectors of the above mentioned devices or only specific sectors?
          3. Were you able to read the data as all FFh initially, before trying to program all 00h?
          4. Could you please let me know what controller/driver you are using?

           

          Best Regards,

          Apurva

          • 2. Re: S29GL128S90FHI010 不能擦除
            LiYu_4614546

            谢谢,阿普尔瓦

            我测试情况如下:

            1.可以通过ID ENTER或CFI ENTER命令读出闪存的大小。

            2.这个系列所有大小的都是一样的情况。

            3.写入之前读取数据为0XFFFF,缓冲编程0X5555后读出来正确,缓冲编程0XAAAA后读出来正确。

            4.使用的是测试系统,内部的同步图形发生器发出同步信号来控制闪存的每个管脚。

            5.单个字编程也不成功。写入单个字编程命令和擦除命令之后,RY管脚有相等时间的低电平,为250us左右。

            6,上电之前先让RESET/WP为低电平,CE/OE/WE为高电平,上电之后拉低RESET一段时间后拉高,让其复位。

            7.时钟频率尝试过200KHz/500KHz/1MHz。

            8.用示波器捕捉了发送编程和擦除命令时的电源,没有波动。

            9.总的来说,只有缓冲编程正常,读取ID正常,读取数据正常;单个字编程失败,块擦除失败,片擦除失败,字节编程和擦除时的状态寄存器是一样的,RY管脚变化是一样的。

             

            非常感谢您的回复,期待能够解决这个问题!

            • 3. Re: S29GL128S90FHI010 不能擦除
              ApurvaS_36

              Hi Li Yuanrong,

               

              Thank you for your reply.

              As per your reply, single word programming and erase operations are unsuccessful on your device, however you are able to perform write buffer programming and you are also able to read from the device without any errors.

              1. Could you please let me know if you are facing issues with word programming and erase operation in all the sectors of the device or only some specific sectors?
              2. Though we are not observing any kind of error bits being set in the status register, however I would still like to clarify whether any kind of sector protection has been enabled on the device?
              3. Could you please provide the full command sequence that you are following for word programming, write buffer programming, erase operation and read operation. If possible, can you provide your full code to us?

               

              Regards,

              Apurva

              • 4. Re: S29GL128S90FHI010 不能擦除
                ApurvaS_36

                Hi Li Yuanrong,

                 

                Our Low Level Driver for Parallel NOR Flash device is available on our website here - https://www.cypress.com/documentation/software-and-drivers/low-level-driver-nor-flash?source=search&cat=software_tools All the functions have been implemented in this driver. You can go through it and compare it with your code.

                 

                Best Regards,

                Apurva

                • 5. Re: S29GL128S90FHI010 不能擦除
                  LiYu_4614546

                  您好!

                  单个字编程以及擦除都没执行。

                  上电之后,读取PPB与DYB都为0X01显示未保护,无标题.png

                  • 6. Re: S29GL128S90FHI010 不能擦除
                    LiYu_4614546

                    这个“device base address in system”是什么?无标题.png

                    • 7. Re: S29GL128S90FHI010 不能擦除
                      ApurvaS_36

                      Hi Li Yuanrong,

                       

                      Thank you for the reply.

                      As you might be knowing, when a parallel flash is interfaced with any micro-controller the entire flash memory array gets mapped in the host system. base_addr is nothing but the base address of this memory mapping. offset is the offset address at which manipulations are to be made.

                       

                      In your previous reply on Dec 31st you have mentioned about the status of the RESET signal after power up. Could you please also tell us the status of the CE, OE, WP and WE signals after power up and while the word program and erase operations are being performed?

                       

                      Regards,

                      Apurva

                      • 8. Re: S29GL128S90FHI010 不能擦除
                        LiYu_4614546

                        您好!

                        通电之后将CE、WE、OE、WP、RS拉高到VCC。之后便执行单字节编程和擦除命令,命令与下图一样:QQ图片20200118091437.png

                        写每条命令的时候,CE与WE同时拉低,低电平过程中地址和数据都保持稳定,整个命令序列结束CE和WE返回高电平之后RY管脚有25微妙的低电平状态。在这个过程中没有使用地址偏移。

                         

                         

                        麻烦您了,谢谢!

                        • 9. Re: S29GL128S90FHI010 不能擦除
                          ApurvaS_36

                          Hi Li Yuanrong,

                           

                          Thank you for the reply.

                          In your previous replies, you have mentioned that the RY pin stays low for an equal amount of time (250us) after erase as well as word programming operation. I would like to point out (from the datasheet) that the typical time to erase a sector is 275ms. Since RY pin is not staying low for long enough, we can conclude that erase operation did not complete successfully.

                          1. Could you please read the Status Register value after erase and word programming operation and let us know the value?
                          2. Could you provide us the waveforms of the following signals - CE, OE, WE, any one address line and data line that is changing states.

                           

                          Best Regards,

                          Apurva

                          • 10. Re: S29GL128S90FHI010 不能擦除
                            LiYu_4614546

                            您好! 在擦除和字编程操作后阅读状态寄存器值为0X80。若在擦除之后进行Blank Check操作,则状态寄存器为0XA0;

                            • 11. Re: S29GL128S90FHI010 不能擦除
                              ApurvaS_36

                              Hi Li Yuanrong,

                               

                              Thank you so much for the update. I have a few questions -

                              1. Please check the Vio and ensure it is connected correctly. For S29GL128S90FHI010 part number Vio=Vcc=2.7~3.6V.
                              2. Please confirm whether the POR timing is being followed according to the datasheet. Can you capture the waveform for POR by oscilloscope?
                              3. What is the WP# pin status? Always at Vil? This may protect some parts of the flash.
                              4. is it possible to capture the waveform on flash pins during bulk erase or word program by using logic analyzer to see the timing during the operations?
                              5. If you don't have a logic analyzer, is it possible to capture at least the R/B#, WE#, CE# pins by oscilloscope during the word program or sector erase operations?
                              6. Can you please change the polling method from reading SR to polling DQ signals? DQ signals have more information. Please provide final DQs value after word program and sector erase for further debug

                               

                              Best Regards,

                              Apurva