Emulated EEPROM on PRoC

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

I have to use some persistent memory for a project I am working on and haven't had to do this before on PSoC. Everything I saw points to using the Emulated EEPROM component to store it in flash on PSoC 4. However, the Emulated EEPROM component isn't available when developing for PRoC. Is there something PRoC is missing that is required for this component. It sounds like just a software API on top of flash.

   

I am working around it by making direct flash memory write calls. This has been working fine so far. I don't see a way to reserve flash memory so that my program code doesn't overwrite it but so far it is small enough that it hasn't been a problem. It would be good to use the same components across devices as much as possible. What is different about the PRoC that would prevent this from working?

0 Likes
5 Replies
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

I cannot find a project where this was done. In TRM, Section F, there is a

   

discussion on FLASH calls for programming -

   

 

   

   

 

   

Regards, Dana.

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Another approach using supervisory flash -

   

 

   

    

   

          http://www.cypress.com/?rid=110097

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

 I didn't know about the supervisory flash before. That could come in handy.

   

I ended up trying an experiment. While the IDE won't let me use the EmEEProm component, I was able to use it on a PSoC4 project and copy the generated files over to a PRoC project. This worked. I was able to run the Cypress example project both on the PSoC4 and PRoC with the generated files. So even though the IDE doesn't think it is supported, it works identically. This makes sense since it is just a software wrapper over other API calls.

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Thats good news, thanks for posting back.

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

I did some test on the PRoC BLE (CYBL10563-56LQXI).
 
1) Copy the Em_EEPROM.c and .h from the example code of CE95313 to my project. If my project does not call the CyBle_Start(), the Em_EEPROM_Write() can store data into the flash. But if the project calls the  CyBle_Start(),  Em_EEPROM_Write() cannot store data into the flash. The return code is still SUCCESS.
 
2) Calling CyBle_StoreAppData() also can store data into the flash. (My chip has 128K flash, so I set the IMO to 48MHz in my project.)
 

0 Likes