Linux - Embedded & Single-board computerThis forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I am looking for something along the lines of a Single Board Computer (SBC), a Digital Signal Processing (DSP) board, or a microcontroller. Though I am open to any other suggestions, but what I essentially need to be able to do is the following.
Requirements:
- 4 channel ADC
- Sample rate of 1kHz; meaning I want to be able to sample from all 4 channels at a rate of 1kHz, whether that means sampling each input individually (in a round-like fashion at a higher rate in order to complete sampling all 4 channels at an overall rate of 1kHz), or sampling all 4 channels at the same time each at a rate of 1kHz.
- Can write to USB (USB Host port)
Project Breakdown: I have 4 analogue signals I need converted to digital signals, and store on a USB key, at a rate of 1kHz.
I am very new to working with these pieces of equipment, so please be understanding if I make any errors in talking about them, or am completely mistaken about the components to use.
I have so far been steered in the direction of using a SBC or a DSP board. However, I’ve been searching for days going over board after board, and I can’t find anything that has a high enough sample rate. The closest I’ve found to what I need is a series of ARM single board computers, the TS-7000 series.
Other than the TS-7800, the others didn’t seem to come close enough. Even the TS-7800, after reading the manual closely and inquiring about the meanings of some parts, I still found that when operating with 4 channels the overall sample rate would only be 0.5kHz (2kHz/ch).
I would really appreciate any advice, or experience that anyone can share with me. If you know of an actual component that fits my requirements that would be amazing, but even if you’re just able to steer me in a good direction it would be greatly appreciated.
The answer that you get is very heavily dependant on exactly what question you ask...
Quote:
Originally Posted by Yoreki
Requirements:
- 4 channel ADC
- Sample rate of 1kHz; meaning I want to be able to sample from all 4 channels at a rate of 1kHz, whether that means sampling each input individually (in a round-like fashion at a higher rate in order to complete sampling all 4 channels at an overall rate of 1kHz), or sampling all 4 channels at the same time each at a rate of 1kHz.
- Can write to USB (USB Host port)
Project Breakdown: I have 4 analogue signals I need converted to digital signals, and store on a USB key, at a rate of 1kHz.
...The closest I’ve found to what I need is a series of ARM single board computers, the TS-7000 series.
Other than the TS-7800, the others didn’t seem to come close enough. Even the TS-7800, after reading the manual closely and inquiring about the meanings of some parts, I still found that when operating with 4 channels the overall sample rate would only be 0.5kHz (2kHz/ch).
I don't know the 7800 in any detail, but...
the processor's A/D is way faster than that (I'm assuming that its on chip, there may also be an off chip A/D with multipexer on that board, let's say, roughly 1uS), but if you try to perform signal capture by, say, running a cron job as frequently as you can to grab 4 channels worth of data (it'd be worse, in this scenario, to get one at once) you'd be looking at more like 1 second per capture.
So, how fast you can have the data is very heavily dependant on how you perform data capture; so far you haven't even said that you intend to use an operating system, but I assume that the implication of posting here is that such a thing is at least on your mind.
You probably have to take some decisions, none of which are an easy 'this makes all things simple' kind of outcome. So, at some point, you have to decide on which difficulties you are prepared to work to overcome and which you aren't.
Pretty much any board that you might find will have an a/d (hardware) that will cope with your speed requirement, but whether you can actually exploit that with the software that you choose to use is another matter entirely. Of course, you haven't been entirely clear about your data writing requirement and, if you were, for example, to throw the OS away (a bit dramatic, but as an example...) you'd be able to exploit the a/d more fully, but then you'd have difficulty with USB writing.
I would disagree with the statement that any board would cope with the OPs desired sample rate. Sample rate is both hardware and software/firmware dependent. The TS-7800 onboard ADC provides an analog to digital capture function by way of an on-board AVR microcontroller. My first guess would be the microcontroller is the limiting speed factor
The TS-7800 onboard ADC provides an analog to digital capture function by way of an on-board AVR microcontroller. My first guess would be the microcontroller is the limiting speed factor
At least I'm pretty sure of this, I took a pretty good look into it and I even looked at the datasheet of the AVR I believed to be on the board.
Thanks for the recommendation michaelk, but I don't believe that board has a USB host port on it
-----
To salasi,
Sorry if I haven't provided enough information, I'm trying to figure out what approach to take for the problem, whether to go with a SBC, a DSP board, or a microcontroller accompanied by other parts. I'm in fact asking a bunch of different forums for opinions, and I'm lacking in information regarding these fields so I'm not always sure what kind of information is needed or wanted. I will try and get into better detail.
I didn't specify whether I was using on operating system or not because I wanted to leave my problem more open ended to see what is available.
One of the main things I'm leaning towards is using a Linux OS on a SBC, as it seems like the simplest way to write to a USB host port. I have never done anything like this before, so I don't know about the different ways software can effect the sampling rate I can achieve. Do you have any resources I can look into for this?
As far as the writing requirement goes... not too sure what you mean by that. I need to be able to read from all 4 channels at a rate of 1kHz, and I then need to record that data to a USB key. So I suppose I need to be able to write at a rate that keeps up with my reading rate. I assume I can vary this later in the programming I do depending on the amount of data the board can hold at a time?
If I'm still lacking in the information I've given you please ask me more questions, I'm learning as I go here but I'm willing to learn
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.