Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

High speed ADC + Netduino

ADC

  • Please log in to reply
1 reply to this topic

#1 durnek60

durnek60

    New Member

  • Members
  • Pip
  • 1 posts

Posted 02 August 2014 - 04:11 PM

Hello Experts,

 

I am wondering about connect Netduino and high speed adc. (Texas Instruments ADS1258 type... for example.) based on the adc datasheet, the communication is supported over SPI and data ready interrupt indicate when the conversion is ready. Looking at the adc sampling rate, I would like to know what should I expect from the Netduino. I am worried about the frequent interrupt occurrence from the ADC and the SPI-based data read transfer may exceed the Netduino capabilities. Telling you the truth, I would be satisfied with the 2-5kHz data transfer rate. I know the NETMF is not a real time environment but I hope the device is capable of this task.

 

Anyway, what is the suggested way of handling these ADC?

 

Looking forward any suggestions, 



#2 Mario Vernari

Mario Vernari

    Advanced Member

  • Members
  • PipPipPip
  • 1768 posts
  • LocationVenezia, Italia

Posted 03 August 2014 - 05:14 PM

I would see just two problems: one on hardware and the other related to the software.

 

On the hardware side, you should provide a very good voltage reference as well as a good PCB routing. The reference section should be well stabilized, along both power supply noise/spikes and temperature variations.

That's not enough.

You probably have to add some protection/conditioning stage on the ADC inputs, such as resistors+capacitors and, hopefully, an OP-AMP (per input).

You are dealing with a 16-bit ADC, which means a LSB is less than 100uV. Either you have the hardware more stable than this value, or the numeric value read will float more or less. That is, instead of having 16 bits, you could have -let's say- 10 bits "reliable".

For instance, the Netduino's internal ADC is a physical 12-bit logic, but you should consider a practical 9-10 bit at maximum.

 

On the software side...well, the ADC suggested looks great: appears to make everything by itself, and the host has just to read the data streaming. Awesome!

Problem: even considering the lowest data rate that you accept (2kHz), it means that every 500us the Netduino should read the ADC value(s). I didn't dig the ADC's specs on how many values are ready within a single frame, but...let's suppose just one (extremely favorite option). Your C# application running in the Netduino Plus 2 (*) should consume the data and probably do some task with that: it's easy to check that in a little as 500us your app does almost nothing.

So, hard compromises between speed and business-level coding.

 

(*) The "Plus 2" is again the choice to favor the fastest Netduino available.

 

Suggestion to handle such a ADC?

I don't know what's your goal, but I'd consider a small "Arduino-like" board (even a simple MCU) doing the hard-to-solve job, then the semi-finished data could be read by the Netduino (e.g. via UART) in case a more complex job is required.

However, this suggestion would solve the "software" problem: the "hardware" issues require ability to deal with electronics. No way!

 

Sorry to disappoint you!

Good luck


Biggest fault of Netduino? It runs by electricity.





Also tagged with one or more of these keywords: ADC

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.