Hello, dear colleagues!
I'm trying to use TWO SPI simultaneously in CC2640: one for read/write external spi - FLASH, and other one is for shifting data to the shift register. The oscilloscope observation shows that SPI-transfer when started simultaneously on both channels actually is not simultaneously and occurring in time - shared manner.
Is it possible to achieve truly simultaneously transmitting/receiving via SPI ? Both SPI use two independent DMA-channels.
Here is the my board file definition:
/* SPI objects */
SPICC26XX_Object spiCC26XXDMAObjects[CC2650_SPICOUNT];
/* SPI configuration structure, describing which pins are to be used */
const SPICC26XX_HWAttrs spiCC26XXDMAHWAttrs[CC2650_SPICOUNT] = {
{
.baseAddr = SSI0_BASE,
.intNum = INT_SSI0,
.defaultTxBufValue = 0,
.powerMngrId = PERIPH_SSI0,
.rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
.txChannelBitMask = 1<<UDMA_CHAN_SSI0_TX,
.mosiPin = Board_DSP_MOSI,
.misoPin = Board_DSP_MISO,
.clkPin = Board_DSP_CLK,
.csnPin = PIN_UNASSIGNED
},
{
.baseAddr = SSI1_BASE,
.intNum = INT_SSI1,
.defaultTxBufValue = 0,
.powerMngrId = PERIPH_SSI1,
.rxChannelBitMask = 1<<UDMA_CHAN_SSI1_RX,
.txChannelBitMask = 1<<UDMA_CHAN_SSI1_TX,
.mosiPin = Board_FLASH_MOSI,
.misoPin = Board_FLASH_MISO,
.clkPin = Board_FLASH_CLK,
.csnPin = PIN_UNASSIGNED
},
};
/* SPI configuration structure */
const SPI_Config SPI_config[] = {
/* CC2650_SPI0 */
{&SPICC26XXDMA_fxnTable, &spiCC26XXDMAObjects[0], &spiCC26XXDMAHWAttrs[0]},
{&SPICC26XXDMA_fxnTable, &spiCC26XXDMAObjects[1], &spiCC26XXDMAHWAttrs[1]},
{NULL, NULL, NULL},
};