..... Update 14 June .... I've changed the requirements for what I seek help for so as to possibly make it simpler to program and work with. Please see below ...
--------------------------------
I really hope one of you may be interested in helping with this as I'm not a programmer myself and doing it in hardware may be a somewhat long and tedious process ...
As it is I seek help to program e.g. an FPGA, CPLD or other feasible solutions (an evaluation board?) so as to transport a two complement data signal from 6 SAR ADCs (LTC2380-24) into a computer.
Basically, the flow of the conversion is this:
1. The ADC gets a clock (CNV) signal - which starts the conversion. The sample rate is 1.536 MHz.
2. After max 397 ns the conversion is completed, a busy pin on the ADCs goes low, and then the FPGA/CPLD/similar will need to output 24 SCK pulses to the ADC (24 bits). Concurrently with these SCK pulses, the ADC conversion data is read and transferred to the FPGA/CPLD/similar. Clock/data speeds may be around 100 MHz here.
3. In a suitable way the data is then transferred to the PC where it should be stored in a .wav file format.
I really, really, really would appreciate if one of you can help with this (will pay for it) as it would be a Herculean effort for me to learn to program right now - and I reckon it's an accessible task for someone who knows how to program these devices.
Many thanks for any help - please post a reply here if you are interested - or send me a PM and we can talk about specifics.
Cheers,
Jesper
--------------------------------
I really hope one of you may be interested in helping with this as I'm not a programmer myself and doing it in hardware may be a somewhat long and tedious process ...
As it is I seek help to program e.g. an FPGA, CPLD or other feasible solutions (an evaluation board?) so as to transport a two complement data signal from 6 SAR ADCs (LTC2380-24) into a computer.
Basically, the flow of the conversion is this:
1. The ADC gets a clock (CNV) signal - which starts the conversion. The sample rate is 1.536 MHz.
2. After max 397 ns the conversion is completed, a busy pin on the ADCs goes low, and then the FPGA/CPLD/similar will need to output 24 SCK pulses to the ADC (24 bits). Concurrently with these SCK pulses, the ADC conversion data is read and transferred to the FPGA/CPLD/similar. Clock/data speeds may be around 100 MHz here.
3. In a suitable way the data is then transferred to the PC where it should be stored in a .wav file format.
I really, really, really would appreciate if one of you can help with this (will pay for it) as it would be a Herculean effort for me to learn to program right now - and I reckon it's an accessible task for someone who knows how to program these devices.
Many thanks for any help - please post a reply here if you are interested - or send me a PM and we can talk about specifics.
Cheers,
Jesper
Last edited:
I really, really, really would appreciate if one of you can help with this (will pay for it)
as it would be a Herculean effort for me to learn to program right now - and I reckon
it's an accessible task for someone who knows how to program these devices.
I would contact your local university's computer science or ECE dept.
Lots of students need to make some extra money.
Last edited:
Hi rayma,
Thanks for the tip but I actually already did this without luck ... I wonder if it's a difficult task but at the same I don't think it would be if a programmer knows about this ... 😕 🙁
I would contact your local university's computer science or ECE dept.
Lots of students need to make some extra money.
Thanks for the tip but I actually already did this without luck ... I wonder if it's a difficult task but at the same I don't think it would be if a programmer knows about this ... 😕 🙁
Thanks for the tip but I actually already did this without luck ... I wonder if it's a difficult task
but at the same I don't think it would be if a programmer knows about this ... 😕 🙁
It certainly would be a significant project. Maybe you can talk to profs in CS, ECE, or physics,
and see if they could recommend a student. It might be suitable for a formal project.
Last edited:
It certainly would be a significant project. Maybe you can talk to profs in CS, ECE, or physics, and see if they could recommend a student. It might be suitable for a formal project.
Hi rayma,
Thanks again for your feedback ... I may consider this but am a bit short of a very long time perspective. And right now the universities are concluding the semester with exams etc. so I guess that for a formal project a completion date may not be until late autumn which is too late.
So right now I'm looking around for professional help and did some phone calls today to hear about the possibilities. Nothing final yet but possibly an opening.
Cheers,
Jesper
Sounds like a great final project or practicum for a student. As you say, too bad about the timing.
Tom
Tom
And right now the universities are concluding the semester with exams etc. so I guess that for a formal project a completion date may not be until late autumn which is too late.
You might find a bored postgrad who wants a challenge...
You might find a bored postgrad who wants a challenge...
Linear has Arduino code on the page for the LTC2380 . The code reads the device from an SPI port and converts the serial data to a voltage. With that code as a starting point, you might just need a sharp high school student instead of a bored postgrad.
Hi all - thanks again for your comments & suggestions ...
@Neil Davis: I'm aware of code for what they call the Linduino, however, the speed on the SPI port will reach ~100 MHz and to my knowledge there's no Arduino board that can operate at these speeds. As it is I've actually also asked Linear about it and they say "no chance". But thanks for the idea ;-)
I may contact the university again - maybe there are some students that have finished the semester now and have some spare time before going on vacation (for which they may need money ...). Yet again, if someone here is interested please let me know - one never knows where the help may come from ....
Cheers,
Jesper
@Neil Davis: I'm aware of code for what they call the Linduino, however, the speed on the SPI port will reach ~100 MHz and to my knowledge there's no Arduino board that can operate at these speeds. As it is I've actually also asked Linear about it and they say "no chance". But thanks for the idea ;-)
I may contact the university again - maybe there are some students that have finished the semester now and have some spare time before going on vacation (for which they may need money ...). Yet again, if someone here is interested please let me know - one never knows where the help may come from ....
Cheers,
Jesper
Have you looked at the commercial SPI boards that claim to support 100MHz transfer rates? There is a list of vendors on the Wikipedia article on SPI interface: https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus.
You've actually got at least three problems: the high-speed interface to the chip (SPI), local buffering of the data, and then high-speed transfer to the PC (USB, usually). For continuous high-speed data, this will be a custom board, with enough timing challenges to make proven off-the-shelf solutions the only practical possibility.
But nobody is going to touch this as a programming challenge until the application is better characterized. The LTC2380-24 is often used with the averaging filter to reduce noise. Obviously, values of N greater than 1 will reduce the data rates. Does the application use the averaging filter? Also, how much buffering is allowed? 1.5Msps with 24-bit words is a relatively high data rate to sustain into a PC, but it could be achieved in a burst, which would require buffering and associated latency. So the designers will need to know the maximum sustained data rate and the allowable delay.
Also, it would help to know more about the application. Is the data filtered or averaged in the PC, and if so, can that filtering be done in the LTC2380-24 to reduce N and the transfer rate? You say the data will be converted to a .wav format...is that just a container for digital data or audio? Until more is known about the application, no one can tell whether this problem requires a custom high-speed solution or whether it is a simple job for a cheap micro.
You've actually got at least three problems: the high-speed interface to the chip (SPI), local buffering of the data, and then high-speed transfer to the PC (USB, usually). For continuous high-speed data, this will be a custom board, with enough timing challenges to make proven off-the-shelf solutions the only practical possibility.
But nobody is going to touch this as a programming challenge until the application is better characterized. The LTC2380-24 is often used with the averaging filter to reduce noise. Obviously, values of N greater than 1 will reduce the data rates. Does the application use the averaging filter? Also, how much buffering is allowed? 1.5Msps with 24-bit words is a relatively high data rate to sustain into a PC, but it could be achieved in a burst, which would require buffering and associated latency. So the designers will need to know the maximum sustained data rate and the allowable delay.
Also, it would help to know more about the application. Is the data filtered or averaged in the PC, and if so, can that filtering be done in the LTC2380-24 to reduce N and the transfer rate? You say the data will be converted to a .wav format...is that just a container for digital data or audio? Until more is known about the application, no one can tell whether this problem requires a custom high-speed solution or whether it is a simple job for a cheap micro.
I should have added a question or two about the 6 SAR devices. Are they all going to the same PC? Are they all at running at the same rate? That would be a lot of data getting processed in the PC, and whether or not you have a suitable SPI interface might not be the biggest challenge. Can the data be collected "off-line", or does it need to be processed as a real-time stream? You might want to hire a Systems Engineer as well as a programmer to make sure you have a good "architectural" approach.
At 4 times the rate of a Digital eXtreme Definition file, is there any software available to manipulate such a file ?
@rfbrw:
Hi ... ardour from ardour.org is not internally limited to any speed if the so-called JACK backend is used. I don't know more right now than this as I haven't had the time to look more into how it is done in practice.
@neil davis: Hi Neil ... Thanks again for taking the time to comment and suggest. I'm considering various possibilities for now including some of what you have mentioned:
No, I have not previously (didn't know they existed) but have taken a look this morning at the Wikipedia list and have contacted "Byte Paradigm", which appears to have the only card (SPI Storm) that is capable of 100 MHz SPI clock communication.
Apparently, this card should also be able to sustain up to 48 MBytes/s - although with "only" four channels. What is needed for four channels at 1.536 MHz is 18.43 MBytes so there should be some headroom.
According to Byte Paradigm data from two cards may also (easily?) be combined into one file.
As I wrote above I have contacted Byte Paradigm this morning and they will verify that the card is capable of what is needed - in which case it would be a superbly simple and economically accessible solution. So many thanks Neil 🙂 😉 😀 for this idea - should you think of other manufacturers that makes cards capable of this speed I'd be most interested in hearing about it ...
Cheers,
Jesper
At 4 times the rate of a Digital eXtreme Definition file, is there any software available to manipulate such a file ?
Hi ... ardour from ardour.org is not internally limited to any speed if the so-called JACK backend is used. I don't know more right now than this as I haven't had the time to look more into how it is done in practice.
@neil davis: Hi Neil ... Thanks again for taking the time to comment and suggest. I'm considering various possibilities for now including some of what you have mentioned:
Have you looked at the commercial SPI boards that claim to support 100MHz transfer rates?
No, I have not previously (didn't know they existed) but have taken a look this morning at the Wikipedia list and have contacted "Byte Paradigm", which appears to have the only card (SPI Storm) that is capable of 100 MHz SPI clock communication.
Apparently, this card should also be able to sustain up to 48 MBytes/s - although with "only" four channels. What is needed for four channels at 1.536 MHz is 18.43 MBytes so there should be some headroom.
According to Byte Paradigm data from two cards may also (easily?) be combined into one file.
As I wrote above I have contacted Byte Paradigm this morning and they will verify that the card is capable of what is needed - in which case it would be a superbly simple and economically accessible solution. So many thanks Neil 🙂 😉 😀 for this idea - should you think of other manufacturers that makes cards capable of this speed I'd be most interested in hearing about it ...
Cheers,
Jesper
It's easier to just take a FPGA, do the decimation filter as needed and output I2S, then feed it to one of the new 768Khz XMOS boards, bundling channels as needed. Then you don't need to also do a windows driver....
As you probably know I could easily do the FPGA, but I'm short of time and would therefore need to charge you the full rate, which I doubt you want to pay....
As you probably know I could easily do the FPGA, but I'm short of time and would therefore need to charge you the full rate, which I doubt you want to pay....
Hello,
Gentlevoice, it would be first interesting to know what did you want to do with the ADC.
Have you seen that LT have the companion board for the LT2380-24 EVM that allow collecting
and analyse data at the full sampling rate ?
The dedicated software PScope seem also very powerful with plenty of features.
Soekris,
I think (but i can be wrong) that the problem with XMOS board it that they use their own MCLK
oscillator. So, for my ADC based on LTC2380-24, i would use this one but despite my ask (here),
they don't confirm me that the board can be drived by external MCLK signal (from my ADC).
The USBstreamer is very similar, with same problem : it work with it's own MCLK.
JenSH use it in his audio analyser project, but as i have read he have made some hardware modifications on
the board...
Do you have yourself an experience with XMOS device as receiver ?
What is the result and what we can really expect ?
Regards.
Frex
Gentlevoice, it would be first interesting to know what did you want to do with the ADC.
Have you seen that LT have the companion board for the LT2380-24 EVM that allow collecting
and analyse data at the full sampling rate ?
The dedicated software PScope seem also very powerful with plenty of features.
Soekris,
I think (but i can be wrong) that the problem with XMOS board it that they use their own MCLK
oscillator. So, for my ADC based on LTC2380-24, i would use this one but despite my ask (here),
they don't confirm me that the board can be drived by external MCLK signal (from my ADC).
The USBstreamer is very similar, with same problem : it work with it's own MCLK.
JenSH use it in his audio analyser project, but as i have read he have made some hardware modifications on
the board...
Do you have yourself an experience with XMOS device as receiver ?
What is the result and what we can really expect ?
Regards.
Frex
Hello,
Soekris,
I think (but i can be wrong) that the problem with XMOS board it that they use their own MCLK
oscillator. So, for my ADC based on LTC2380-24, i would use this one but despite my ask (here),
they don't confirm me that the board can be drived by external MCLK signal (from my ADC).
The USBstreamer is very similar, with same problem : it work with it's own MCLK.
JenSH use it in his audio analyser project, but as i have read he have made some hardware modifications on
the board...
Do you have yourself an experience with XMOS device as receiver ?
What is the result and what we can really expect ?
Regards.
Frex
I use the XMOS XS1 series chip in my dac1101, with customized drivers and everything, works great at 384K. XMOS have promised 768K support, but I've seen some bundle the channels to get 768K, could probably also do 1536K, but then you need to do your own windows/linux drivers.
The audio clocks on XMOS designs are usually separate oscillators, if you can't find a board supporting external audio clock it should be easy to just remove the audio oscillators and feed you own clock....
I'm actually working on a Pro ADC/DAC using the LTC2380-24 for the ADC part (and my discrete R-2R for the DAC part), with a XMOS USB transceiver and sync to external clock using a Si570 based digital PLL, have already the digital PLL firmware in the dam1021....
Ok Soren, so you use the IC alone on your (proprietary ?) hardware platform.
I speak more about hardware solutions that can do the job without designing
it myself (same for drivers), like the nearly bare board from DIYink here.
Frex
The diyinhk XMOS boards are fine, as I said, you can just remove the audio oscillators and feed it your own clock....
Or find a isolated XMOS board, then the oscillators are on the isolated side and even easier to find and remove....
Hi all,
Hmmm... so a bit of an update from me ... and feedback on your comments & questions ...
@Neil Davis: As I wrote in my post yesterday I had contacted byteparadigm to find out if their 100 MHz SPI card could be used. Unfortunately it can't mostly because it won't be able to work with file sizes needed to capture data for e.g. a 5 hour period. They did, however, suggest an ethernet based solution but the price (in the vicinity of EUR 11000) would be out of my reach.
I have, however, gotten an offer from another reliable source where a PCI card (not PCIe) is used to record 1 - 6 channels at either 768 kHz, 1.536 MHz or 3.072 MHz with a very easy setup. The the data is then saved to a suitable .wav file.
I don't yet know if it'll be possible to stream the data but it would be ok with me personally to have it saved as a file (will inquire about streaming). One potential "challenge" is that it's PCI but I notice that e.g. Asus still offers quite fast motherboards with a PCI slot. And apparently a company named magma makes PCI expansion boards.
The price for this (card + software w. guarantee for functionality) is around USD 5000 incl. taxes. I find this to be a quite interesting offer although it's a bit beyond my own current financial capacity if I am to buy it on my own. But if just one, two or maybe more people could be interested in joining up on this (GB, "crowdfunding") it could be an option ...
Apparently the same software structure/card combination is also capable of playing back .wav files (i.e. directly from file - but I suppose a small software application could make this user friendly for continuous playback) at 768 kHz, 1.536 MHz & 3.072 MHz. This would cost something extra though (but probably accessible).
For an extra cost (not yet fully estimated but probably less than USD 3000) DSD recording capability (DSD512, DSD1024; DSD2048) & playback (again from file - small extra cost) could be added .... The playback structure I suppose may need to go around e.g. Jussi from HQPlayer but I reckon it would be possible.
@Frex: Thanks for your comments yesterday ... 😉 ... Here's a bit of feedback on what you wrote.
My purpose is a recording system (for audio).
Yes, I've noticed this and have been in touch with LT support to ask about any options here. And apparently one of their engineers have been using the 890 card (I think it was) for something similar but synchronization was not simple. They suggested using e.g. FTDI's FT60* series combined with e.g. an Altera or Xilinx FPGA card. FTDI actually has developed a software package that may be used for this combining the FT60* series controllers with the altera but I haven't had the time to check it out in depth. It looks, however, as if it is four channels and much could be set-up with file configuration changes and maybe a bit of programming (which is where my capability ends).
@soekris: Thanks Søren for your suggestions but if I can I'd like to omit the FPGA as an interstage between the ADC and a USB adapter. It adds another link that needs to work and also dependency on the current USB adapter offerings. In case I can't find what I'm looking for it may be a second option - but I hope I will.
Phewww ... there are so many options - I hope others may take an interest in this and help find a solution.
Have a good day ...
Jesper
Hmmm... so a bit of an update from me ... and feedback on your comments & questions ...
@Neil Davis: As I wrote in my post yesterday I had contacted byteparadigm to find out if their 100 MHz SPI card could be used. Unfortunately it can't mostly because it won't be able to work with file sizes needed to capture data for e.g. a 5 hour period. They did, however, suggest an ethernet based solution but the price (in the vicinity of EUR 11000) would be out of my reach.
I have, however, gotten an offer from another reliable source where a PCI card (not PCIe) is used to record 1 - 6 channels at either 768 kHz, 1.536 MHz or 3.072 MHz with a very easy setup. The the data is then saved to a suitable .wav file.
I don't yet know if it'll be possible to stream the data but it would be ok with me personally to have it saved as a file (will inquire about streaming). One potential "challenge" is that it's PCI but I notice that e.g. Asus still offers quite fast motherboards with a PCI slot. And apparently a company named magma makes PCI expansion boards.
The price for this (card + software w. guarantee for functionality) is around USD 5000 incl. taxes. I find this to be a quite interesting offer although it's a bit beyond my own current financial capacity if I am to buy it on my own. But if just one, two or maybe more people could be interested in joining up on this (GB, "crowdfunding") it could be an option ...
Apparently the same software structure/card combination is also capable of playing back .wav files (i.e. directly from file - but I suppose a small software application could make this user friendly for continuous playback) at 768 kHz, 1.536 MHz & 3.072 MHz. This would cost something extra though (but probably accessible).
For an extra cost (not yet fully estimated but probably less than USD 3000) DSD recording capability (DSD512, DSD1024; DSD2048) & playback (again from file - small extra cost) could be added .... The playback structure I suppose may need to go around e.g. Jussi from HQPlayer but I reckon it would be possible.
@Frex: Thanks for your comments yesterday ... 😉 ... Here's a bit of feedback on what you wrote.
My purpose is a recording system (for audio).
Have you seen that LT have the companion board for the LT2380-24 EVM that allow collecting and analyse data at the full sampling rate ?
Yes, I've noticed this and have been in touch with LT support to ask about any options here. And apparently one of their engineers have been using the 890 card (I think it was) for something similar but synchronization was not simple. They suggested using e.g. FTDI's FT60* series combined with e.g. an Altera or Xilinx FPGA card. FTDI actually has developed a software package that may be used for this combining the FT60* series controllers with the altera but I haven't had the time to check it out in depth. It looks, however, as if it is four channels and much could be set-up with file configuration changes and maybe a bit of programming (which is where my capability ends).
@soekris: Thanks Søren for your suggestions but if I can I'd like to omit the FPGA as an interstage between the ADC and a USB adapter. It adds another link that needs to work and also dependency on the current USB adapter offerings. In case I can't find what I'm looking for it may be a second option - but I hope I will.
Phewww ... there are so many options - I hope others may take an interest in this and help find a solution.
Have a good day ...
Jesper
Last edited:
- Status
- Not open for further replies.
- Home
- Source & Line
- PC Based
- Seek programming assistance (paid).