The following functions set incorrect values for RAM trim:
What are the causes and how do I correct them?
There is a defect in the cy_syspm.c source code file. After calling Cy_SysPm_LdoSetVoltage(), Cy_SysPm_BuckEnable(), or Cy_SysPm_BuckSetVoltage1(), the RAM trim is set with an incorrect value. This can potentially cause hard faults.
Update the CPUSS_TRIM_RAM_CTL register value each time after calling the Cy_SysPm_LdoSetVoltage(), Cy_SysPm_BuckEnable(), and Cy_SysPm_BuckSetVoltage1() functions (could be in the main.c file):
For ULP (0.9 V):
CPUSS_TRIM_RAM_CTL = 0x6012
For LP (1.1 V):
CPUSS_TRIM_RAM_CTL = 0x4013
The problem has been addressed in version 4.40 of the syspm driver (psoc6pdl-1.3.1).