Site icon volt.tech

Renesas RA6M4 sub clock not working – bug fix.

There is an issue in the startup code for the Renesas RA6M4. The sub clock was configured as populated on the EK-RA6M4, but it would not work. When I stepped through the startup code, I found out why: in bsp_clocks.c: #if BSP_CLOCK_CFG_SUBCLOCK_POPULATED /* If the board has a subclock, set the subclock drive and start the subclock if the subclock is stopped. If the * subclock is running, the subclock drive is assumed to be set appropriately. */ if (R_SYSTEM->SOSCCR) <- This line prevents configuring the SOMCR because SOSCCR is 0 at reset /* Configure the subclock drive if the subclock is not already running. */ R_SYSTEM->SOMCR = ((BSP_CLOCK_CFG_SUBCLOCK_DRIVE << BSP_FEATURE_CGC_SODRV_SHIFT) & BSP_FEATURE_CGC_SODRV_MASK); R_SYSTEM->SOSCCR = 0U; #if (BSP_CLOCKS_SOURCE_CLOCK_SUBCLOCK == BSP_CFG_CLOCK_SOURCE) || (BSP_PRV_HOCO_USE_FLL) /* If the subclock is the system clock source OR if FLL is used, wait for stabilization. */ R_BSP_SoftwareDelay(BSP_CLOCK_CFG_SUBCLOCK_STABILIZATION_MS, BSP_DELAY_UNITS_MILLISECONDS). Once I commented the if statement, the sub clock was configured properly and started oscillating. Perhaps it was intended that at some point the sub clock should be disabled (set to 1) prior to configuring it, but I don’t see where anything disables it unless the option is left as “not populated”.

Exit mobile version