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

MSP430F6638 SPI没有时钟信号输出

在进行配置MSP430F6638 SPI时,发现SPI模块没有时钟信号输出,请大神指点一下。

已经参考了MSP430F563x_MSP430F663x_Code_Examples中的例子。

#define SCK    P8_1 //UCA1_CLK

#define SIMO   P8_2 //UCA1_SIMO

#define SOMI   P8_3 //UCA1_SOMI

#define CS       P8_5

#define RESET   P4_4 //slave reset

P8SEL |= 0x0E;

P8DIR |= 0x2E;

P8OUT |= 0x20;               //cs high

P4OUT |= 0x10;  

UCA0CTL1 |= 0x01;       // Put state machine in reset

UCA0CTL0 &= ~0xFF;

UCA0CTL0 |= 0xA9;      // 3-pin, 8-bit SPI master

UCA0CTL1 &= ~0xC0;

UCA0CTL1 |= 0x80;

UCA0BR0 = 0x10;         //SMCLK=8Mhz

UCA0BR1 = 0;

UCA0MCTL = 0;

UCA0CTL1 &= ~0x01;

 P4OUT &= ~0x10;     //slave reset 

P8OUT &= ~0x20;

不知是不是还漏配了哪个寄存器或者配错了?在主机发送数据的时候,都没有时钟起来。

在调试时,看到UCA0TXBUF数据有变化,但是UCA0RXBUF一直没有数据,而且会出现UCOE错误。

不知有没有使用查询方法,进行发送和接收数据的例程参考?

非常谢谢!

key dongle:

回复 Bruce Wei:

好的,谢谢!现在基本调通了。

有个小疑问,在官方程序msp430f66xx_uscia0_spi_09.c中,

P2SEL |= BIT0+BIT1+BIT2; // Assign P2.0 to UCB0CLK and… P2DIR |= BIT0+BIT1+BIT2; // P2.1 UCB0SOMI P2.2 UCB0SIMO

开始将P2.0,P2.1,P2.2映射为UCB0模块的引脚,然而后面

初始化的却是UCA0模块的配置。

UCA0CTL1 |= UCSWRST; // **Put state machine in reset** UCA0CTL0 |= UCMST+UCSYNC+UCCKPL+UCMSB; // 3-pin, 8-bit SPI master // Clock polarity high, MSB UCA0CTL1 |= UCSSEL_2; // SMCLK UCA0BR0 = 0x02; // /2 UCA0BR1 = 0; // UCA0MCTL = 0; // No modulation UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** UCA0IE = UCRXIE ; // Enable USCI_A0 RX,TX interrupt

SPI的引脚映射和模块配置不一致,敬请bruce确认一下。

程序库版本为MSP430ware_1_70_00_28。

key dongle:

回复 key dongle:

不好意思, 之前看错了,现知道了。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F6638 SPI没有时钟信号输出
分享到: 更多 (0)