Dear sir or madam,

We have assembled a board utilizing ADAS1000.

We successfully got TESTTONE set up according to DATASHEET, Example 4: Configure 150 Hz Test Tone Sine Wave on Each ECG Channel and Stream Conversion Data.

We wanted to proceed with DATASHEET example 1,Example 1: Initialize the ADAS1000 for ECG Capture and Start Streaming Data.

But upon run we still get the TESTTONE even though we rechecked registers via reading the set up value, everything seems to be fine, but it yields sinusoidal values like this on 3 inputs:

value: 1080607.625000, 1035503.125000, 1035503.125000
value: 1092268.750000, 1048476.750000, 1048476.750000
value: 1103936.125000, 1061541.750000, 1061541.750000
value: 1115422.750000, 1073930.250000, 1073930.250000

Could anyone be so kind to help us what we are doing wrong?

Thank you


  • 0
    •  Analog Employees 
    on Sep 29, 2020 8:02 AM 3 months ago in reply to Ivo Hora

    Hi Ivo,

    Did changing the SPI mode make any difference here? Do you have a logic analyzer that you could use to verify you are sending the correct packets to the ADAS1000? It sounds like you may be inadvertently writing to the TESTTONE register. 

    It is recommended to use the RLD pin to  optimize common mode rejection in the system

  • Hello,

    thank you, unfortunately, I don't have any logic analyzer at home, but I think I resolved it. I noticed I was setting FRMCTL as the first register, but according to the example 1 sequence, I am supposed to set up CMREFCTL first and then FRMCTL. Is it really necessary to set up the registers exactly as it is ordered in the sequence in example 1?

    I also have another question, is it possible to damage ADAS1000 via applying inappropriate voltage on ADAS1000 pins? I accidentally swapped ADUM4400ARWZ to ADUM6400ARIZ and vice versa while soldering. The board was not working and I noticed the mistake I made, I corrected it with resoldering but the board is still not working. I checked all the ADAS1000 pins which should have VCC voltage and there is 3.3V everywhere. I know the problem might be anywhere, but I am just trying to find a way how to identify where the problem might be.

    I can send data via SPI that means there is no problem with SPI bus therefore I compared content of PACECTL register after ASAS1000 reset operation.

    In previous working board, it really contains reset value = 0x000F88, but with current board the reset value = 0

  • Actually, it seems like I can send data via SPI bus, but there is no reply, it leaves the variable content with 0 value.

  • 0
    •  Analog Employees 
    on Oct 22, 2020 7:41 AM 3 months ago in reply to Ivo Hora

    Hi Ivo,

    Yes, it is best to follow sequence as outlined in the datasheet for configuring the part. 

    Yes, it is possible to damage the IC if the applied voltage on any of the pins is beyond the Absolute maximum rating of the part. If you are measuring 3.3V everywhere it would seem like the part is damaged. Since SPI is not responding I would guess the part is indeed damaged and should be replaced.

  • Dear sir,

    I finally managed to run the board fixing cold solder. Now I am getting all register reset values according to the datasheet except FRAMES register reset value which should be 0x800000 according to the datasheet, but mine REGISTER with address 40 is of a value:0.

    Anyway, I would like to kindly ask you for another hint. I am receiving data from ADAS1000, but no matter if I connect 3 leads or 4 leads, I get sort of a sinusoidal signals corresponding to 50Hz according to number of samples between corresponding waves, I am enclosing results from 3 lead formation without right leg. I assumed that 4. lead (for lead formation on all 4 limbs) is highly necessary due to RLD_OUT (right leg drive) which I understood as a signal which is calculated from 3 leads and sent out via CM_OUT and it is supposed to cancel interference coming out from all around the device, but according to my results I don't think my assumptions are correct, generally I cannot figure out, how to get clear ECG signal and get rid of those weird periodical waves.

    Moreover, due to the fact I am controlling ADAS1000 via SPI from Raspberry, I wanted to minimize the latency of Linux kernel via reacting to interrupts utilizing DRDY pin which I have configured on Raspberry as input pin, before in my software I was using a while loop in dedicated thread sleeping 50us and continuously checking the ready bit in HEADER configured to send the header only, but surprisingly, I was able to trigger method while capturing DRDY pin interrupts only once but no more. I connected logic analyzer to my board and suprisingly I did not notice any change in DRDY signal line (D1) during data transfer after FRAMES register was initialized to start data capturing, I am enclosing signal lines screenshot as well with following line layout: D2 (CLOCK) D3 (MOSI) D4 (MISO), D0 (RESET)

    Do you happen to know why I am getting no DRDY signal change? Do I have to active it somewhere?

    signal from 3 leadssignal content