请问专家msp430用smclk管脚怎么连续输出10KHZ到2Mhz的时钟信号

请问专家msp430用smclk管脚怎么连续输出10KHZ到2Mhz的时钟信号

此问题有建议答案
All Replies
  • 举人1590分

    请问专家msp430用smclk管脚怎么输出10KHZ到2Mhz的时钟信号,输出频率能连续控制,或者有没有其他的方法

  • 榜眼24967分

    楼主你好!

    1、不可以。SMCLK是系统时钟,高频振荡器的频率经过SMCLK的分频器(/1 /2 /4 等)分频给外设使用。所以无法输出连续频率。

    2、使用timer 可以将频率输出范围拓展至楼主需要的段,但也是基于分频的原理实现。可以实现 /1 /2 /3 /4 ......./计数值,但是方波的占空比不一定是50%

    如果您认为此问题已被解答,请在“这是否解答您的问题” 后,点击“”按钮。 感谢您对TI的支持!

  • 举人2480分

    SMCLK是子时钟源,不建议这样设计系统,可以用定时器的PWM来实现10K~2Mhz的信号,占空比调节到50%,

  • 举人1590分

    请问用定时器A能产生我想要的频率吗?比如说100kHZ,200KHZ,300KHZ,400KHZ,.......,2Mhz,?

    我用定时器A定时管脚取反最高频率只有800多Khz,请问有更好的办法吗,并且能输出我要的任何频率(2Mhz以内)

  • 举人1590分

    请问用定时器A能产生我想要的频率吗?比如说100kHZ,200KHZ,300KHZ,400KHZ,.......,2Mhz,?

    我用定时器A定时管脚取反最高频率只有800多Khz,请问有更好的办法吗,并且能输出我要的任何频率(2Mhz以内)

  • 举人1590分

    帮自己顶

  • 进士7790分

    用定时器可以产生你需要的100K-2M的波形。

    基本思路如下:

    1. 采用内部DCO作为系统时钟源,输出给MCLK,SMCLK, TIMERA选用SMCLK作为时钟。

    2.在频率输出较低时,可以用TIMER的定时器来实现管脚翻转,但是频率较高时,由于TIMER中断和IO口翻转设置都需要消耗时钟,这时,较低的DCO频率就不能满足较高的频率输出 。

    3. 建议直接用TIMER的PWM输出功能,DCO最好设置在16M,这样输出2M时才比较合适。

  • 举人1590分

    专家你好,你的建议我试过了,用pwm波的形式输出,用dco做时钟源(我的目的是得到100k,200k,300k,400k,...,900k,1M,1.1M,1,2M,......,2M的方波)

    但是还是有问题,1M以下的方波能准确的得到,但是1M至2M的方波频率不能准确得到,(我的思路是改变CCR0的值来改变方波的频率,然后通过CCR1来调节占空比),请问能不能改进

  • 举人1590分

    求助

  • 进士7790分

    输出1M的PWM波的时候就不能用TIMER中断+GPIO翻转的方式来做了。

    要用TIMER的PWM功能。同时为了得到精确的1M方波,需要提高DCO的频率。

  • 举人1590分

    我是用pwm输出的啊,到1M以上CCR0没减少1,方波频率就增加5khz,然后随CCRO减小,频率就增加的更多,就得不到很精准的频率了,请问有办法解决吗

  • 进士7790分

    没有实际测试过。按照道理讲16M主频应该可以给TIMER准确输出2MPWM信号的。你可以把你的代码贴出来看下。

    如果确实你用16M的主频,使用TIMER的PWM功能还不能精确输出2M的频率的话,我建议你直接用SMCLK的输出作为PWM的输出,主频设置16M, SMCLK 1/4分频,然后从GPIO口输出。

    优点是可以输出较为准确的50%占空比的PWM,缺点是不能输出任意频率的波形。波形频率只能是主频的1/2,1/4,1/8 ..分频。

    如果这样还达不到你的需求,可能你要考虑换至支持更高主频的MCU了。