微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > cc3200 SPI接多个从设备问题?

cc3200 SPI接多个从设备问题?

时间:10-02 整理:3721RD 点击:

参考sdk的spi程序,默认是用一个通道,目前接一个从设备也没问题,

现在要接多个从设备,请问怎样配置spi片选SPIEN[3:0],这些片选是对应那些引脚呢,

下面定义是driverlib里面的,只有第一个在手册有这个寄存器,其他三个没找到

#define MCSPI_O_CH0CONF         0x0000012C

#define MCSPI_O_CH1CONF         0x00000140

#define MCSPI_O_CH2CONF         0x00000154

#define MCSPI_O_CH3CONF         0x00000168

这个图上的SPIEN[3:0]是什么意思?怎么选择不同的spi从设备,手册上也没找到相关的说明。

你挂多个设备,需要用GPIO去软件控制CS信号,还涉及到和多个SLAVE直接的通信。

原始的SDK里面的API没有multiple slave的实现。

尝试过用GPIO控制CS信号,

配置为4线模式

// spi引脚配置
    // Configure PIN_05 for SPI0 GSPI_CLK
    MAP_PinTypeSPI(PIN_05, PIN_MODE_7);
    // Configure PIN_06 for SPI0 GSPI_MISO
    MAP_PinTypeSPI(PIN_06, PIN_MODE_7);
    // Configure PIN_07 for SPI0 GSPI_MOSI
    MAP_PinTypeSPI(PIN_07, PIN_MODE_7);
  // Configure PIN_18 for SPI0 GSPI_CS
    MAP_PinTypeGPIO(PIN_18, PIN_MODE_0, false);
    MAP_GPIODirModeSet(GPIOA3_BASE, 0x10, GPIO_DIR_MODE_OUT);

SPI_SW_CTRL_CS 
SPI_4PIN_MODE

CS信号使用GPIO_28控制(或其他引脚)配置为输出,发数据是就会停在下面这个地方,发送寄存器一直不为空,

while(!(HWREG(GSPI_BASE + 0x00000130)&0x00000002))

如果把CS信号GPIO_28换回下面默认SPI_CS引脚,是正常的。

// Configure PIN_08 for SPI0 GSPI_CS
    MAP_PinTypeSPI(PIN_08, PIN_MODE_7);目前只有用这个CS信号才可以,使用MAP_SPICSEnable(GSPI_BASE),MAP_SPICSDisable(GSPI_BASE)

 

我想问下,使用其他GPIO作为CS信号,在配置上有什么不一样的地方?

这个图的意思是不是3线模式下只能接一个设备?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top