We are having a problem sending data on the QSPI bus with a SB70LC. Our understanding is that the Chip Select line will change states when we send data based upon the values of the "peripheralChipSelects" and the "chipSelectPolarity" parameters to the QSPIInit() function. We have varied these parameters but the Chip Select line always stays high (before, during and after transfers). We put our code (using AutoUpdate) on two boards and seen the same behavior (one board in our system and another fresh out of the box with the Development board attached to provide power).
We are working with the following software release tag: Rel24_rc2_L2eBeta, and hardware: PCB assy "SB70LC rev 1.1a" / Board "rev 1.2".
Here is some code:
Code: Select all
static BYTE RXBuffer[63], TXBuffer[63];
// Initialize pins needed for QSPI
Pins[7].function(PIN7_SPI_CLK);
Pins[6].function(PIN6_SPI_DIN);
Pins[4].function(PIN4_SPI_DOUT);
OS_SEM QSPI_SEM;
OSSemInit(& QSPI_SEM, 0);
QSPIInit(2000000, 8, 0x0, 1, 0, 1, FALSE, 0x0, 0x0);
_FillSPIBuffer(TXBuffer, "A00A"); // I wrote this to convert a hex string to an array of bytes
// begin loop omitted
QSPIStart(TXBuffer, RXBuffer, 63, &QSPI_SEM);
OSSemPend( &QSPI_SEM, 0 );
// end loop omitted
Can someone verify that the Chip Select line is supposed to toggle as I have programmed it (should I have initialized the CS pin?)? If I messed up the code, can someone kindly point me in the right direction to get the Chip Select line to assert (active low) during a data transfer?
Thank you,
Jyoung