The simplest approach to this is to have the data output from the ADC connect directly to the input of the memory and have the propeller set up the data transfer and possibly provide the control signals. We did something similar with a 4 MHz Z80, 10 bit ADC, and some logic gates. Managed to get 100K samples a second which was the limit of the ADC.
With an 8 or 12 bit ADC and 2 or 3 Quad SPI ram chips respectively it may be possible to do the same with a minimum of external parts. Stress on the may.
The simplest approach to this is to have the data output from the ADC connect directly to the input of the memory and have the propeller set up the data transfer and possibly provide the control signals. ....
kwinn,
you must be psychic or something - I was just wondering about this. And so the Prop could then "merely" act as the manager of data streaming in, and then also perform the DAC for the audio going out? Any idea what memory chips would be ideal for this sample rate? Could the SPI SRAMs work in this fashion, maybe?
I was actually thinking of the Microchip 23LC1024 Quad SPI SRAM chip which is listed for $2.16 at Microchip Direct in 1 to 25 quantities. A quick look at the data sheet shows 1Mbit ram, max 20MHz clock rate, Quad SPI, and a sequential mode that should allow the data from the ADC to be stored sequentially by providing only the chip select and clock pulses once the chip is set up.
With 3 1Mbit chips in parallel you could store 256K x 12 bit samples which is considerably more than your initial requirement. It looks like the chip could be set up to do a sequential write (or read), and then only needs for the select to be low and to be clocked to perform the write (or read).
Of course this is an initial impression from the data sheet. You would need to look more carefully at the data sheet and timing requirements before making a decision.
Is any give 10ms burst a varying signal or constant?
What I'm getting at is do you need to record the entire burst and/or could it be sample below Fmax / 2 and take advantage of aliasing to lower frequencies.
I was actually thinking of the Microchip 23LC1024 Quad SPI SRAM chip.... You would need to look more carefully at the data sheet and timing requirements before making a decision.
Yes, here's a recording of the type of signals. The real-time recording of what I'm after starts at 3:00 on the recording. Examples of the recordings stretched out start at 3:50. As an exercise, I considered also altering the pitch of the narrator so he sounds like a chipmunk, but perhaps that can wait for later...
If we ignore the 'free other core' for a moment, this XMC1100 Entry series devices offer (in TSSOP 16, 28, 38 pins.)
* Six 12-bit A/D converter channels, which operate up to 1.88 mega samples/second
* Four 16-bit timers in a capture/compare unit 4 (CCU4)
* Broad voltage tolerance, between 1.8V and 5.5V.
* 16kB of RAM
They sound cheap(ish), or at least similar in price to > 1Msps, 12 bit ADCs, and that RAM is about enough to store your burst.
A TSSOP16 package can fit in almost anywhere
I was intrigued by the idea of connecting 3 SPI chips together and having the propeller provide only the initialization and control signals for the data transfers. When I had a few minutes to spare I looked up the data sheets for some ADC's and a DAC that seemed suitable for this project. After looking at the data sheets for a bit I can not see any reason this is not feasible.
The chips:
Analog Devices: ADC - AD7276_7277_7278 and AD9629, DAC - AD5601/AD5611/AD5621
Maxim: ADC - MAX11102-MAX11117 and MAX11108
TI: ADC - ADS7888
Microchip SPI SRAM 23LC1024
Both ADC,s can be set up for 16 clock pulses per conversion so the data can be clocked directly from the ADC to the 23LC1024 and stored in 2 bytes using sequential mode. If an 8 bit ADC like the TI ADS7888 were used you could store twice as many samples although the timing would be trickier.
For data acquisition it should be possible to use the video generator to produce the timing signals.
Output to the DAC could be done in a similar manner but the data rate is so much slower the propeller could do that directly.
I was intrigued by the idea of connecting 3 SPI chips together and having the propeller provide only the initialization and control signals for the data transfers. ....
Cool stuff. Tonight we were listening to some signals at 20.1 MHz and got some bleeps that sounded very cool but no way to know what they were since, in audio, it all happens too fast and our regular recorder only records them as a spike. So, along with making the listening more interesting, I could see where a device like this would also help people weed out some potential noise sources, etc. in real time via tuning, filters, or antenna adjustments, etc. Thanks for educating me about the potential methods for approaching this. I now wonder if it's the kind of thing that can be done entirely in SPIN or if it's essential to know assembly to get the timing just right.
I'm pretty sure (almost positive) some assembly will be required. Of course having said that some smart alec may just come along and do it in Spin or C or Basic.
Comments
With an 8 or 12 bit ADC and 2 or 3 Quad SPI ram chips respectively it may be possible to do the same with a minimum of external parts. Stress on the may.
kwinn,
you must be psychic or something - I was just wondering about this. And so the Prop could then "merely" act as the manager of data streaming in, and then also perform the DAC for the audio going out? Any idea what memory chips would be ideal for this sample rate? Could the SPI SRAMs work in this fashion, maybe?
With 3 1Mbit chips in parallel you could store 256K x 12 bit samples which is considerably more than your initial requirement. It looks like the chip could be set up to do a sequential write (or read), and then only needs for the select to be low and to be clocked to perform the write (or read).
Of course this is an initial impression from the data sheet. You would need to look more carefully at the data sheet and timing requirements before making a decision.
For example:
Does it consist of multiple frequencies?
What is the range of frequencies?
Is any give 10ms burst a varying signal or constant?
What I'm getting at is do you need to record the entire burst and/or could it be sample below Fmax / 2 and take advantage of aliasing to lower frequencies.
C.W.
kwinn, thank you. Intriguing stuff.
Yes, here's a recording of the type of signals. The real-time recording of what I'm after starts at 3:00 on the recording. Examples of the recordings stretched out start at 3:50. As an exercise, I considered also altering the pitch of the narrator so he sounds like a chipmunk, but perhaps that can wait for later...
http://radiojove.gsfc.nasa.gov/audio/ufsamples.mp3
http://www.infineon.com/cms/en/corporate/press/news/releases/2013/INFATV201301-022.html
If we ignore the 'free other core' for a moment, this XMC1100 Entry series devices offer (in TSSOP 16, 28, 38 pins.)
* Six 12-bit A/D converter channels, which operate up to 1.88 mega samples/second
* Four 16-bit timers in a capture/compare unit 4 (CCU4)
* Broad voltage tolerance, between 1.8V and 5.5V.
* 16kB of RAM
They sound cheap(ish), or at least similar in price to > 1Msps, 12 bit ADCs, and that RAM is about enough to store your burst.
A TSSOP16 package can fit in almost anywhere
The chips:
Analog Devices: ADC - AD7276_7277_7278 and AD9629, DAC - AD5601/AD5611/AD5621
Maxim: ADC - MAX11102-MAX11117 and MAX11108
TI: ADC - ADS7888
Microchip SPI SRAM 23LC1024
Both ADC,s can be set up for 16 clock pulses per conversion so the data can be clocked directly from the ADC to the 23LC1024 and stored in 2 bytes using sequential mode. If an 8 bit ADC like the TI ADS7888 were used you could store twice as many samples although the timing would be trickier.
For data acquisition it should be possible to use the video generator to produce the timing signals.
Output to the DAC could be done in a similar manner but the data rate is so much slower the propeller could do that directly.
Cool stuff. Tonight we were listening to some signals at 20.1 MHz and got some bleeps that sounded very cool but no way to know what they were since, in audio, it all happens too fast and our regular recorder only records them as a spike. So, along with making the listening more interesting, I could see where a device like this would also help people weed out some potential noise sources, etc. in real time via tuning, filters, or antenna adjustments, etc. Thanks for educating me about the potential methods for approaching this. I now wonder if it's the kind of thing that can be done entirely in SPIN or if it's essential to know assembly to get the timing just right.