I am working with the TWR-K60F120M evaulation board. I am using IAR Systems as my IDE.
Each time I try to run one of the examples, like mqx/examples/hello or the TWR-K60F102M_Quick_Start_Demo, I hang on the following line of code in bsp_cm.c
while((MCG_S & 0x0CU) != 0x08U) { /* Wait until external reference clock is selected as MCG output */
}
I am using MQX 4.0.
Is there a patch or upgrade to fix this problem for the K60?
Hello Keith:
You might be facing the same issue described here:
Re: K10 crystal start problem at CW debug session
and here:
USB with the TWR-K60F120M and TWR-K70F120M | MCU on Eclipse
The workaround is to change MCG_C10[RANGE1] to 1 instead of 2. You will find this setting in the same bsp_cm.c
Regards!
Jorge Gonzalez
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Jorge - The code I have from MQX does not match the code from the code change from 'USB with the TWR-K60F120M...'
The USB code change also mentions changing MCG_C2. Is it necessary to change MCG_C2?
My code in bsp_cm.c was
/* MCG_C10: LOCRE2=0,??=0,RANGE1=2,HGO1=1,EREFS1=1,??=0,??=0 */
MCG_C10 = (uint8_t)0x2CU;
I changed it to
/* MCG_C10: LOCRE2=0,??=0,RANGE1=1,HGO1=1,EREFS1=1,??=0,??=0 */
MCG_C10 = (uint8_t)0x1CU;
Correct?
Also there are multiple settings of MCG_C10. Do they all have to be changed? or just the one prior to the hang?
Hi:
The USB code change also mentions changing MCG_C2. Is it necessary to change MCG_C2?
Mmm, I missed that, but yes, I think you need to change both.
Also there are multiple settings of MCG_C10. Do they all have to be changed? or just the one prior to the hang?
I see what you mean, there are references to MCG_C2 and MCG_C10 for different operating modes (PEE, PBE, FBE, etc.). These functions are of course not part of the initialization code, so it depends on which ones you will use in your application. I would change them all.
:smileyalert: Also please notice that due to the errata this problem apparently appears only when you are debugging, but should not affect in standalone mode.
Regards!
Jorge Gonzalez
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Unfortunately, these changes didn't fix the problem. I changed bsp_cm.c. I rebuilt the MQX libraries. I saw bsp_cm.c rebuild. I rebuilt the MQX 'hello world' example.
I hang in the same location.
MCG_C10 is 0x1C and MCG_C2 is 0x11. The original code had MCG_C10 set to 0x2C and MCG_C2 set to 0x21.
Hi
Do you have an external clock source connected to the processor?
Check the jumpers according to the table on page 9 of http://www.utasker.com/docs/KINETIS/uTaskerV1.4_Kinetis_demo.pdf
Regards
Mark