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

F5529的SPI选择XT2不工作的问题

您好

我的5529之前调试SPI的时候,选择上电默认的时钟情况,即SMCLK选择DCO   1.048M的时钟的时候

SPI的收发正常  但是现在觉得数据速率不太够用 于是想用外部高频晶振24M的XT2   但是调试了几天都不能正常工作 

请问是什么原因

现在附上代码,代码大部分是例程里的

//------------------时钟配置---------------------------------------P2DIR |= BIT2;// SMCLK set out to pinsP2SEL |= BIT2;P7DIR |= BIT7;// MCLK set out to pinsP7SEL |= BIT7;P5SEL |= BIT2+BIT3;// Port select XT2UCSCTL6 &= ~XT2OFF;// Enable XT2UCSCTL3 |= SELREF_2;// FLLref = REFO// Since LFXT1 is not used,// sourcing FLL with LFXT1 can cause// XT1OFFG flag to setUCSCTL4 |= SELA_2;// ACLK=REFO,SMCLK=DCO,MCLK=DCO// Loop until XT1,XT2 & DCO stabilizes - in this case loop until XT2 settlesdo{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);// Clear XT2,XT1,DCO fault flagsSFRIFG1 &= ~OFIFG;// Clear fault flags}while (SFRIFG1&OFIFG);// Test oscillator fault flagUCSCTL6 &= ~XT2DRIVE0;// Decrease XT2 Drive according to// expected frequencyUCSCTL4 |= SELS_5 + SELM_5;// SMCLK=MCLK=XT2UCSCTL5 |= DIVS__16;//分频这里我经常调

一般情况下  这段代码是都能正常工作的 在P2.2那里能看到时钟信号 (24M的时钟信号看起来像是正弦的样子)

//---------------------UCB1 SPI setup-------------------------P4SEL |= BIT1+BIT2+BIT3;// P4.1-3 option select 3-PIN SPIP4DIR |= BIT1;// SIMO outputP4DIR &= ~BIT2;// SOMI inputP4DIR |= BIT3;// CLK output//P4OUT |= BIT0;//P4.0输出高电平 /CS disabled//P4DIR |= BIT0;//P4.0 for CSUCB1CTL1 |= UCSWRST;// **Put state machine in reset**UCB1CTL0 |= UCSYNC+UCMST+UCMSB+UCCKPL;//  SPI masterUCB1CTL0 &= ~UC7BIT;//  8-bitUCB1CTL0 &= ~UCCKPH;UCB1CTL1 |= UCSSEL_2;// SMCLKUCB1BR0 = 0;// 我有时候会在这里分频UCB1BR1 = 0;//UCB1CTL1 &= ~UCSWRST;UCB1IE  = 0;
//---------------发送数据-------------------------------------------------//for(i=50;i>0;i--);// Wait for slave to initializewhile(1){for(i = 0;i < 255 ; i++){MST_Data = i;// Initialize data valueswhile (!(UCB1IFG&UCTXIFG));// USCI_A0 TX buffer ready?UCB1TXBUF = MST_Data;// Transmit first character}//__bis_SR_register(LPM0_bits + GIE);// CPU off, enable interrupts}

这段是SPI的设置和数据传输的设置 这两天调试的时候要是直接go的话 就老跑飞……一步一步调试 有时候就没问题 在寄存器那里和示波器上都能一部分看到

发送的SCLK和发送的数据,但是也经常会跑跑就飞了……

请问有没有大大遇到过我这种情况?是晶振不稳定么?我的程序有时候用UCSCTL5分频  有时候用UCB1BR分频,但总会有些问题。

我的XT2是焊了2个15pF的电容,是UCS里设置哪儿不太对么? 因为调SPI时候原来选DCO的时候十分稳定,不会跑飞

灰小子:

看样子XT2 正常起震工作了。问题应该在SPI通讯方面

Xueyuan Jee:

回复 灰小子:

可是为什么选择DCO就不会出问题?片内时钟怎么调都OK

用XT2时候  单步运行 到了设置SPI中间的语句或者传输语句时候 总会跑飞

kqian0327:

你好,

程序一直飞掉?

你spi时钟和数据的输出是否有问题?

你说的程序飞掉是否是程序复位,没有尝试在WHILE(1)之前设断点,看是否发送成功。

你说的程序飞掉的理由?程序跑到哪里了,可以截图说明你说的飞掉是飞到哪里了么?

赞(0)
未经允许不得转载:TI中文支持网 » F5529的SPI选择XT2不工作的问题
分享到: 更多 (0)