[资料分享] MSP430 的SPI的极性Polarity和相位Phase使用总结

火辣西米秀   2020-10-9 20:45 楼主

SPI的极性Polarity和相位Phase,最常见的写法是CPOL和CPHA,不过也有一些其他写法,简单总结如下:

 

SPI的CPOL,表示当SCLK空闲idle的时候,其电平的值是低电平0还是高电平1:

CPOL=0,时钟空闲idle时候的电平是低电平,所以当SCLK有效的时候,就是高电平,就是所谓的active-high;

CPOL=1,时钟空闲idle时候的电平是高电平,所以当SCLK有效的时候,就是低电平,就是所谓的active-low;

相位,对应着数据采样是在第几个边沿(edge),是第一个边沿还是第二个边沿,0对应着第一个边沿,1对应着第二个边沿。

但是关键在于在MSP430中的描述与常规就不同了(见MSP430用户手册的描述)

我配置SPI的程序如下:

void SPI_init()    
{                      
   U0CTL  =CHAR+SYNC+MM+SWRST;       //8位SPI,SPI模式,主机模式,保持在复位状态  
   U0TCTL =CKPH+SSEL1+SSEL0+STC;               //时钟源为MCLK,3线模式;  
   U0BR0  =0x002;  
   U0BR1  =0x000;                  //波特率设定  
   U0MCTL =0x000;                 //调整寄存器没有调整;
        ME1    =USPIE0;               //打开SPI使能  
   U0CTL &=~SWRST;              //关复位                
}

经过实验

U0TCTL =CKPH+SSEL1+SSEL0+STC;

U0TCTL =CKPL+SSEL1+SSEL0+STC;

两种配置都行。

在SST25V016B中的时钟描述中说Mode0,Mode3,都支持

即支持   CKPH   CKPL

       0       0

       1       1

即两位都选或都不选

显然于上述结果矛盾

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复