Close

Updating the FE-5680A variant

A project log for GPS Disciplined xCXO

A DIY GPS disciplined 10 MHz reference clock

nick-sayerNick Sayer 02/18/2017 at 20:340 Comments

I'd been putting off updating the FE-5680A discipline board because I ran into a series of catch-22 constraints in the design.

The ATTiny841 is out of flash space, so there's no room to add the code to handle sawtooth compensation messages from the SkyTraq GPS module. For the xCXO variant, I upgraded to the ATMega328PB, but the 328PB lacks one feature the 841 has - the ability to change clock sources programmatically. The problem was that startup of the FE board was troublesome when the controller was clocked directly from the oscillator. I also saw some evidence of stability issues after startup (some watchdog resets) that I assumed were caused by the stability of the oscillator not being good enough to clock the controller. So waiting until the !OSC_RDY pin went low before switching from the internal RC clock to the external clock was good enough.

I finally broke this logjam by adding an RC+Schmidt trigger !RESET bootstrap circuit to the design with an ATMega328PB. The controller datasheet says that if you hold !RESET low until the clock stabilizes that that is ok. The time constant for the RC results in about 100 ms of startup delay, which for the prototype seems to result in stable, repeatable startup without difficulty. The controller's stability post-startup in the past did seem to have been properly managed with the watchdog, and I haven't seen any evidence of the watchdog firing with the prototype of the new version anyway. This variant of the board also has the SkyTraq module that adds sawtooth correction and the antenna power solder jumper to select between 3.3v and 5v antenna power (with 5v default). There's also enough flash space left to add a frequently requested feature - the ability to write the current trim value to the oscillator's EEPROM as a startup default. Variants in production will include a push button to allow you to write the current offset on demand (doing it this way rather than automatically will preserve the EEPROM's lifespan and allow the user to perform the update when conditions are optimal).

Look for this version after the current inventory is used up. That said, there's no real reason to wait - the old version does just as good a job as the new one (from an ADEV perspective).

Discussions