This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Skipping the PLL initialization completely in RM48L952ZWT

Other Parts Discussed in Thread: HALCOGEN

HI Bob, Anthony suggested that I post this question in the forum, as you are the expert in this area. Anthony phased the following question:

I would just tell him that you: 

  a) understand there is a PLL errata

  b) don't need to use the PLL because you are directly running from the oscillator input at 20MHz.

  c) would like to know what settings in HalCoGen can be used to completely skip the PLL initialization  (so you avoid having any chance of waiting for it to lock when it may not...)

  • Hi Sarah,

    Yes, HALCoGen wants to set the PLL even if you don't use it. Here is how I bypassed it.

    First I choose to only use OSC on the GCM tab in HALCoGen. I highlighted the changes in yellow.

    But HALCoGen still wants to enable the PLL. Therefore I added "#if 0", "#endif" around the call to setupPLL() in the file system.c.

    void systemInit(void)
    {
    	uint32 efcCheckStatus;
    
    /* USER CODE BEGIN (15) */
    #if 0
    /* USER CODE END */
    
    	/* Configure PLL control registers and enable PLLs.
    	 * The PLL takes (127 + 1024 * NR) oscillator cycles to acquire lock.
    	 * This initialization sequence performs all the tasks that are not
    	 * required to be done at full application speed while the PLL locks.
    	 */
    	setupPLL();
    	
    /* USER CODE BEGIN (16) */
    #endif
    /* USER CODE END */
    
    	/* Run eFuse controller start-up checks and start eFuse controller ECC self-test.
    	 * This includes a check for the eFuse controller error outputs to be stuck-at-zero.
    	 */
    	efcCheckStatus = efcCheck();