×
嵌入式 > 技术百科 > 详情

CC2530 的SPI通信中的问题和解决方法

发布时间:2020-05-28 发布时间:
|

打算使用TI公司的CC2530控制TI的电压芯片DAC081S101,需要用到SPI模块。因为我的开发板只能测试UART1对应的IO口,因此做了下面的测试。

TI论坛提供的spi文档:

http://www.ti.com.cn/cn/lit/an/swra223a/swra223a.pdf

1. 两个CC2430测试,一个作为master,一个作为slave

代码完全使用TI 的SPI文档中的code,slave采用中断接收的方式,收到数据之后通过UART0发送到电脑上查看数据,完全正确。

注意事项:

*接线,非常重要。

Master的MOSI接Slave的MOSI; Master的MISO接Slave 的MISO;千万不要交叉接线,这个和UART通信不同。

*slave接收

中断接收和查询接收都没有问题,读缓存之前不需要向U1DBUF里写无效数据,这个应该只针对Master读数据的情况。

其他只要认真阅读文档就不会有问题的。

* Master发送数据注意延时

每发送完一个数据要做一定的延时,使得数据能完全移送到移位寄存器里面。

比如:


                        SSN0=LOW;
for(int i=0;i{
U0DBUF=*pbuf;
pbuf++;
while(U0TX_BYTE==0);
Delay_ms(10); 
U0CSR &= 0xFD;
}
SSN0=HIGH;




* 同时该测试说明一个问题,即两个相同电压的SPI模块是可以直连的。



2. CC2430控制DAC081S101

采用UART0作为Master控制数模转换芯片,选用备选引脚1.即p0_2,p0_3,p0_5为外设引脚,p_4为片选引脚。

初始化

MASTER:

                PERCFG&=0xFE;
P0SEL|=0x2C;  // P0_2,p0_3,p0_5 are peripherals, that is MISO,MOST,SCK .
  P0SEL&=~0x10; //P0_4 is GPIO(SSN)


  P0DIR|=0x10;//SSN is set as output
 
U0CSR &= ~0xA0; //SPI MAster Mode

               U0BAUD = 0x3B; 
       U0GCR|=0x07;

                U0GCR|=0xC0;// CPOL = CPHA = 1

U0GCR |= 0x20;

            

SLAVE: 

        P0SEL|=0x3C; //P0_2,p0_3,p0_4,p0_5 are peripherals
    U0CSR &= ~0x80; //SPI mode 
    U0CSR |= 0x20; //slave mode 

             U0BAUD = 0x3B; 
     U0GCR|=0x07;

             U0GCR|=0xC0;// CPOL = CPHA = 1

             U0GCR |= 0x20;

             TCON &= ~0x08;

             URX0IE = 1;

             EA=1;

发送:

                          for(int i=0;i{
                                SSN0=LOW;
U0DBUF=0x32;

while(U0TX_BYTE==0);
Delay_ms(10); 
U0CSR &= 0xFD;
                                SSN0=HIGH;

}


中断接收:

#pragma vector = URX0_VECTOR 


__interrupt void HalSPISlave0IRQ(void)  


{


  TCON&=~0x08;
  rxBufferSlave0[bufferIndex0++]=U0DBUF;
  HalUARTWrite(HAL_UART_PORT_0, rxBufferSlave0, 10);
   
  if(bufferIndex0==(RX_SlAVEBUFFER_NUMBER+1))
  { 
    bufferIndex0=0;
    for(int i=0;i      rxBufferSlave0[i]=0;
  }


}


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
NS推出采用第二代PowerWise技术的能源管理单元及先进电源控制器