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

paul swed paulswedb at gmail.com
Mon Feb 18 17:36:00 EST 2013

Thanks for the assembly listing. Someone else on time-nuts had done quite
the job of reverse engineering the schematics and other information. Seems
like the two of you could collaborate. Sorry do not recall the name.
Welcome to time-nuts.

On Mon, Feb 18, 2013 at 4:32 PM, Herbert Poetzl <herbert at 13thfloor.at>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