Memory retention during warm power-on reset when PROCOND.RAMIN is set to Init_Cold

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

cross mob
User19005
Level 1
Level 1
Hi,

I configured DSPR as non-volatile memory, referencing this thread on my Tricore TC277 TFT Application Kit.
Now I doubt whether DSPR retention is always guaranteed even though the PORST signal (i.e., warm power-on reset) is prolonged. (in my board, holding \PORST button long time)
From my observations, wrong behavior did not occur but I am concerned about that.
TC27X User Manual only notes setting PROCOND.RAMIN to Init_Warm is not recommended, in other hand, setting the field to No_Init or Init_Cold is not warning.
Of course, I understand No_Init does not mean SRAM or cache become non-volatile; it means erase operation is not performed on SRAM or cache.
So I am not clear that setting PROCOND.RAMIN to Init_Cold makes DSPR non-volatile during warm power-on reset.

How long the contents of the DSPR retain safely while PORST signal lasts?

Best Regards,

syjung
0 Likes
4 Replies
cwunder
Employee
Employee
5 likes given 50 likes received 50 solutions authored
syjung wrote:
I configured DSPR as non-volatile memory, referencing this thread on my Tricore TC277 TFT Application Kit.

It is not possible to configure the DSPR as non-volatile memory, DSPR is SRAM and as such it is volatile memory.and requires a minimum voltage level to maintain its contents.

syjung wrote:
I doubt whether DSPR retention is always guaranteed even though the PORST signal (i.e., warm power-on reset) is prolonged. (in my board, holding \PORST button long time).

DSPR retention is not affected by the PORST signal level. The PORST pin is a bidirectional reset in/output intended for external triggering of power-related resets. If the PORST pin remains asserted after a power event then the reset will be extended until it is deasserted.

A cold “power-on” reset is a reset which is triggered for the first time during a system power-up or in response to a temporary power failure.
A warm reset is a reset which is triggered while the system is already operational and the supplies remain stable.

syjung wrote:
TC27X User Manual only notes setting PROCOND.RAMIN to Init_Warm is not recommended, in other hand, setting the field to No_Init or Init_Cold is not warning.

Any RAM that is ECC protected must be initialized before it is read to set the ECC bits. The system will see a cold reset before a warm reset thus with a cold reset you need to initialize the SRAM by writing to it so that the ECC is also calculated and written. If you only do this on a warm reset hence the warning.

syjung wrote:
I understand No_Init does not mean SRAM or cache become non-volatile; it means erase operation is not performed on SRAM or cache.

No_Init means the SRAM is not written by the Startup Software (SSW). When SRAM is powered up (cold "power-on") the state of the bit is undetermined.

syjung wrote:
So I am not clear that setting PROCOND.RAMIN to Init_Cold makes DSPR non-volatile during warm power-on reset.

PROCOND.RAMIN is part of a construct that the SSW evaluates to determine if must write to the SRAMs

To maintain the contents of SRAM through a warm reset you would only need to configure the PROCOND.RAMIN to Init_Cold along with the PROCOND.RAMINSEL settings and understand that the SSW can use SRAM area's for its use (so you cannot maintain you values there). It also means in all cases you are expected to clear this memory on your own. In addition, you need to understand how to define this data in an uninitialized data segment via your toolchain.

syjung wrote:
How long the contents of the DSPR retain safely while PORST signal lasts?

In principle the contents DSPR are maintained (provided the voltage is maintained and not used by the SSW) indefinitely while the PORST signal is asserted for a warm reset and the RAMIN is set to Init_Cold.
0 Likes
User19005
Level 1
Level 1
Thank you for your fast and detailed response.

cwunder wrote:
In principle the contents DSPR are maintained (provided the voltage is maintained and not used by the SSW) indefinitely while the PORST signal is asserted for a warm reset and the RAMIN is set to Init_Cold.


This relationship is exactly what I would like to know.
TC27X User Manual just describes during power-on reset SSW makes the contents of RAMs undefined.
As you mentioned, however, SSW does not change the voltage setting, the contents are maintained when PROCOND.RAMIN is set to Init_Cold.

Issue resolved.
0 Likes
User20053
Level 1
Level 1
I to need to keep RAM content for a TC234LP over PORST resets. But in the user manual the register RAMIN/RAMINSEL is marked as "rh" and if I try to write to it the debugger loses connection with the uC. How do I change this register?
0 Likes
cwunder
Employee
Employee
5 likes given 50 likes received 50 solutions authored
olowo726 wrote:
I to need to keep RAM content for a TC234LP over PORST resets. But in the user manual the register RAMIN/RAMINSEL is marked as "rh" and if I try to write to it the debugger loses connection with the uC. How do I change this register?

You must modify the UCB DFlash for this to change.
4559.attach
0 Likes