Part Number: ADS114S08
Tool/software: Code Composer Studio
I am using ADS114S08, this converter is conneted to DSP28335, but when I ues SPI to send a RREG command to ADS114S08, the return value is always 0x00(the value should be 0x80, I also use RREG command to read other registers of ADS114S08, the result is same
here is my code
spi configuration:
SpiaRegs.SPICCR.bit.SPISWRESET = 0;
SpiaRegs.SPICTL.bit.CLK_PHASE = 1; //CPHA = 1
SpiaRegs.SPICTL.bit.MASTER_SLAVE = 1;
SpiaRegs.SPICTL.bit.OVERRUNINTENA = 0;
SpiaRegs.SPICTL.bit.SPIINTENA = 0;
SpiaRegs.SPICTL.bit.TALK = 1;
SpiaRegs.SPIBRR =0x0004;
SpiaRegs.SPISTS.all=0x0000;
SpiaRegs.SPICCR.bit.CLKPOLARITY = 0; // CPOL = 0
SpiaRegs.SPICCR.bit.SPILBK = 0;
SpiaRegs.SPICCR.bit.SPICHAR = 7;
SpiaRegs.SPIPRI.bit.FREE = 1;
SpiaRegs.SPICCR.bit.SPISWRESET = 1;
void main(void)
{
InitSysCtrl();
InitSpiaGpio();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
//spi_fifo_init(); // Initialize the Spi FIFO
spi_init(); // init SPI
adres_H = 0;
adres_L = 0;
adres = 0;
rdata = 0;
sdata = 0;
CS_L;
DELAY_US(1);
rdata = spi_8bit(0x2000); // reset command
DELAY_US(2000); // 4096*tclk
CS_H;
DELAY_US(1);
CS_L;
DELAY_US(1);
rdata = spi_8bit(0x2100);
DELAY_US(1);
rdata = spi_8bit(0x0000);
DELAY_US(1);
rdata = spi_8bit(0x0000);
DELAY_US(1);
CS_H;
Uint16 spi_8bit(Uint16 a)
{
Uint16 data;
SpiaRegs.SPITXBUF=a;
while(SpiaRegs.SPISTS.bit.INT_FLAG != 1)
{
}
data = SpiaRegs.SPIRXBUF;
return data;
}