Hi,
Thank you for the reply.
I can see the ADC is working now and give me the readings. Please can you provide code to store 30K samples from the same ADC. I attached my code for your review. Thanks
/*
*Brief Master Read Task Start
*/
static void master_read_task(void *pvParameters)
{
uint32_t i = 0;
status_t status;
// /* Transfer structure for half-duplex. */
// dspi_half_duplex_transfer_t xfer = {0};
dspi_transfer_t masterXfer;
dspi_master_config_t masterConfig;
PRINTF("SPI master board will transmit data to slave board first, then receive data from slave board.\r\n");
PRINTF("Besides, Master will transfer data by interrupt way, and slave will use interrupt way.");
PRINTF("\r\nMaster start to tansfer...\r\n");
/* Master config */
masterConfig.whichCtar = kDSPI_Ctar1;
masterConfig.ctarConfig.baudRate = TRANSFER_BAUDRATE;
masterConfig.ctarConfig.bitsPerFrame = 16U;
masterConfig.ctarConfig.cpol = kDSPI_ClockPolarityActiveHigh;
masterConfig.ctarConfig.cpha = kDSPI_ClockPhaseFirstEdge;
masterConfig.ctarConfig.direction = kDSPI_MsbFirst;
masterConfig.ctarConfig.pcsToSckDelayInNanoSec = 500;//was 2000
masterConfig.ctarConfig.lastSckToPcsDelayInNanoSec = 500;//was 2000
masterConfig.ctarConfig.betweenTransferDelayInNanoSec = 1000;//was 1000
masterConfig.whichPcs = kDSPI_Pcs1;
masterConfig.pcsActiveHighOrLow = kDSPI_PcsActiveLow;
masterConfig.enableContinuousSCK = false;
masterConfig.enableRxFifoOverWrite = false;
masterConfig.enableModifiedTimingFormat = false;
masterConfig.samplePoint = kDSPI_SckToSin0Clock;
DSPI_MasterInit(EXAMPLE_DSPI_MASTER_BASEADDR, &masterConfig, DSPI_MASTER_CLK_FREQ);
/* Init Buffer*/
for (i = 0; i < TRANSFER_SIZE; i++)
{
txData[i] = i + 1;
}
/*Start master receive*/
masterXfer.txData = masterSendBuffer;
masterXfer.rxData = masterReceiveBuffer;
masterXfer.dataSize = TRANSFER_SIZE;
masterXfer.configFlags = kDSPI_MasterCtar1/**/ | kDSPI_MasterPcs1 | kDSPI_MasterActiveAfterTransfer;
DSPI_MasterTransferCreateHandle(EXAMPLE_DSPI_MASTER_BASEADDR, &handle, DSPI_MasterInterruptCallback, NULL);
status = DSPI_MasterTransferNonBlocking(EXAMPLE_DSPI_MASTER_BASEADDR, &handle, &masterXfer);
// status = DSPI_MasterHalfDuplexTransferNonBlocking(EXAMPLE_DSPI_MASTER_BASEADDR, &handle, &xfer);
// DSPI_MasterHalfDuplexTransferNonBlocking(SPI_Type *base, dspi_master_handle_t *handle, dspi_half_duplex_transfer_t *xfer)
while (!masterFinished)
{
}
if (status == kStatus_Success)
{
PRINTF("\n\nDSPI data successfully received. \r\n\r\n");
for (i = 0; i<TRANSFER_SIZE; i++)
{
PRINTF("Received Data %d \n",masterReceiveBuffer[i]);
}
}
else
{
PRINTF("DSPI received data error. \r\n\r\n");
}
/* Stop the transfer. */
DSPI_Deinit(EXAMPLE_DSPI_MASTER_BASEADDR);
vTaskSuspend(NULL);
}