Matti Aarnio's (OH2MQK) ham pages..
SDR USB components
This has been abandoned since in favour of SDR-DSP-components.html.
The Gnuradio v3 from ETTUS.COM is
pretty much the same as this one without the Blackfin DSP...
(That one uses Analog AD986X (not 9864!) MixFE digitizers and glues them
to High-Speed USB-2.0 interface to connect to a PC host.)
Once upon a time I begun to write:
Given that modern personal computers don't anymore have classical
serial ASYNC ports, and that audio cards have lots and lots of
different incarnations (not to mention lousy timing accuracy):
A simple universal(ish) adapter to connect computer to
baseband radio (e.g. audio of a multimode rig) would have:
- Audio rx at predictable line-in levels
- Audio tx at stable line-out levels
- ASYNC serial command protocol interface to the rig
- PTT
The original story continues way further down below, but current
plan is:
- USB-2.0 High-Speed device target interface
- Analog Devices BlackFin DSP with:
- 16 MB 133 MHz SDRAM (can fit up to 128 MB)
- 8 MB Flash (can fit 1-16 MB)
- With a CompactFlash card connector for additional 3.3V flash memory
- Running uClinux
- Two plug-on SPORT card slots (custom pinout)
- PC-like ASYNC port for uClinux serial console, but can do also e.g. CAT-commanding of radios.
- A 100x160 mm² 4-layer board
This card can run stand-alone (uC)linux, and do fancy things all by itself,
but it can also be used in dummy mode to act as remote audio card.
On mezzanine cards (those SPORT slots), various ideas:
- stereo 24bit ADC and DAC:
- at 96 kHz sample rates, 12.2880 MHz oscillator
- Using stereo signals as I and Q of IQ-modulator/demodulator
- a) Single-ended interface version
- DAC with 92 kHz 3rd order Bessel low-pass filter on output
- ADC without any external active componets on input
- External interface (mis-)using VGA card connector;
plenty of available quality multi-coaxial cables to carry
single-ended baseband signals.
- b) Fully differential interface version
- DAC with 92 kHz 3rd order Bessel low-pass filter on output
- ADC with 92 kHz 3rd order Bessel low-pass filter on input
- External interface (mis-)using shielded RJ45 connector
to carry differential baseband signals.
- An Open Collector PTT driver
- A 78x100 mm² 4-layer card
- c) Full IF digitizing subsystem with
- AD9864 IF digitizing subsystem
- IF LO oscillator with exceptional near carrier spectral purity
- e.g. 7th overtone xtal base oscillator with temperature controlled xtal (heated) producing 90-150 MHz reference, which is divided to 45-50 MHz range
- AD9835 produces final reference frequency (10-20 MHz)
- PLL with phase comparator running at 10-20 MHz (ADF4153, ADF4154, ADF4007, ADF4193 ?)
- VCO (Hittite) running at 6.4 GHz (+- 0.1 GHz) ?
- A 2-divider (Hittite) to produce intermediate LO, and a 16-divider (Hittite) producing LO at around 200 MHz
- Additional dividers from LO/intermediate-LO to PLL feedback input (if any needed)
- Final aim is to have LO tunability resolution sub 10 Hz and range around 1 to 2 MHz, and "near" (within 0.4 MHz of the carrier) spectral purity as good as possible
- Preceeding IF input mixers operate at 200 or 500 kHz IF tunability steps with simpler (but equally spectrally demanding) oscillators, possibly a bank of heated 7th order xtals...
- (Studynote: Which is cleaner: produce PLL reference with DDS, or PLL feedback with DDS division ?)
- Spectrally pure master reference for the AD9864 (derived from IF LO reference ?)
- Something to produce I/Q-modulated output IF ...
- "Stereo" DAC + LPF, differential, DC coupled
- Spectrally pure digital reference for DAC timing
- IF tunability LO (same as above ?)
- I/Q modulator
- IF band-pass filter ?
- Carrier envelope power detector
- ADC for carrier envelope power signal (for I/Q DC bias tuning)
- A 100x160 mm² 4-layer board with heavy shielding
Eagle CAD material at:
http://ham.zmailer.org/oh2mqk/sdr/
This is rather obviously a triplet of:
- HUB
- Communication class ASYNC serial port (with PTT in RTS/CTS)
- Audio class port
Components:
- Texas Instruments (www.ti.com)
- TUSB2036: USB 2.0 full-speed (12 Mbps) 2/3 port HUB
- TUSB3410: USB 2.0 full-speed (12 Mbps) USB-RS232 w/ CPU, some 8052 programming needed
- PCM2900: USB 1.1 full-speed (12 Mbps) 16 bit/sample delta-sigma stereo audio codec with USB interface (PCM2702 PCM2900 PCM2901 PCM2902 PCM2903)
- TUSB3200A: USB 2.0 full-speed (12 Mbps) Streaming audio adapter: joins USB and I2S -bus codecs, some 8052 programming needed
- TSB43CB43A: A Firewire (IEEE 1394) target device controller for streaming audio applications with internal ARM7 CPU et.al.
- 24 bit codecs:
- TLC320AD77 (24 bit/96 kHz/stereo/codec) 3.3V
- TLV320AIC23B (24 bit/96 kHz/stereo/codec) 3.3V
- PCM3010 (24 bit/96 kHz/stereo/codec) 5V
- Analog (www.analog.com)
- 24 bit 96 kHz 2 channel fdx codecs: AD1839A AD1838A AD1837A AD1835A ADAV803 ADAV801
- 24 bit 96 kHz 4 channel fdx codecs: AD1936A
- DDS (for high precission sample clock adjustment): AD9831 - AD9833
- 12.800000 MHz TCXO master clock for sampler
- FTDI (www.ftdichips.com)
- FT232BM (FT232BL) USB UART, some programming needed
- Cypress (www.cypress.com)
- Tetrahub (USB 2.0 Hi-Speed HUB): CY7C65640A
- EZ-USB FX2 (USB 2.0 Hi-Speed peripheral): CY7C68013*, some programming required...
- Cirrus Logic (www.cirrus.com)
- CS5381: diff input 24 bit 192 kHz stereo ADC (only!), with I2S type serial out datastream
- CS5361: -- little less good version of CS5381
- CS4272: stereo diff in/out 24 bit 192 kHz CODEC; 114 dB dyn, -100 dB THD+N
- CS4271: -- little less good version of CS4272
- CS43122: 24 bit 192 kHz DAC w/ diff out, 122 dB dynamic range, -102 dB THD+N
Other somewhat related (or not) things
Some construction ideas
- Plan A - minimalist, not very great quality...
- TUSB2036: HUB
- TUSB3410: USB-UART
- PCM2702: 16 bit/sample stereo codec
- Plan B - better
- TUSB2036: HUB
- TUSB3410: USB-UART
- TUSB3200A: streaming audio adapter
- PCM3010: 24 bit/96 kHz/stereo/codec
- Plan C - even better
- TUSB2036: HUB
- TUSB3410: USB-UART
- TUSB3200A: streaming audio adapter
- AD1939A: Dual channel fdx 24 bit/96 kHz audio codec, w/ diff inputs
- Plan D - even better
- TUSB2036: HUB
- TUSB3410: USB-UART
- TUSB3200A: streaming audio adapter
- CS4272: Stereo codec 24 bit/192 kHz; diff in/out
(more data at full fdx speed than fits into full-speed USB..)
- Plan E - LinRad optimized
- CY7C65640A: High-speed quad hub
- TUSB3410: USB-UART
- Somehow: std. PC parallel port (lookalike)
- 12.800 MHz TCXO with 4x PLL VCO multiplier (to 51.200 MHz)
- AD9835 (50 MHz DDS) for more accurate sample clock
- TUSB3200A: streaming audio adapter, Unit A
- CS5381: dual channel diff input 24 bit/192 kHz audio ADC
- Note: max datarate is possibly in excess of TUSB3200A capabilities!
- TUSB3200A: streaming audio adapter, Unit B
- CS5381: dual channel diff input 24 bit/192 kHz audio ADC
- TUSB3200A: streaming audio adapter, Unit C
- CS43122: dual channel diff output 24 bit/192 kHz audio DAC
- Plan F - LinRad optimized
- CY7C68013: EZ-USB FX2 USB Microcontroller High-speed USB Peripheral Controller
- Somehow: std. PC parallel port (lookalike)
- Somehow: std async serial port (lookalike)
- 12.800 MHz TCXO with 4x PLL VCO multiplier (to 51.200 MHz) (or 50 MHz TCXO)
- AD9835 (50 MHz DDS) for more accurate sample clock
- CS5381: dual channel diff input 24 bit/192 kHz audio ADC (unit A, master)
- CS5381: dual channel diff input 24 bit/192 kHz audio ADC (unit B, slave)
- Note: dual-channel converter can handle I/Q input, thus maximum
bandwidth for the input channel is some 90% of 192 kHz!
- CS43122: dual channel diff output 24 bit/192 kHz audio DAC (unit C)
- XILINX (or some other) FPGA: adaptation glue in between EZ-USB FX2 and ADCs/DAC
- Plan G - LinRad optimized
- A PCI card (32 bit/33 MHz ?)
- Some PCI codec interface chip
- Somehow: std. PC parallel port (lookalike)
- Somehow: std async serial port (lookalike)
- 12.800 MHz TCXO with 4x PLL VCO multiplier (to 51.200 MHz) (or 50 MHz TCXO)
- AD9835 (50 MHz DDS) for more accurate sample clock
- CS5381: dual channel diff input 24 bit/192 kHz audio ADC (unit A, master)
- CS5381: dual channel diff input 24 bit/192 kHz audio ADC (unit B, slave)
- Note: dual-channel converter can handle I/Q input, thus maximum
bandwidth for the input channel is some 90% of 192 kHz!
- CS43122: dual channel diff output 24 bit/192 kHz audio DAC (unit C)
- XILINX (or some other) FPGA: adaptation glue