In FRAMES register with the address 0x40 responds with the word 0xC0000000 always. That I can do to get out of busy state.
This IC is configured with the following words 0x85E0000B 0x8A079600 0x81F804AE, but no data on Address 0x11 to 0x15.
Moving this question on ADAS1000 to the Precision Converter Community.
The SPI communication with ADAS1000 is okay sending 0x07000000 and receipt 0x07242424 as in Table 24 of the datasheet. I review in FRAMES register with the address 0x40 responds with the word 0xC0000000 always. That I can do to get out of busy state.
The problem is that all data registers are no data for example to read the address 0x11 write 0x40000000 after write 0x11000000 and responds with 0x11000000, no data of any channel ECG.
This IC is configured with the following words 0x85E0000B 0x8A079600 0x81F804AE, but no data on Address 0x11 to 0x15
What can be wrong..?
My first observation is the 2kHz data rate.What are you using to read the ADAS1000 data?
Is it reading the data quickly enough? On page 49 of the datasheet there is an explanation of the minimum SCLK frequency. With the 2kHz data rate and 8 frames per word. = 2kHz X 32 bits X 8 words = 512kHz.
Can you check this and check the status of the /DRDY pin during the write sequence?
By reading the data in the PACEAMPTH register reset value is 0x242424 which would indicate you are able to communicate with the part. good idea.
The Common-Mode, Reference and Shield Drive Control Register is set to select WCT as your common electrode, No leads contributing to your RLD, common electrode disabled, RLD_OUT as your reference drive, internal common mode is selected and driven out. You have your DRVCM should be set to 0 but it shouldnt affect the ability to read data.
The Frame Control Register is set to include all leads,pace,respiration,leads off, fixed frame format, always sending the entire frame and each frame at 2kHz, digital lead format.So in the frame control register you have the frame configured to always send, irrespective of ready status.
The ECG control Register is set to enable all ECG channels, differential input, 1.4 Gain, Vref enabled, exterml clock, master, single channel mode, low noise high performance ADC, enabled power and conversion.
You then issue the read command 0x40000000 and the part response with the busy signal. Check the SPI clock frequency please.
I'm using an Arduino development board, I succeeded these were the results.
Now I'm reading data with LabView software, the result with the above configurations.
Any recommendation for the clean ECG signal.
Diego Fernando Arpi
What simulator are you generating the signal using?
UG-426 contains a lot of info on the filters that are implemented using the labview software
The 50/60 Hz noise that you are picking up should be easily filtered with a 60 Hz digital software notch filter.
For HPF (0.5Hz/0.05Hz) would be something likely better done in the digital domain.
Hi Diego,Any update?
I am trying to do the same as you with a different eval board. Could you tell me how you resolved the timing issue?
In my case, the data rate was such that it only worked in debug mode and often gave me data in short bursts, interspersed with zeros.
My first observation is how are setting records ADAS1000?
What is the speed and are using to read the ADAS100?
Thanks for your reply.
I am setting the ADAS1000 according to the datasheet and giving appropriate CS signals to my one slave. I have given a clock of around 1000kHz.
I have scoped out the signals SCLK, MOSI, CS and MISO. SCLK, CS, MOSI all behave as expected but MISO has a lot of noise. I have attached the relevant signals screenshot.
I have the same problem. When I read data, I receive the following data (in HEX format):
C0000000 11000000 12000000 13000000 14000000 15000000 1A000000 1B000000 1D000000
My configuration of ADAS1000 is:
I am able to write and read content of registers correctly byt when I try to read measured data the FRAME register is still 0xC0000000 and no data are measured. For information, I created SW on STM32F4 DISCOVERY board for communication with ADAS. SPI communication frequency is set up correctly, too.
Any idea how to solve this problem? Is there any recommended configuration of registers to check measured data in case that the electrodes are not connected to body?
This data does look very strange. would start by following the recommendations on page 74 of the RevB datasheet to see if data is transferring correctly first just to check you setup before adjusting your setting to your specific needs. How do you know SPI communication is set up correctly? Are you reading the data quickly enough? I suggest reading the serial clock rate section on page 51 of the Rev B datasheet.
Thank you for response. As you can see my problem, it is the same as problem of diego_arpi in this forum-thread with name “ADAS1000 always been busy”.
As you can see from my data, the first 32bit read word has value C0000000 , which represents header. So, it means that the “Ready bit” is set to 1 (BUSY). I would like to clarify my setup of HW and SW step by step to confirm that I am doing all right.
I can say that my setup of SPI communication is correct. I am using the frequency 2.6MHz. I tried to use 1.3MHz, too, but with the same result.
I used the example1 from datasheet to configure ADAS1000. I am able to write and read the values of registers correctly, so it means that my SPI communication is set correctly. But when I try to read measured data the Ready bit in frame header is still set to BUSY and I can’t read measured data. I can confirm that after reading of FRAME register 04000000, I am sending only zeros to read measured data and SDI has low level whole time as requested by datasheet. This is confirmed by measurement on oscilloscope.
I have following questions about setup of HW and SW:
1.) I configured the registers according Example1 in datasheet (85E000B, 8A079600, 81F804AE). Can I used these setting in case that I have not connected any Leads to body? I want only to see, that some noise/data are measured and confirm that my ADAS works.
2.) I have connected my microcontroller over SPI (SPI1 pins + DRDY pin) to J4 connector of ADAS board. But I didn’t use the pins PD, RESET. Should I connect these pins to some level of voltage?
3.) From reason, that I am using own microcontroller, how should I set up the jumpers LK12, LK13, LK14 on ADAS1000 board?
4.) What does it means exactly that the “Ready bit” is still set to BUSY? What reasons can cause this state?
Do you have any idea about solution or any questions about my setup of HW and SW?
1) Firstly we do not connect the evaluation board to a human being or animal. In your debug stage you can set up the ADAS1000 to work with a patient simulator. This would be our recommended starting point. Alternatively, you can connect a signal generator:
ADAS1000 and using a signal/function generator as the signal source
2) Yes, the polarity of these pins is important. I would recommend pulling these pins high via a 10k pull-up. See page 15 of the ADAS1000 Rev B datasheet.
3.)This depends on the system you are wishing to use the slave device. Again there is detail on this here:
4) The part is converting data and isbusy making a conversion. It is not ready to make a new conversion.
If you have no stimulus connected to the input then you will not see a reading. Connect a patient simulator. The applications board is not designed to work with a human being. Do not connect the Analog Devices evaluation board to a human or animal. You need to ensure that you are polling the ready signal and not trying to initiate a conversion while the ADC is making a conversion.
Retrieving data ...