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

PSoC™ Creator & Designer Forum Discussions

GeEd_1216226
Level 4
Level 4
25 replies posted 10 replies posted 5 replies posted

I am a newbie to management of Em_EEPROM/Flash and trying to get a handle on how best to store/retrieve data.  I have the processes for read/write figured out, but management is the question.

I understand that the PSoC6 Em_EEPROM is byte-addressable.  I have a data set that I need to manage, about 800 records of 10 bytes each that I also need to be able to search and update where required.  Just wondering how best to store the data, whether I should have a 3D array of 80 Rows, each row containing 10 x 10-byte records.

Does anyone have examples of 2D/3D  EEPROM data management?  Is there such method for the above example of having eeArray for example and being able to pack the data as I mentioned above?  Or should I just go eeArray[0-800][0-9] ?  How do I stipulate where the data actually goes?  Is it sequential into the memory space, or do these arrays get recorded in individual rows?

When searching through the data, do I need to figure out the physical addresses, or is this done by reference to my array configuration?  eg eeArray[7][6] sufficient to retrieve the data?

0 Likes
1 Solution
Alakananda_BG
Moderator
Moderator
Moderator
50 likes received 250 sign-ins 250 replies posted

Hi,

In PSOC 6 EEPROM is byte-addressable and Em_EEPROM/Flash is row wise addressable i.e. if you want to change a byte you have to erase the entire row and do the same. You can refer the component datasheet for more information.

I have attached a example project with 2D/3D array implementation.

You can look at it and let us know if that is helpful.

Regards

Alakananda

Alakananda

View solution in original post

0 Likes
2 Replies
Alakananda_BG
Moderator
Moderator
Moderator
50 likes received 250 sign-ins 250 replies posted

Hi,

In PSOC 6 EEPROM is byte-addressable and Em_EEPROM/Flash is row wise addressable i.e. if you want to change a byte you have to erase the entire row and do the same. You can refer the component datasheet for more information.

I have attached a example project with 2D/3D array implementation.

You can look at it and let us know if that is helpful.

Regards

Alakananda

Alakananda
0 Likes

Thanks for your help.  That is precisely what I was after, but I was under the impression that Em_EEPROM was also byte addressable.  I guess I can read it byte-wise though. 

I will have a close look at it in the next day or so and see if this gets me to where I need to go.  Thanks for your prompt response.

0 Likes