TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430I2040: 关于该芯片内部晶振16.384M和外部晶振16.384M都不准确的疑问

Part Number:MSP430I2040

我在芯片的25引脚外接有源晶振16.384M后,使用旁路模式进行仿真,发现延时间隔与我设定的延时时间相差太多,和使用内部晶振时一样差的非常多,导致我的在使用UART传输协议时,与其他芯片通信时的波特率无法匹配上。

以下是我调试时写的简单例程仿真结果。(设定延时1ms LED灯闪烁)

#include "msp430.h"

void main(void){
WDTCTL = WDTPW | WDTHOLD; // Stop Watchdog Timer

CSCTL0 = DCOBYP; 
P2DIR|=BIT2;
while(1)
{

P2OUT|=BIT2;
__delay_cycles(16384);
P2OUT&=~BIT2;
__delay_cycles(16384);

}
}

Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

,

Cherry Zhou:

您好,_delay_cycles () ;这个函数会有粗略延迟。 您可以试下用定时器测试频率。

,

chao chen:

您好  我按照您的建议使用了定时器计数器,还是使用计数器延迟1ms,但是得到了和上图示波器一模一样的信号,以下是我根据例程(msp430i20xx_ta0_02)改的的定时器程序

#include "msp430.h"

void main(void)

{ WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer

CSCTL0 = DCOBYP; // External

P2DIR |= BIT2; // Set P1.4 as output TA0CCTL0 = CCIE; // CCR0 Interrupt Enabled TA0CCR0 = 2048;  //计数1ms TA0CTL = TASSEL_2 | MC_1 | ID_3; // SMCLK/8, Up Mode

__bis_SR_register(LPM0_bits | GIE); // Enter LPM0 w/ interrupts __no_operation(); // For debugger}

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)#pragma vector=TIMER0_A0_VECTOR__interrupt void TA0_ISR(void)#elif defined(__GNUC__)void __attribute__ ((interrupt(TIMER0_A0_VECTOR))) TA0_ISR (void)#else#error Compiler not supported!#endif{ P2OUT ^= BIT2; // Toggle LED}

,

chao chen:

您好 我已经解决问题了,原来是我的CLKIN引脚没有开启功能引脚引起的外部晶振未启用  现在我的晶振频率已经准确了

赞(0)
未经允许不得转载:TI中文支持网 » MSP430I2040: 关于该芯片内部晶振16.384M和外部晶振16.384M都不准确的疑问
分享到: 更多 (0)