High Speed data collection (DAC and ADC)
Posted: Thu Apr 22, 2010 6:22 pm
I have owned a XS1-G kit for a long time, and I just purchased the XS1-L1 USB HS Audio 2.0 kit, and I have been "lurking" in the forums on and off for a while...
I bought XS1-G shortly after it came out because I found this technology to very interesting!!!! But I ended up having to use another board (www.tern.com) because I was familiar with it and I had a deadline to meet.
The USB HS Audio kit is of even greater interest to me, because I have several audio projects in mind and this could be an ideal solution...
I have read many of the threads here and it seems that things have come a long way in the past year or so, but it still seems that the learning curve is a bit steep...
That being said... I am ready do dive in and I am hoping that I can get some help in building up some momentum with XMOS technology! Since I have seen several suggestions for more "getting started" types of documents, I would be glad to document my process.
OK - I find that the best way to learn a technology is to use a "real" problem, so I would like to implement the project that I had originally wanted to implement with XMOS.
It is a fairly simple application:
1 I/O output - to signal an external device
1 I/O input - from the external device to tell me to grab an analog value
ADC conversion of a value in less then 3 micro seconds
repeat this for a "few" times (could be as few as 10 or 20 but no more than a few hundred)
do some simple averaging and other simple processing.
DAC output the new analog value.
I also use a serial or ethernet connection to send commands and get responses and status from this device.
This is a control application. The algorithm described above is "correcting" some settings periodically, so even though I need to be able to grab the data fast (about 200khz), I only need to do it for short bursts, and I only need to do it "occasionally" (maybe a few times a minute).
So on the surface this seems like a really good match for XMOS...
The tern.com board that I am currently using is an "AMD186" chip. The technology is old and the processor only runs at 40mhz... However, Tern does have a nice selection of peripheral boards and associated software libraries.
Why should I fix what is not broken.... well I have pushed this board to its limit to achieve the speed requirements described above, so I would like to move to XMOS so that I can do this processing more "comfortably" and more importantly, be ready for even more demanding applications.
Since I have to admit that I do not really know where to begin in using XMOS for this, I am asking for your thoughts and suggestions on how to proceed?
Some questions that I do have:
- How to handle ADC and DAC... I am currently using a 16 bit 1 mhz ADC (AD7655), and 16 bit DAC (LTC2600)
- Should I use a "soft" ADC?
- If not is there peripheral boards that have ADC/DAC that can be easily used the the XMOS kits?
- Is the serial and ethernet code in "good" shape? (by "good shape" I mean is it pretty much usable "as is")
Thanks!!!! - John
I bought XS1-G shortly after it came out because I found this technology to very interesting!!!! But I ended up having to use another board (www.tern.com) because I was familiar with it and I had a deadline to meet.
The USB HS Audio kit is of even greater interest to me, because I have several audio projects in mind and this could be an ideal solution...
I have read many of the threads here and it seems that things have come a long way in the past year or so, but it still seems that the learning curve is a bit steep...
That being said... I am ready do dive in and I am hoping that I can get some help in building up some momentum with XMOS technology! Since I have seen several suggestions for more "getting started" types of documents, I would be glad to document my process.
OK - I find that the best way to learn a technology is to use a "real" problem, so I would like to implement the project that I had originally wanted to implement with XMOS.
It is a fairly simple application:
1 I/O output - to signal an external device
1 I/O input - from the external device to tell me to grab an analog value
ADC conversion of a value in less then 3 micro seconds
repeat this for a "few" times (could be as few as 10 or 20 but no more than a few hundred)
do some simple averaging and other simple processing.
DAC output the new analog value.
I also use a serial or ethernet connection to send commands and get responses and status from this device.
This is a control application. The algorithm described above is "correcting" some settings periodically, so even though I need to be able to grab the data fast (about 200khz), I only need to do it for short bursts, and I only need to do it "occasionally" (maybe a few times a minute).
So on the surface this seems like a really good match for XMOS...
The tern.com board that I am currently using is an "AMD186" chip. The technology is old and the processor only runs at 40mhz... However, Tern does have a nice selection of peripheral boards and associated software libraries.
Why should I fix what is not broken.... well I have pushed this board to its limit to achieve the speed requirements described above, so I would like to move to XMOS so that I can do this processing more "comfortably" and more importantly, be ready for even more demanding applications.
Since I have to admit that I do not really know where to begin in using XMOS for this, I am asking for your thoughts and suggestions on how to proceed?
Some questions that I do have:
- How to handle ADC and DAC... I am currently using a 16 bit 1 mhz ADC (AD7655), and 16 bit DAC (LTC2600)
- Should I use a "soft" ADC?
- If not is there peripheral boards that have ADC/DAC that can be easily used the the XMOS kits?
- Is the serial and ethernet code in "good" shape? (by "good shape" I mean is it pretty much usable "as is")
Thanks!!!! - John