TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS114S08 通过SPI读不到寄存器的值

Other Parts Discussed in Thread:ADS114S08

最近在调ADS114S08,芯片用的DSP28335,,两个器件的用SPI通信,DSP28335作主机,ADS114S08作从机,根据手册上先发reset指令,然后用RREG指令去读STATUS寄存器值,但是读出来的值一直为0x00(应该是0x80),观察了SPIDAT的值,可以看出数据发出去了(测试的时候发送前0x21FF,发送完变成0xFF),换着读另外的寄存器,结果也一样。查了ADS114S08的供电以及与DSP28335DE SPI连接都是好的,请教社区的各位大神,这是什么原因?如果有例程麻烦提供一下,谢谢各位了

代码如下:

spi configuration:

    SpiaRegs.***.bit.SPISWRESET = 0;    

    SpiaRegs.***.bit.CLK_PHASE = 1;   //CPHA = 1
    SpiaRegs.***.bit.MASTER_SLAVE = 1;
    SpiaRegs.***.bit.OVERRUNINTENA = 0;
    SpiaRegs.***.bit.SPIINTENA = 0;
    SpiaRegs.***.bit.TALK = 1;

    SpiaRegs.SPIBRR =0x0004;       // LSPCLK = SYSCLKOUT/10 15Mhz 波特率 15Mhz/5=3Mhz
    SpiaRegs.SPISTS.all=0x0000;        
    SpiaRegs.***.bit.CLKPOLARITY = 0; // CPOL = 0
    SpiaRegs.***.bit.SPILBK = 0;
    SpiaRegs.***.bit.*** = 7;

    SpiaRegs.SPIPRI.bit.FREE = 1;    SpiaRegs.***.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;
   }

原理图如下:

Amy Luo:

您好,
ADS114S08 和DSP28335供电电压是多少,检查下ADS114S08 和DSP28335的SPI电平是否兼容呢
原理图没有显示,需要上传图片文件才能显示。

,

Amy Luo:

TI提供了ADS1x4S08 Firmware Example Code,可以在下面链接申请:
www.ti.com.cn/…/toolssoftware

,

Kaiqing Li:

,

Kaiqing Li:

DSP28335 内核1.8v 外设3.3vADS114S08 的数字IO口供电为3.3(IOVDD和DGND) 感觉是匹配的,原理图上传了

,

Amy Luo:

用示波器看下SPI信号的读写时序图是否是正确的
原理图可参考ADS1x4S08 EVM User's Guide中原理图:www.ti.com.cn/…/sbau272a.pdf

,

DAI SEN:

您好,请问您的问题解决了吗?

赞(0)
未经允许不得转载:TI中文支持网 » ADS114S08 通过SPI读不到寄存器的值
分享到: 更多 (0)