M8C_Reset - CY8C29666-24ltxi

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

cross mob
BeMa_291901
Level 1
Level 1

Hello,

   

I'm working on a project with CY8C29666-24LTXI.

   

I'm trying to reset the psoc with the macro M8C_Reset.

   

After the reset, the IMO clock of the psoc is out of tolerance, not calibrate.

   

Have you an explanation?

   

Condition of use:

   

U = 3.3V

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

Also found this in tech reference manual -

   

 

   

8.3.1 Trimming the IMO

   


An 8-bit register (IMO_TR) is used to trim the IMO. Bit 0 is
the LSB and bit 7 is the MSB. The trim step size is approxi-
mately 80 kHz.

   


A factory trim setting is loaded into the IMO_TR register at
boot time for 5V ± 0.25V operation, except for the
CY7C603xx, which is 3.3V ± 0.25V. For operation in the volt-
age ranges of 3.3V ± 0.3V and 2.7V ± 0.3V, user code must
modify the contents of this register with values stored in
Flash bank 0 as shown in  Table 3-11 on page 77. This is
done with a Table Read command to the Supervisory ROM.

   

 

   

Regards, Dana.

View solution in original post

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

This might help -

   
   

     www.cypress.com/?docID=33577

   
   

Your measurement of IMO occurs after settling times ?

   

Regards, Dana.

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

Are you performing an XRES(from technical manual) -

   

 

   

29.4.2 External Reset

   

An External Reset (XRES) is caused by pulling the XRES
pin high. The XRES pin has an always-on, pull down resis-
tor, so it does not require an external pull down for operation
and can be tied directly to ground or left open. Behavior after
XRES is similar to POR.

   

During XRES (XRES=1), the IMO is powered off for low
power during start-up. Once XRES deasserts, the IMO is
started (see Figure 29-4). How the XRES configures register
reset status bits is shown in Table 29-1.

   

 

   

Regards, Dana.

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

Also found this in tech reference manual -

   

 

   

8.3.1 Trimming the IMO

   


An 8-bit register (IMO_TR) is used to trim the IMO. Bit 0 is
the LSB and bit 7 is the MSB. The trim step size is approxi-
mately 80 kHz.

   


A factory trim setting is loaded into the IMO_TR register at
boot time for 5V ± 0.25V operation, except for the
CY7C603xx, which is 3.3V ± 0.25V. For operation in the volt-
age ranges of 3.3V ± 0.3V and 2.7V ± 0.3V, user code must
modify the contents of this register with values stored in
Flash bank 0 as shown in  Table 3-11 on page 77. This is
done with a Table Read command to the Supervisory ROM.

   

 

   

Regards, Dana.

0 Likes
BeMa_291901
Level 1
Level 1

I don't use the external reset. 

   

To reset the psoc, I use the macro M8C_Reset who is:

   

asm("mov A, 0\nSSC");

   

 

   

So, it calls the Supervisory System Call SSC with 0x00 in accumulator.

   

It dones a "SWBootReset".

   

So the firmware start with the "boot.asm" (inside, there is the call to load the Trim value of the clock, I think??).

   

 

   

I check the clock few seconds after the psoc is reset, so the clock must be stable (and is stable).

   

The issue is that the clock is not 24MHz but about 26MHz.

   

Thanks for your help.

   

(I resolve the problem by a POR : I say to the PSOC that the power is 5V and it does a POR:

   

 

   

M8C_DisableGInt;

   

//M8C_Reset; //BUG find after reset, clock 24MHz is false

   

VLT_CR=0x1B;

   

while(1){

   

}

0 Likes
Anonymous
Not applicable

There was issue with M8C_reset. The solution is simple. Just reset MVI pointers before doing software reset as shown below-

   

MVR_PP = 0x00;  //MVI read pointer

   

MVW_PP = 0x00; //MVI write pointer

   

M8C_Reset;

   

 

   

regards,

   

Rajiv Badiger

0 Likes