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.

ADS1298 power up data sheet interpretation questions

Other Parts Discussed in Thread: ADS1298

 ADS1298 power up data sheet interpretation questions:

I tried drawing a flowchart and writing a compiling piece of code for the maple microcontroler from leaflabs.com

I can tie most pins on my module low but not all...

CLKSEL=1 from hardware.

RESET is tied to high in hardware should I do a serial reset instead???

Some of the timing delays mismach how long till the power supplies stableise?

 

 

Here is my example code:

 /*
ADS1298_power_up
  Blink modified to ADS1298_power_up
 
 Turns on an LED on for one second, then off for one second, repeatedly.
 
 The circuit:
 SPI IN & OUT pins connected to test input and output.
 Data logger fpga would be a good idea.
 */

int ledPin =  13;    // LED connected to digital pin 13
int RESET = 10;
int START = 11;
//create pins 0-12


// The setup() method runs once, when the sketch starts

void setup()   {               
  // initialize the digital pin as an output:
  pinMode(ledPin, OUTPUT);
  pinMode(RESET, OUTPUT); 
    pinMode(START, OUTPUT); 
  //setup pins for inputs and outputs
 
  //tie all low
  //step 1 wait 500ms instead of recomended 150ms
 //for power supplies to stableise
  delay(500);
  //set CLKSEL=1 wait 20us //allready set to 1 unless tie to pin.
  delay(500); //wait 500ms instead of 20us to let clk stableise
  //wait 2^16 tclk = 65536 tclk 2.x Mhz
  delay(1000); //wait 1 s instead of 65536 tclk
  //reset pulse low wait 18tclks longer low wait 5 sec for power on reset
   digitalWrite(RESET, LOW);    // set the LED off
  delay(100);
    digitalWrite(RESET, HIGH);   // set the LED on
  delay(1000);
    delay(1000);
      delay(1000);
        delay(1000);
          delay(1000);
//set configuration registers...
//check for drdy change before filling registers...

//if START tied HIGH ~DRDY toggles at fclk/8192
    digitalWrite(START, HIGH);   // set the LED on
}

// the loop() method runs over and over again,
// as long as the Arduino has power

void loop()                    
{
  digitalWrite(ledPin, HIGH);   // set the LED on
  delay(1000);                  // wait for a second
  digitalWrite(ledPin, LOW);    // set the LED off
  delay(1000);                  // wait for a second
}

  • Josh,

    If you have the RESET pin tied high, you should send the RESET opcode.  Power supply stabilization is going to be a function of your board, you should monitor your supply rails to determine the time delays needed to initialize the ADS1298.

  • CLKSEL on my ads1298 board is tied for internal osilator does that cause a problem I see that is step 3 or around there.

  •  

    I tested with the CLKSEL tied high the reset pin not used and after 5 seconds delay programmed into the MIT Maple a ARM Cortex 3 that is the red board DRDY LOW caused the blue LED for 1 sec on then 1 sec off then checked for DRDY so it apears to show drdy is low and I had it print drdy status constantly and it shown that it spent most of the time low but no bits were clocked out so that was proably for mesurement update time.

    The green board standing up is my open source ads1298 board.

  • Tom, I have another  question if I use an internal clock, do i have to pull up clk pin?

    I going to use start opcode, do i have to pull up or down start pin?

     

    Thanks

  • Hi Oscar,

    To use the internal oscillator of the ADS1298, yes, you have to tie the CLKSEL pin high.  If you are not planning on using the START pin, you should hold the START pin low and use the OPCODE instead.  This is described on page 34 of the current data sheet under the START section.  The settling time remains the same for either mode of operation.