Custom Data Acquisition Systems for Newbies. - Page 1
Forum section: electronics / beginners

author: Gumbysauce
author_rank: Contributor
timestamp: August 10, 2020, 11:29:57 pm
content: Hi All,I am looking for information regarding the best way to construct a data acquisition system. Currently I am using a DAQ 6510 from Keithley to acquire signals from a single channel. However, my future projects will require more inputs that can simultaneously measure signals from an array of sensors. I need inputs that can sample simultaneously because I want to be able to use spatiotemporal information from the array to improve my SNR (beamforming filters) as well as to obtain spatial information (direction and position) from the array.My specifications(Please correct me if these don't add up)At least 8 channels. One of the main benefits I see of constructing a custom system would be the ability to incorporate more channels for different projects.Each channel should have a 16-bit (maybe more) ADC.A maximum sample rate of ~1 MSPS for each channel.An adjustable sample rate for each channel.Compatible with many different front-ends. We use custom connectors, drivers and enclosures so a flexible form factor is essential.I have looked into commercial solutions for data acquisition systems that would meet (and usually exceed) our specifications. However, the price per channel of these systems is usually very high. The companies lock you into using their software for getting reasonable performance out the instrument and if you use their APIs with other applications (MATLAB for example) things get slowed down significantly. So right now I am trying to perform a cost/benefit analysis of developing a custom system.A bit about meI am an electrical engineering graduate student working on unconventional sensor materials and their device integration.I am comfortable developing and constructing analog front-ends to drive these sensors and to drive the ADCs afterwards. I am familiar with STM32 micro-controllers and their programming.I am NOT experienced in developing high speed digital systems. I am not comfortable engineering solutions based on FPGAs (although I would like to be).What have I done to approach the problemI understand that the system can, roughly, be broken down into a few parts. The choice of the ADC is an important parameter. To simplify things, I have chosen the AD4000 series of SAR ADCs for the task. (They fit the spec and I have multiple reference designs for them). I am comfortable replicating the front-end design in the data sheet for these devices. The next section that is important is the interface. I am not sure of the complete reasoning, but from what I have gathered, most systems of this type utilize an FPGA to interface with the ADCs. I think this is in no small part because an FPGA can have a greater number of SPI peripherals than most micro controllers can offer as well as interface to a larger amount of memory. The next big choice in the design would then be to choose how much memory is integrated along with the FPGA. I don't know how difficult it is to obtain the IP for a controller to interface with external RAM from an FPGA. Any info regarding that component would be greatly appreciated. Once we know how many SPI interfaces we need and how much memory were interfacing with, I imagine that one can choose an FPGA that suits these needs. I am inclined to use an Intel FPGA since I have poked around in Quartus a bit while I have not ever used a Xilinx tool or FPGA. If you think that there would be a strong difference in the two brands for this purpose, please let me know. For now, I am inclined to go with the Intel MAX 10 FPGA since it is relatively inexpensive and appears to have the functionality I need. I am a bit concerned that I will not be able to generate the NIOS-2 IP that I need to create the integrated microcontroller without purchasing some extremely expensive software licenses but I intend to find that out once I get some feedback from the community regarding my approach. Finally, I need a way to interface with a PC for data processing. I think that FTDI offers a variety of ICs that make it fairly easy to create USB 2.0 to UART interfaces. (488 Mbits/sec might not five me real-time info, but it should be good enough with a large enough ram buffer linked to the FPGA) I have no experience with utilizing these chips for programming or data transfer and if the community knew of some resources to help me get started that would be great.So this approach is heavily based on the work of Trenz-electronics AnalogMax-DAQ 1 module which is one of the reference designs I am working off of. I would love to implement something like this, but my lack of knowledge on the development of high-speed digital electronics is really holding me back. I don't even know where to start on developing the FPGA data handler and integrating it with a NIOS-2 micro controller seems to be well above me head at the moment. I would love some suggestions for resources and reference designs that may help me get started and I welcome criticism of my rather dough-y approach. If you all know of other ways of implementing this type of system please let me know. I am trying to gauge my options and choose the best approach for the task.Thanks.

author: tggzzz
author_rank: Super Contributor
timestamp: August 10, 2020, 11:41:59 pm
content: That's a decent question with lots of relevant detail and thought.I think the first thing you should do is work out how to value your time. For example, you might choose to value learning FPGAs at zero cost, because that is a skill you want to have in the future. But you have anobjectivew.r.t. beamforming filters. How much cost should you assign to delaying working on andcompletingyour objective?Another approach is that if you cannot afford to buy equipment, perhaps renting would be practical. Decades ago the rule of thumb was that the monthly rental cost was ~1/10 of the purchase price.

author: Gumbysauce
author_rank: Contributor
timestamp: August 11, 2020, 01:36:22 am
content: Quote from: tggzzz on August 10, 2020, 11:41:59 pmThank you.That's a really good point. It's difficult to judge the amount of time I would save before I truly understand the capabilities of the commercial systems that are available. But it would probably be a lot. I will look into what is available to rent.

author: free_electron
author_rank: Super Contributor
timestamp: August 11, 2020, 02:58:05 am
content: yokogawa has the answers for you.they have multichannel recorders with deep memory , large bandwidth , high bitcount and synchronous sampling.

author: wizard69
author_rank: Super Contributor
timestamp: August 12, 2020, 04:17:09 am
content: One thing that stood out to me was this:"An adjustable sample rate for each channel."which doesn't make sense if you need synchronous sampling.As for cards have you look into the likes of products like this:https://www.bustec.com/products/detail/prodaq3430/.If you want speed you will have to program them your self in C or C++. While designing a card for this application might be good experience I suspect that it would lead to months or even years of delay to get the card up and running and reliable. With a card like this you have 4 of your channels done and hopefully fully debugged. This is just one example of card ready for synchronized sampling. By the way yes I know it will cost money but you likely will save yourself months of time to produce your own hardware to do the same thing.

author: Berni
author_rank: Super Contributor
timestamp: August 12, 2020, 07:37:53 am
content: Yep the ScopeCorders from Yokogawa are the tool for the job. They make some top quality Japanese stuff.https://tmi.yokogawa.com/solutions/products/data-acquisition-equipment/high-speed-data-acquisition/You just populate it with the modules you want to give you any combination of speed and bit depth, all on galvanicaly isolated channels.

author: gooligumelec
author_rank: Contributor
timestamp: August 12, 2020, 07:54:09 am
content: Quote from: wizard69 on August 12, 2020, 04:17:09 amNot necessarily. E.g. one input sampled twice as as fast as another, such that every 2nd sample is synchronous.

author: max_torque
author_rank: Super Contributor
timestamp: August 16, 2020, 08:28:18 pm
content: This is another of those "what is your project actually about" descisions!If you ACTUALLY want to get on with your actual project, then just buy a proven solution. The money, time and effort expended in re-inventing the wheel is ime, usually so significant it tends to prevent the actual project from being completed. Yes, high speed, high precision instrumentation is expensive, but it's expensive precisely BECAUSE it is time consuming and expensive to develop. And of course, if you develop it yourself, how do you prove it's accuracy? Buy an OTS solution and you'll get a proven level of accuracy.The way to save money if you really have too, is, ime to write the software yourself and use a hardward product that has a suitable API already written, making it "Plug and play" as much as possible. I use National instruments DAQ equipment fairly extensively and they have both a wide portfolio of well proven aquistion hardware covering a vast range of capabilities, but also enough technical support to enable a user to get on with what they are actually doing, and not just waste all their time getting something to work!And whilst it might seem expensive, splashing out say $1,000 on a DAQ, when you sit down and work out how long it would take to actually make and validate one yourself, it's just about never worth it ime!https://www.ni.com/en-gb/shop/pc-based-measurement-and-control-system.html