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.

请问改时钟频率除了改倍频分频的数值以外,还要改哪些参数呢?



我的原理图是30mhz晶振,结果板子上是25的,我用官方例子6倍频以后,总是出现各种错误是怎么回事啊?还需要改其他地方吗,请帮帮我,纯新手,谢谢

  • 还有,怎么测试我的晶振呢,求教,谢谢大家

  • 新手真的不容易啊……
  • 频率是有一定范围的    同时也不是说最高频率为200M

    那么200M以下都可以随便用   是有一定的规律的

    MCU的外设较多   并且不同的外设有不同的频率   你设定的不寻常频率可能

    造成某一个外设出现问题

  • 最好的办法就是用示波器看看out脚有没有波形输出 

    如果没有示波器  那么用万用表看看波形输出引脚的直流电压

    一般为1.2V左右为正常     只是我的一点经验  供参考

  • 有示波器,问题是程序跑不对也可以测时钟吗?程序总出问题呐

  • 你导入一个TI官网的历程,里面就会有配置时钟的历程:

    一般在InitSysCtrl(); 里面

    // Select Internal Oscillator 1 as Clock Source (default), and turn off all unused clocks to
    // conserve power.
    IntOsc1Sel();  // 配置时钟源,你可以先用内部时钟先测试一下

    // Initialize the PLL control: PLLCR and CLKINDIV
    // DSP28_PLLCR and DSP28_CLKINDIV are defined in F2806x_Examples.h
    InitPll(DSP28_PLLCR,DSP28_DIVSEL); //分频,这个配置后系统就输出xxMHz的SYSCLKOUT

    如果你要验证一下你配置的SYSCLKOUT,则可以利用XCLKOUT引脚,通过XCLKOUTDIV 位对SYSCLKOUT分频输出到该引脚,用示波器测。

    ERIC

  • #include "DSP280x_Examples.h"  

    这个头文件里面

    /*-----------------------------------------------------------------------------
    Specify the PLL control register (PLLCR) and clock in divide (CLKINDIV) value.

    if CLKINDIV = 0: SYSCLKOUT = (OSCCLK * PLLCR)/2
    if CLKINDIV = 1: SYSCLKOUT = (OSCCLK * PLLCR)
    -----------------------------------------------------------------------------*/
    #define DSP28_CLKINDIV 0 // Enable /2 for SYSCLKOUT
    //#define DSP28_CLKINDIV 1 // Disable /2 for SYSCKOUT

    #define DSP28_PLLCR 10
    //#define DSP28_PLLCR 9
    //#define DSP28_PLLCR 8
    //#define DSP28_PLLCR 7
    //#define DSP28_PLLCR 6 // Uncomment for 60 MHz devices [60 MHz = (20MHz * 6)/2]
    //#define DSP28_PLLCR 5
    //#define DSP28_PLLCR 4
    //#define DSP28_PLLCR 3
    //#define DSP28_PLLCR 2
    //#define DSP28_PLLCR 1
    //#define DSP28_PLLCR 0 // PLL is bypassed in this mode

    如果你是六倍的话 就是 25*6=150 然后还有一个 Enable /2 for SYSCLKOUT 就是75 了

    这里把75的屏蔽去掉

    //#define CPU_RATE 10.000L // for a 100MHz CPU clock speed (SYSCLKOUT)
    #define CPU_RATE 13.330L // for a 75MHz CPU clock speed (SYSCLKOUT)
    //#define CPU_RATE 16.667L // for a 60MHz CPU clock speed (SYSCLKOUT)
    //#define CPU_RATE 20.000L // for a 50MHz CPU clock speed (SYSCLKOUT)
    //#define CPU_RATE 33.333L // for a 30MHz CPU clock speed (SYSCLKOUT)
    //#define CPU_RATE 41.667L // for a 24MHz CPU clock speed (SYSCLKOUT)
    //#define CPU_RATE 50.000L // for a 20MHz CPU clock speed (SYSCLKOUT)
    //#define CPU_RATE 66.667L // for a 15MHz CPU clock speed (SYSCLKOUT)
    //#define CPU_RATE 100.000L // for a 10MHz CPU clock speed (SYSCLKOUT)

    各种外设的时钟参考数据手册吧