Jump to content

[solved] DCO stops when RSELx = 0xF

Recommended Posts


//DCO 1MHz
if(CALDCO_1MHZ == 0xFF || CALBC1_1MHZ == 0xFF){
	P1OUT |= BIT0;
} else {
BCSCTL1 = 0x8F;

Can anyone reasonably explain to me why setting all bits of RSELx stops DCO in this configuration? I've found this when implementing random number generator based on drift of VLO and DCO clocks. It took me 3 hours to finally figure out that it was crashing my almost finished app :P.


Thx in advance.

Link to post
Share on other sites

See errata page 3.


Function Switching RSEL can cause DCO dead time

Description After switching RSELx bits (located in register BCSCTL1) from a value of >13 to a value of <12 OR from a value of <12 to a value of >13, the resulting clock delivered by the DCO can stop before the new clock frequency is applied. This dead time is approximately 20 ms. In some instances, the DCO may completely stop, requiring a power cycle.



Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...