PSOC6 error due to extclk chnage from IMO clock in modustoolbox 3

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

cross mob
lock attach
Attachments are accessible only for community members.
conradc2380
Level 4
Level 4
25 replies posted 10 questions asked 25 sign-ins

Hi ,

 

I converted a custom modustoolbox 2.4 dual-core empty design which worked to a modus toolbox v3 . the system uses an external TCXO  48 MHz with 2.5 ppm for stability over temperature and the tolerances required for USB which in modus 2.4 was not achievable with the internal 8mhz IMO , both cores running at 100mhz and pll setup for USB .

test one

to see if the system still performs good the device configurator is used to set the clocks first to the IMO 8Mhz,  kept the rest of the clocks the same, and the LEDs in both cores functioned as expected

test two

Changed from the internal IMO to the External 48 Mhz TCXO and kept the rest the same .  I set up the P0.0 as a digital input , impedance high as stipulated but the HW design guide . WCO is disabled and the low clock frequencies are set to the ILO clocks

Code compiles fine but uploadeing to the device is get an DP initialization failure , from my search on the WEB this seems to indicate a SWJ block . However I don't think this is the case here because if I change the clocks back to the internal IMO clock this goes away and the device can be programmed. It points to the potential problem of the external clock . 

the Scope shows the clock is oscillating at the correct frequency , which makes me wonder what else needs to be done for this to be able to work from the TCXO .

Attached is the screen grabs and the software .

 

Any advise here for the use of the external TCXO

Regards

C

 

0 Likes
1 Solution
Ekta
Moderator
Moderator
Moderator
750 replies posted First like given 250 solutions authored

Hi @conradc2380 

In your first response, you mentioned that you are using USB in your design. But in the screenshot you shared in your previous response it seems that the USB peripheral has not been enabled in the design configurator. Therefore you are not seeing trim with USB option in your  IMO configuration.

Make sure you have USB enabled and configured under the peripherals tab:

Ekta_0-1667975485858.png

After doing this you should be able to see trim with USB under the IMO settings. This option uses USB start of frames for trimming the IMO clock.

When you are using EXTCLK instead of IMO make sure the source of you PATH_MUX0 and PATH_MUX1 is EXTCLK as these go to FLL and PLL respectively. Use FLL to generate 100Mhz and 48 MHz (for USB). Use FLL  as source for  HF clock paths that need to be run at 100Mhz and use PLL as source of HF_CLK3 which is suorce for USB.

I tried making this change in my project. Building and programming does not cause any error in my case.

Could you please let me know when you are seeing this error. From the screenshots attached it seems to occur after programming has been completed. Are you trying to debug the project? 

Best Regards
Ekta

 

 

 

View solution in original post

0 Likes
5 Replies
lock attach
Attachments are accessible only for community members.
conradc2380
Level 4
Level 4
25 replies posted 10 questions asked 25 sign-ins

Project is attached for review

0 Likes
Ekta
Moderator
Moderator
Moderator
750 replies posted First like given 250 solutions authored

Hello @conradc2380 

You have mentioned that it is not possible to generate a clock for USB (which requires a clock of 48 MHz +/- 0.25 percent accuracy). But actually it is possible to run the USB using only IMO. For this you would need to set the IMO to trim with USB setting as can be shown in the image below:

Ekta_0-1667809023408.png

 After this chose the PLL input as IMO and set the PLL frequency as 48 MHz (this will make the accuracy of PLL as 0.25 perecent). 

Ekta_1-1667809232211.png

Then you can choose clock path 1 (Coming from PLL) as source of HF_CLK 3 (this clock goes to USB).

Ekta_2-1667809301694.png


For generating a 100MHz clock you can choose FLL (which goes to clock path 0) and route it to the desired clock paths.

Ekta_4-1667809476921.png

 

The diagram below will help with the understanding of the clock paths

Ekta_3-1667809423655.png

Could you please let me know if the above configuration would work for you?

Best Regards
Ekta

0 Likes

Hi Ekta,

Thanks for this feedback, This is great and was not something I could do with Modustoolbox2.4 it complained about the settings changes. So it's an improvement on version 3.

As for the Problem , it still an issue as this will be used in a relatively higher temperature environment, which will cause drifting of the clock, adding aging and stability issues with the internal IMO (which if I remember correctly is an RC Clock) so to get this running with a TCXO is important on the EXCLK input .

Regards

C

0 Likes

Hi ,

 

I followed the layed out pictures but the IMO in my config does not seem to support Trimming as the image below would show, is this something we can do in code level?

 

conradc2380_0-1667924651574.png

regards

Conrad

0 Likes
Ekta
Moderator
Moderator
Moderator
750 replies posted First like given 250 solutions authored

Hi @conradc2380 

In your first response, you mentioned that you are using USB in your design. But in the screenshot you shared in your previous response it seems that the USB peripheral has not been enabled in the design configurator. Therefore you are not seeing trim with USB option in your  IMO configuration.

Make sure you have USB enabled and configured under the peripherals tab:

Ekta_0-1667975485858.png

After doing this you should be able to see trim with USB under the IMO settings. This option uses USB start of frames for trimming the IMO clock.

When you are using EXTCLK instead of IMO make sure the source of you PATH_MUX0 and PATH_MUX1 is EXTCLK as these go to FLL and PLL respectively. Use FLL to generate 100Mhz and 48 MHz (for USB). Use FLL  as source for  HF clock paths that need to be run at 100Mhz and use PLL as source of HF_CLK3 which is suorce for USB.

I tried making this change in my project. Building and programming does not cause any error in my case.

Could you please let me know when you are seeing this error. From the screenshots attached it seems to occur after programming has been completed. Are you trying to debug the project? 

Best Regards
Ekta

 

 

 

0 Likes