243
edits
ElenaZhivun (talk | contribs) |
ElenaZhivun (talk | contribs) |
||
There are several main approaches we can use. The first approach is to have multiple FPGAs, each one controlling a set of four magnetometers. The cheapest NI FPGA (7851R) costs $2.8k, equating is $700/channel. The drawback is that the FPGA only has 8 analog inputs and 8 analog outputs, and there are no analog outputs free for the feedback signals. There are still free digital outputs that the FPGA can use to talk to an Arduino over SPI or something similar. Using FPGAs will result in the fastest feedback with proper timing. We don't have the requirements for the feedback to be fast (its band is DC-0.5 Hz as of now) With the signal normalization the FPGA is already close to its limit of slices.
The second approach is to use a PXI rack with stacks of ADCs and DAQs. The advantage is that we can add DAQs very easily by adding new boards. We could use a dedicated real-time controller to process the data, and if both DAQs and ADCs support NI DAQmx then the real time controller is not really needed. These boards have their own controllers that ensures timing, and the data processing can be done on the host computer. Each sensor running at 20 kHz with 18-32 bit resolution should produce around 1 MBit/second of data, which is very manageable. With a dedicated controller the price would be $500/channel, and if the host does the data processing it's $230/channel.
The third approach would be to use a dedicated microcontroller for each channel. The downside of this approach is that it would take the most of the development time, although the parts would be the cheapest. The microcontroller would need to be chosen very carefully, as many of them don't have enough processing power to process the data (many are 8 bit and don't have a multiplier). Microcontrollers don't typically have high-resolution DACs and ADCs built-in. These would need to either come on a development board and connect to each other, or laid out on a separate board with the microcontroller. Task scheduling would need to be coded by hand, too.
| Controller || PXIe-8840 || - || - || - || -- || 4500
|}
== 10/13/2016 ==
Talked to Chad and Jes about the controllers for driving the sensors.
|