[time-nuts] FE-5680A DDS Board/PIC Code

WB6BNQ wb6bnq at cox.net
Mon Feb 18 19:25:16 EST 2013

Hi Herbert,

Nice work !  A few comments that may help you in your quest.  There are two
primary methodologies used in the FEI-5680A Rubidium.

It appears, from your picture, what you have is the older style that is analog
for control of the Rubidium frequency control loop.  A VERY GOOD THING !  Why,
because the analog "C" field pot is active in such a unit, permitting adjustment
allowing you to put it right on the mark.  This easily allows you to extend,
externally, the "C" field control and be able to put it in an external loop with
a GPS without much trouble.

In the first methodology, the original designed was, totally, an analog control.
The micro controller is used to talk to only the DDS which is outside of the
Rubidium control loop.  The Rubidium control loop starts with a 50.+ MHz
oscillator frequency multiplied up to the Rubidium and the feedback from the
photo multiplier is fed back to control the 50.+ MHz oscillator.  This 50.+ MHz
is the reference frequency for the DDS on the board in your picture.

The second methodology is a bit more complicated because FEI switched to digital
control of the Rubidium frequency loop.  Here, an internal 60.0000 MHz oscillator
is used as a base signal.  A DDS, whose reference is from the same 60 MHz
oscillator generates the required offset and mixed with the 60 MHz to produced
the final multiplied signal to the Rubidium filter.  The photo multiplier is
sensed and eventually runs a DAC to control the 60 MHz oscillator.  The problem
with this approach, due to the computerization and digital stepping, is you can
get close but not necessarily right spot on for frequency.  Depending upon your
"house" standards, that may or may not be an issue.  To put it in perspective, I
think the adjustment process in the newer methodology is either parts in the
10E-12 or -13.

The output frequencies that the customer sees are derived via circuitry outside
the loop like the old method except they have switched to using either an ASIC or
FPGA of some sort making it quite difficult to determine what is going on.
Equally so is the fact that the ASIC/FPGA's are controlled by software.  Of
course, FEI is not going to be forthcoming on the internals, nor do they want to
tell how to use their computer link to control the Rubidium unless you are a

As a hobbyist, you are left with a much harder unit to integrate into external
control mechanisms.  Even though the "C" field pot is still there it is not
active in the unit.  Someone or more have been investigating methods to find a
proper point with which to inject an outside DC signal to attempt a "C" field
like control.  I do not know what their success has been.

FEI's part number system is really two different processes.  The FEI-5680A number
is the generic case and layout style, etc. and another "order" number is attached
that tells what is actually arranged inside.

So, the upshot is the older arrangement is easier to play with.  Hope this has
been helpful,


Herbert Poetzl wrote:

> I'm new to the time-nuts community, so I simply start
> with a short info on how I got into this situation :)
> (skip forward to <ONTOPIC> if not interested)
> Not long ago, I decided to build a reasonably good
> frequency counter for my personal use and maybe if
> the result is simple and elegant, I'll publish the
> details so that everybody can build one ...
> It was clear to me, that it had to be able to count
> up to at least 1GHz and thus show at least nine,
> better ten significant digits, so a precise time base
> is required.
> After some online searches and investigations, my
> best options seemed to get a very stable oscillator
> and a high quality time reference to sync with, which
> in turn brought me to the idea to use a cheap rubidium
> normal and somehow tune/measure/sync it via GPS or
> DCF-77/MSF-60.
> Reading a lot of documentation and blogs from all over
> the world (sometimes in translation :) shed some light
> on the rubidium normal requirements, which I defined as:
>  - has to have a 10MHz output not just the 1PPS
>  - has to be programmable (i.e. can be tuned)
>  - must be cheap
> I quickly found two different RB standard models,
> readily available on ebay for a reasonable price,
> namely the Efratom FRS-C and the FEI FE-5680A.
> I finally decided to go with the FE-5680A, mainly
> because I liked the package. A seller was quickly
> found offering something titled:
>  'FE-5680A Rubidium Atomic Frequency Standard
>   Oscillator Transceivers 10Mhz Out'
>  'Programmable from 1Hz to 20MHz'
> Little did I know what that actually meant ...
> When the units (I ordered two of them) arrived, I
> couldn't wait to test if they actually work and get
> a lock, so I quickly wired them up (according to the
> pinout) and provided them with the advised 15V at
> up to 2A each. To my astonishment, they heated up
> rather quickly and got a lock in a little under two
> minutes, so I happily got my scope out to check the
> 10MHz signal, just to find that there is no such
> signal available on the 9pin D-sub connector.
> Measuring pins against ground (pin 2) and 15Vx (pin 1)
> I figured that neither pin 7 (10MHz) nor pin 8/9
> (the rs232 interface for programming) was connected.
> and to my great disappointment, pin 6 (1PPS) didn't
> output much either (I later discovered that this was
> due to a defective unit, which is now being replaced)
> After contacting the seller, I opened up the units
> to investigate my options (and of course, because
> I wanted to take a look inside :), which in turn led
> to a number of high resolution scans and photos of
> all the bits and pieces.
> A (this time) more thorough search on the internet
> resulted in a deeper understanding of the various
> options the FE-5680A can have (or usually doesn't
> have) and the inner workings of the different
> FE-5680A models (of course, all labeled FE-5680A :)
> The DDS board, which actually can be programmed to
> output certain frequencies derived from the 'locked'
> 1:136 frequency of the rubidium 6.8GHz transition,
> caught my attention, as it has both, the '10Mhz'
> output and the programming interface, so I decided
> to analyze it further ...
> The central part on this specific DDS board [1] is
> the AD9830A a Direct Digital Synthesizer (DDS) which
> basically produces a sine wave at a well defined
> multiple and phase of a given reference frequency.
> Besides some other components, this board also
> includes an RS-232C line driver (Sipex SP233A) a
> PIC16F84 microcontroller and two 74HC595 8bit shift
> registers, with buffered outputs.
> I read somewhere, that the blue buttons on that DDS
> board can be used to adjust the output frequency,
> this should be avoided, mainly because every button
> press is an update and will cause a write to the
> EEPROM data wearing it out.
> Now as I've played with PIC microcontrollers for
> a long time, I wanted to know what this specific
> controller is doing and how I could use that for my
> purposes ...
> The chip was quickly removed and the program as well
> as configuration memory retrieved (luckily FEI didn't
> utilize the code/data protection) and together with
> high resolution scans and photos, a documented and
> verified assembler listing [2] reverse engineered.
> Here are the (IMHO) quite interesting findings:
>  - both FREQx registers can be adjusted
>  - the PHASE0 register can be adjusted
>  - none of the changes is permanent,
>    unless you explicitely save the settings
>  - there are only a few commands, without
>    any plausibility checks and/or protection
>  - and yes, the buttons increment/decrement
>    the FREQx settings and trigger a write to
>    the EEPROM after every update.
>  - the serial interface is done in software
>  - the DDS control words are shifted into
>    the 74HC595, buffered and written
> ; S<CR>                         STATUS
> ;       R=50255057.012932Hz F=2ABB504000000000
> ;       OK
> ;
> ; F=XXXXXXXXYYYYYYYY<CR>        FREQxREG (set divider)
> ;       OK
> ;
> ; G=XXXX<CR>                    PHASE (set phase register)
> ;       OK
> ;
> ; R=XXXXXXXXYYYYYY<CR>          RUBIDIUM (set calibrated freq)
> ;       OK
> ;
> ; E<CR>                         EEPROM (save settings)
> ;       OK
> Note that you can use the R= command to update all
> the settings at once or the F= command to update
> the FREQx and PHASE0 settings in one step, by simply
> adding more hex digits to the line.
> The next step I'm considering is to replace the
> PIC16F84A with a more powerful version (and a custom
> code) to support a smarter interface and some kind
> of dynamic adjustments (more details on that in
> another post, if there is interest)
> So, that's it for now, enjoy, and feel free to
> comment, provide additional information, or just
> contact me (about details).
> best,
> Herbert
> [1] http://www.13thfloor.at/~herbert/FE-5680A-DDS.jpg
> [2] http://www.13thfloor.at/~herbert/PIC16F84A.asm
> _______________________________________________
> time-nuts mailing list -- time-nuts at febo.com
> To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.

More information about the time-nuts mailing list