Hi all,
I am really stuck at some point to read 8 channel data from ADS1298.
Below is my read function from SPI:
void readData(Uint32* InpBuf, Uint16 wordLength, Uint16 FremLen)
{
CSL_FINS(CSL_SPI_REGS->SPICMD1,SPI_SPICMD1_FLEN,FremLen);
CSL_FINS(CSL_SPI_REGS->SPICMD2,SPI_SPICMD2_CLEN,wordLength);
for(bufIndex = 0; bufIndex < FremLen; bufIndex++)
{
CSL_SPI_REGS->SPIDR1 = 0x0000;
CSL_SPI_REGS->SPIDR2 = 0x0000;
/* set operation */
/* set start CMD - Read */
CSL_FINS(CSL_SPI_REGS->SPICMD2, SPI_SPICMD2_CMD,
CSL_SPI_SPICMD2_CMD_READ);
do
{
spiStatusReg = CSL_SPI_REGS->SPISTAT1;
spiBusyStatus = (spiStatusReg & CSL_SPI_SPISTAT1_BSY_MASK);
spiWcStaus = (spiStatusReg & CSL_SPI_SPISTAT1_CC_MASK);
}while((spiBusyStatus == CSL_SPI_SPISTAT1_BSY_BUSY) &&
(spiWcStaus != CSL_SPI_SPISTAT1_CC_MASK));
ReadVal = CSL_SPI_REGS->SPIDR2;
ReadVal = ReadVal << 16;
ReadVal |= CSL_SPI_REGS->SPIDR1 ;
ReadVal &= 0x00FFFFFF;
InpBuf[bufIndex] = ReadVal;
}
}
After executing read function only reading form channel 4 is changing and all remaining do not change. Could anyone explain this weird situation? Below are my readings after each readData function call:
Regards.




