Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Old February 11th 14, 05:01 PM posted to rec.radio.amateur.homebrew
external usenet poster
 
First recorded activity by RadioBanter: Jul 2013
Posts: 10
Default Front-end design for a DDS transceiver

On Tue, 11 Feb 2014 21:52:20 +1000, Stuart Longland VK4MSL wrote:

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.


I don't know how much embedded programming you do, but with 25 years of
doing it professionally, I can assure you that there's always fewer clock
ticks available than you thought at the beginning of a project.

You can also use the DMA on the chip to your advantage. At the very
least you can read both channels into memory using DMA and only interrupt
once per pair; I'm pretty sure that you could set it up to DMA pairs into
a buffer and only interrupt you when the buffer is full. Then your ISR
would fire off less often and would be able to add up vectors full of
data, instead of doing it onsie-twosie. You end up with a bit more
overhead per interrupt, but a lot fewer interrupts.

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?


Yes. I never actually messed with this -- I just read a lot, and had
friends who were into it.

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.


CD4066's are fine for some things, but they're toys compared to what you
need here. You may be able to do it with PIN diode switches, but they
distort and take power -- there's a reason folks use relays.

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.


I hadn't realized you had other uses for the processor -- of course if
you've used up the pins then it makes sense to multiplex them somewhat.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
FSK transceiver design thoppay Digital 1 October 31st 05 02:51 PM
FSK transceiver design thoppay Equipment 0 October 31st 05 10:43 AM
VHF homebrew transceiver design? rkrishnan Homebrew 5 May 16th 05 08:07 AM
gsm front-end flavio Digital 2 November 15th 03 09:39 PM
gsm front-end flavio Digital 0 November 15th 03 10:08 AM


All times are GMT +1. The time now is 05:24 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 RadioBanter.
The comments are property of their posters.
 

About Us

"It's about Radio"

 

Copyright © 2017