cc3200 SPI接多个从设备问题?
参考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线模式下只能接一个设备?