[time-nuts] FE-5680A DDS Board/PIC Code
lists at rtty.us
Mon Feb 18 17:50:47 EST 2013
There's quite a bit less in the PIC code than I would have expected. If that's everything that's there, the PIC does very little heavy lifting. Nice job on the dis-assembly.
Many of the 10 MHz out FE Rb's are actually the 1 pps version that has been converted to 10 MHz after the fact. The 10 MHz is not very clean on the FE's in any case.
On 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
> 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  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  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).
>  http://www.13thfloor.at/~herbert/FE-5680A-DDS.jpg
>  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