This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1246读寄存器问题



 各位TI大神:

  在操作ADS1246的时候,发现可以正常的读转换结果的数据,读不出寄存器数据,也不能把数据写入寄存器。在读写寄存器的时候有哪些需要注意的设置啊,请各位指点一下。

 写数据函数:
       ADS1246_START_DATA=Low;
          DelayUS(20);
          ADS1246_CS2_DATA=High;
            DelayUS(20);
           ADS1246_CS2_DATA     =Low;     //
    
    // __asm nop;                    //ÑÓʱ1/20M =50ns  ±£Ö¤Ê±Ðò
               // ADS1246_SCK_DATA=Low;
               DelayUS(20);
               DisableInterrupts;
           for(i=0;i<8;i++)
              {
                ADS1246_SCK_DATA    =High;    //data on din are shifted into the device on the falling edge of sclk
                 // ADS1246_SCK_DATA     =Low;
                
                if(TxBuffer&0x80)            //È¡×î¸ßλ
                  {
                    ADS1246_DIN_DATA=High;   //дÊý¾Ý
                  }
                else
                  {
                   ADS1246_DIN_DATA=Low;    //дÊý¾Ý
                  }
              // DelayUS(5);
                ADS1246_SCK_DATA     =Low;
                 // ADS1246_SCK_DATA    =High;
                TxBuffer<<=1;
                // DelayUS(5);
              }
              EnableInterrupts;
           DelayUS(40);
           ADS1246_CS2_DATA  =High;//
           ADS1246_START_DATA=High;

 

读数据函数

  ADS1246_START_DATA=Low;
        DelayUS(20);
      ADS1246_CS2_DATA   =High;
      DelayUS(20);  
      ADS1246_CS2_DATA   =Low;
       //ADS1246_SCK_DATA  =Low;
       DelayUS(10);
      DisableInterrupts;
    for(i=0;i<8;i++)
     {
      ADS1246_DIN_DATA=High;  //nop
      ADS1246_SCK_DATA  =High;
       //ADS1246_SCK_DATA   =Low;    //ʱÖÓµÍ
       
       data|=ADS1246_DOUT2_DATA&0x01;
       data<<=1;
      
     //  DelayUS(5);
      ADS1246_SCK_DATA  =Low;
     //ADS1246_SCK_DATA  =High;
     // DelayUS(5);
     }
      ADS1246_DIN_DATA=Low;
       EnableInterrupts;
    //ADS1246_SCK_DATA   =Low;    //ʱÖÓµÍ
     //ADS1246_SCK_DATA  =High;
     DelayUS(40);
    ADS1246_CS2_DATA   =High;   //Ƭѡ¸ß
      ADS1246_START_DATA=High;

 

附件为在读第一个寄存器(BCS)时的波形  ,在DOUT上没有发现读取数据的波形。