4 Replies Latest reply on Aug 29, 2012 1:12 AM by aniruddha.herekar

    PSoC3 EEPROM without EEPROM_Start yields CYRET_UNKNOWN

    bruce.horvath

       Going from ES2 to ES3 silicon apparently requires the EEPROM_Start() which calls CyEEPROM_Start() that turns on EEPROM power.    ES2 did not require the Start.   What worked under ES2 silicon stopped working with ES3. Suspect Low Power tweaking of the EEPROM.

         

      ES3 gives an CYRET_UNKNOWN (255) for EEPROM calls if EEPROM Power not Started. Wish the CyStatus could have been more explicit; would have saved me a quite few hours of intense debugging time.   Hope this saves somebody else some time.

         

      sequoiacpe

        • 1. Re: PSoC3 EEPROM without EEPROM_Start yields CYRET_UNKNOWN
          user_1377889

          sequoiacpe,

             

          thank you for sharing your experience with us!

             

           

             

          Bob

          • 2. Re: PSoC3 EEPROM without EEPROM_Start yields CYRET_UNKNOWN
            aniruddha.herekar

             Hi,

               

                  The EEPROM datasheet in Creator 2.0 (EEPROM v1.60) mentions about the APIs support. e.g.: For API EEPROM_Start(), it mentions that "This API is available only for PSoC 3 Production or later". PSoC 3 ES3 is production silicon.

               

            Also while using EEPROM and Flash APIs please don't forget to read System Reference Guide - section "Flash and EEPROM". It tells us that CySetTemp() API needs to be called once before executing a series of Flash / EEPROM writing functions.

               

            Regards, Aniruddha

            • 3. Re: PSoC3 EEPROM without EEPROM_Start yields CYRET_UNKNOWN
              bruce.horvath

               AND CySetFlashEEBuffer() is needed if not ECC enabled (which I suspect is the typical norm).

                 

              But my point was that EEPROM code that worked on ES2 probably will not work on ES3. And my latest look at EEPROM example projects (only 1 available) does not include the Start. Cypress should be more explicit when changing what is needed for operation when they make a significant change; and expand the cystatus to be more helpful to tell what is the true problem when any change obsoletes old workable code with new requirements. And test and update where required when a change effects an example project. 

                 

              sequoiacpe

              • 4. Re: PSoC3 EEPROM without EEPROM_Start yields CYRET_UNKNOWN
                aniruddha.herekar

                Hi,

                   

                     In PSoC Creator  2.0 Component Pack 3, I see that the example project clearly mentions that EEPROM start is for PSOC3 ES3 or later and also EEPROM_Start() API is called guarded by 'CY_PSOC3_ES3' define. Are you referring to some other PSoC Creator version/ build? Please note that PSoC3 ES2 device support has been removed from PSoC Creator 2.1 as PSoC3 ES3 is the production quality silicon. I suggest you to move to PSoC3 ES3 silicon.

                   

                     I agree that the status for most of the APIs does not clearly mention the reason for failure. I will try to convey your concern to the appropriate team. Thanks for your suggestion.

                   

                 

                   

                Regards, Aniruddha