![]() ![]() ![]() ![]() ![]() Alan numitron clock Clapclap 2313/1386 SNES Pi Webserver USB Volume/USB toys Smokey amp Laser cutter WordClock ardReveil v3 SNES Arcade cabinet Game boy projects cameleon Home Presence Detector ![]() AlanFromJapan ![]() ![]() ![]() Akizukidenshi Elec-lab Rand Nerd Tut EEVblog SpritesMods AvrFreaks Gameboy Dev FLOZz' blog Switch-science Sparkfun Suzusho Datasheet Lib Reddit Elec Ermicro Carnet du maker (fr) |
atomic clock revisitedLast update: Sun Jun 9 13:45:05 2024
Trying again to make an Atomic Clock but with a Microsemi SA 22c.
PresentationPrincipletodoBuild log and challengesConnectorOk let's start with problems from inception: the connector. The kind vendor sent me a used one (looking good) but it's a rare piece, a SAMTEC TMMH-109-01-G-DV-ES-A 2 X 9 shrouded header. And with a 2mm pitch, just to make things funnier.I ended up making a custom board for it that will transform that precious SMD connector in a regular 2.54 pitch connector. Board design (Eagle & Gerber) on GitHub. ![]() ![]() PowerThat thing will need to be fed, a 15v and a 5v, at 18.5w max. So bought a nice 15V 3Amp power pack that will be largely sufficient. Now need to make a nice 5v out of it.I will try to use the 2 steps technique to get a nice/ripple free 5v: use a high frequency switching mini board to get 15V to say 7-8V and then a LM7805 to reduce to 5v. The 2 steps will limit the amount of energy wasted as heat by the LM7805 but yet give the proverbial clean ripple free 5v. Of course efficiency wise it won't be great since we lose power in 2 stages, hopefully not more than with LM7805 only. Which I doubt since in tests I do run it without the switching board (feeding 15v to the LM7805) and it gets HOT, like you don't leave your fingers on ~= 60-70C with a little heatsink (not on the picture). Board KiCad's on GitHub. ![]() ![]() So now the 2 steps power conversion: 15V to 7V via a LM2596 board, and 7v to 5V via the LM7805. More complex (unnecessarily?) circuit BUT I get a perfect clean 5V (thanks to the LM7805), with no heat wasted (it stays cool). ![]() HeatThe thing is going to get hot to control the working temp of its scientific package. So I need to stick a fat aluminium radiator on it, but luckily aliexpress is hereā”.And without the heater indeed it gets pretty hot: you can still leave your fingers there though unpleasant so I'd say just below 60C after 10 mins. But vendor says heatsink so heatsink it will have. I had to go medieval on it because of its shape and the bottom holes fell just perfectly on one of the wing... so I did only 1 no the other one, and that holds well enough: the heatsink has to hold itself on the SA22C and that's it, I added plenty of thermal grease, and now the heatsink takes a long time to get hot, but you can still leave your hand on it so ~50C I'd say. ![]() SignalThe vendor said it was spitting 600Hz, couldn't go higher. Got to see in details. [After checking] yup, settings locked, that's 600Hz we get and that's it.The PPS_OUT (1Hz) is 400ns as announced: ![]() And the signal is nicely here. It says 595Hz but it's the oscilloscope that approximates at that scale, it's 600Hz if you zoom in. ![]() Showing PPS_OUTThat is the default 1Hz signal from the SA22C. Perfect but less cool than the 600Hz signal passing through decades counter, isn't it? Anyway showing it is good I think so I will but since it's 400ns pulse the led doesn't have time to blink (RTFM Alan...). So let's extend the pulse with a 555!The logic is this: Guess what: I made a board for that! It's here. When I produced it at home I forgot to mirror it but lucky me, only the 555 had to be mounted "mirrored" on the other side of the board to work. Result: ![]() ![]() Dividing the output signal to get 1HzYes, PPS_OUT is already 1Hz and is exactly what I want, but why skip having a set of nice bar graphs that divide the signal? Plus I already made the board for that, years ago : the Decade Counter Viewer.Absolutely useless but the looks makes it a must have. 3 steps to go from 600Hz to 1Hz, just for the show. RTC Real time Clock![]() The board I'll reuse (made more than 10 years ago in 2014) is set with a DS3234. Which causes me headaches since it's already so precise (+/- 1 min per year) that the Rubidium standard is adding little value... even worse, I might end up increasing the error at each startup? Startup logic is: ![]() Time displaytodoPoints of interrestImplementationBill of materialsSchematicsSource codePicturesLinksHelpful sourcesInspiration |
All content on this site is shared under the MIT licence (do what u want, don't sue me, hat tip appreciated) electrogeek.tokyo ~ Formerly known as Kalshagar.wikispaces.com and electrogeek.cc (AlanFromJapan [2009 - 2025]) |