View Single Post
  #5   Report Post  
Old February 11th 14, 11:52 AM posted to rec.radio.amateur.homebrew
Stuart Longland VK4MSL Stuart Longland VK4MSL is offline
external usenet poster
 
First recorded activity by RadioBanter: Feb 2010
Posts: 27
Default Front-end design for a DDS transceiver

Hi Tim,
On 11/02/14 11:38, Tim Wescott wrote:
On Sun, 09 Feb 2014 15:44:26 +1000, Stuart Longland VK4MSL wrote:
My plan is something along these lines:

Receive:

ANT - [BPF] - [AMP] - [Mixer (LO=AD9851)]- ...
... [LPF] - [STM32 MCU] - [RPi]

I've omitted the quadrature part here; basically everything between the
front-end buffer amplifier and the STM32 would be duplicated.

The LPF would be set for the sample rate of the STM32; somewhere in the
realm of 250-500kHz low-pass. It'll depend on what I can achieve.


You're probably being ambitious with what can be done. While the ADC can
sample that fast, the processor -- even running at 48MHz or whatever it
can do -- may not be able to keep up.


Well, the STM32F103 runs at 72MHz, and if I were doing actual DSP with
it, it'd be light-on. The idea right now is just to have it capture the
waveform and shovel it down the I²S link as fast as it can.

So the interrupt routine would be copying from the ADC's output register
to one of two buffers then setting a flag. The plan is that the ADC
ISRs will be at most maybe 8 CPU cycles.

At 72MHz, that still means I should be able to execute the ISR within
0.2us. Two channels should be about 0.5us, it'll be tight and I
probably won't hit the full 1MHz sample rate, but even if I wind up with
only 48kHz, that's still better than nothing.

The sticking point right now is in the handling of the output from the
LO. The I/Q DDS kit produces a square wave output. Initially this
concerned me a bit, as from my university days I understand square waves
to be rather harmonically rich.


Diode ring mixers basically end up acting like switches anyway. Sending
them square waves just means that the transition regions are smaller,
which should do no harm and may lead to less phase noise.


Ahh, that explains a few things. I'm guessing the only thing that
behaves anything like an ideal mixer is what I'd be trying to implement
in software?

Does it see the harmonics and if so, how do people deal with them?


Yes it 'sees' the harmonics. Basically -- even if you're exciting it
with a sine wave -- you should plan on the mixer's input being mixed
against a square wave.

In fact, some microwave equipment used to take advantage of this, to keep
the LO frequency down. It may still -- it's been a long time since I've
really paid attention to radio technology.


What sort of harmonics do those microwave circuits use? Would they try
for the third harmonic or higher?

I'm
guessing it does and that the answer is a liberal set of overlapping BPF
filters that can be switched in to cover the range of the DDS VFO. In
my case, a selection of filters that cover 0-30MHz.


Yup.

This is why modern radios (or at least radios as of 25 years ago, when I
was last paying attention) had a first IF above the band of interest --
it put the most significant frequencies that could be spuriously mixed
well above the desired reception frequency.


Indeed, I guess with this I should be able to go either way since it's
software controlled.

I'd have five GPIOs select them somehow from the STM32.


Why not 12? Surely you have lots of spare pins to play with.


Well, the big factor is how to switch between them all. More filters
means more switching logic, meaning more expense. I'm not sure if
CD4066's are any good at switching RF into the low VHF range so I'm
guessing it'd be mechanical relays and individually designed and built
filters.

I'm using a big quantity for driving an LCD: using the STM32 as an I/O
expander as well. The plan there is this all the real-time stuff would
run in ISRs and the display duties would be the main loop. I could use
an AVR to do this I guess though.

Regards,
Stuart Longland