Help!我的OKdo E1板挂断[已解决]
翻译自mark Embeddedpro的文章
或…使用OKdo E1板的MCUXpresso Clocks配置教程。
OKdo E1板上未安装的16 MHz晶体该怎么办? 适用于lpcxpresso55s69的MCUXpresso SDK中提供的许多示例都可以在E1板上正常工作。 “就是那样做的”。但是,那些使用BOARD_BootClockPLL150M()或BOARD_BootClock100M()时钟功能组的模块会挂在PLL初始化例程中。在调试会话中无需花费太多精力即可发现代码被卡在Clock驱动程序(fsl_clock.c,函数CLOCK_SetPLL0Freq())的while()循环中:
“使我的代码挂断”中的第一名:无人看管的while()循环 发生的是PLL未锁定。而且它没有锁定,因为它没有参考时钟。而且没有参考时钟,因为板上没有安装晶体。
解决方法非常简单……从内部时钟源而不是(丢失的)晶振提供对PLL0的引用。为了维持150 MHz的输出时钟,我们需要调整PLL乘法器和除法器的值,我将在我的视频教程3带有OKdo E1板的MCUXpresso Clocks Config教程中向您展示如何做到这一点。
在MCUXpresso时钟工具中创建一个新的功能组很简单(如果您知道“功能组属性”图标是“功能组:”下拉框右边的第二个):
功能组属性图标
我使用对话框创建了一个新的功能组,并将其命名为BOARD_BootClockFRO12_PLL_150MHz()。
新功能组:BOARD_BootClockFRO12_PLL_150MHz 由于该功能组将使用PLL0,因此必须启用它,因此必须将PLL0模式设置更改为“ Normal”。保存新的组[确定]后,我们可以在时钟图中对其进行编辑。
编辑150 MHz的PLL0配置 所做的更改是在PLLCLKSEL多路复用器中选择内部自由运行振荡器fro_12m。该工具将突出显示错误,因为现有的PLL0乘法器和除法器会生成非法的输出频率。我用更新的值–(/ 8 * 200)修复了该问题,以生成300 MHz的输出。最后,使用PLL0_PDEC分频器将其划分为范围,为芯片产生150 MHz的输出时钟。
与往常一样,我启用CLKOUT引脚,并将主时钟输出到一个引脚。显然,对于输出焊盘而言150 MHz太快了,我使用CLKOUTDIV为200,并且能够在时钟输出引脚上测量750 kHz。
就是这样。这是一个很容易找到和解决的问题(当您知道Clocks工具时)。我知道关于如何将MCUXpresso Config工具应用于这些LPC55xx板上的这些小技巧很普遍,所以下周再回来,当我开始在OKdo E1板上为气象站项目设置引脚时。
翻译有问题请大家指出。
|