6

The ADS1256 chip is a high precision 24bit, 8 channel, analog digital converter based on SPI communication that is suitable for biomedical applications and perfect for sensing ECG and EEG signals. I want to hook it up to an arduino, e.g., an arduino mega or an arduino due.

Similar ADCs from analog devices are: ADS1248, ADS1251, ADS1252, ADS1252U, ADS1253, ADS1255, ADS1259, ADS1278, ADS1298, ADS1299, etc.

It’s nice that there are [tiny, coin sized breakout boards] available for the ADS1256 that include basic components like an 8mhz quartz crystal and cost only around 25 USD.

Several people have in the past struggled to get ADC readings using Arduino. Working only with the data sheet it took them several days or even weeks. I have a logic analyzer, multi channel oscilloscope and bus pirate ready, but I still would prefer adapting an existing library or working with a good tutorial as a starting point.

I searched for code and tutorial not only for the ADS1256 but also for similar analog devices ADC chips.

Here are the tutorials, libraries and information I found so far:

Main Links (working solution):

-- ADS1213 Arduino library (seems to be working!!!)

-- ADS1213 Arduino tutorial (includes above library)

Further Information:

Q:
Is there a working library for the ADS1256 (or similar chip) and is there a current, up-to-date tutorial available for arduino?


(Update with my notes.)

Next steps (to get a working library that should be put on github):

  1. Search for more relevant Information online (existing libraries, etc.)
  2. Ask in AVR specific forum, if question is unanswered here. Possibly contact people via e-mail that could know more
  3. Get familiar with Chip and Datasheet
  4. Decide on available codebase as the starting point
  5. Define the minimalistic testcase (This would check that some for of communication works with the chip, i.e., write register that changes the logic level of a bin of the ADC chip)
  6. Implement the minimalistic testcase (i.e., possibly use different codebase as starting point if it fails to implement)
  7. Expand and test the code to get a full implementation

Risks: Eittle experience with electronic design the microcontroller at hand, might miss important details that costs a lot of time. Can't be sure that my chip/PCB actually works, can be faulty hardware.

Time Estimate: 3 days of work doing 8 hours a day (total 24 hours). Exremly high variance (could be a matter of a few hours in the best case to a few weeks worst case).

  • Welcome to the wacky world of electronic design, where things can take days or even weeks to get done. – Ignacio Vazquez-Abrams Nov 8 '14 at 15:12
  • 1
    @Ignacio Vazquez-Abrams Thanks for your comment. I really have already worked from only the datat sheet, but as it might take long this is really a waste of time if there are prior works or libraries availiable. I am comming from computer science and I am not an expert in electronic design. – mrsteve Nov 8 '14 at 19:25
  • If you are interested in this question please comment (and don't write an answer to get in constact, as this gets obviously deleted as happend today). So please write comment instead!! – mrsteve Nov 9 '14 at 22:12
  • Have you had a chance to look at getting SPI working with it? – Ignacio Vazquez-Abrams Nov 9 '14 at 23:06
2

You are lucky. Looks like there is an Arduino library available for the ADS1256. You should give it a shot: https://github.com/Flydroid/ADS12xx-Library .

I haven't tested it but checked the registers and functions from the datasheet and it does look good.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.