Though not particularly interesting, clock signals are the foundation of a digital system. In basic microcontroller projects, it is easy to ignore the clock, especially when it’s provided internally by the micro. But careful attention to clock generation and distribution is increasingly important in relation to the performance that we expect from a design. At some point, it makes sense to consider integrated circuits that provide advanced clocking features.
The NB3H73113G from ON Semi is a one-time programmable clock generator that accepts one reference signal and provides up to three output clocks. It is highly flexible and seems quite user-friendly, though do take note of the “one-time” portion of the description—the idea here is to customize the NB3H73113G according to the needs of a particular design, and then it stays that way. My guess is that generating the proper configuration bits for all the registers is not a particularly easy process, but as is often the case, the manufacturer provides software to make this task less burdensome.
The Block Diagram
Diagram taken from the datasheet.
The general architecture of the device is fairly straightforward. The reference source is either a crystal or a single-ended digital clock. This signal goes to the phase-locked loop (PLL), and the output of the PLL is fed to three dividers that provide the three output clocks. The various customizable aspects of the device are controlled via an I2C communication interface. Notice that each output clock has its own VDD pin; the voltage applied to these pins governs the logic-high level of the corresponding clock. This is a handy feature, because it eliminates the need for logic-level translators in systems that have components operating at different supply voltages.
The output frequency range is 8 kHz to 200 MHz. This seems well chosen. In my experience, 200 MHz is adequate for the vast majority of applications involving typical microcontroller functionality or low-to-medium performance DSP, and frequencies down in the low-kilohertz range also can come in handy for timing tasks or low-power operation.
Though not essential, programmable crystal load capacitance offers flexibility that I appreciate. I always prefer changing register bits to desoldering and resoldering surface-mount components. And beyond the convenience factor, it seems to me that this feature would allow you to really optimize your crystal performance, because the load capacitance can be adjusted in 0.05 pF increments. You certainly couldn’t achieve that sort of fine-tuning with typical ceramic caps.
However, this optimization procedure will be far less convenient if crystal load capacitance is one of the things that can be programmed only once. I didn’t read every word in the datasheet, but I browsed from beginning to end, and I have to say that I’m not completely clear regarding the whole one-time-programmable thing. On page 4 it says, “The One-Time Programmable memory allows programming and storing of one configuration in the memory space.” That seems clear enough, but on page 6 we have the following: “The PLL re-locking and stabilization time must be taken into consideration when dynamically changing the configurations.” It seems to me that “one-time programmable” memory would not support “dynamic” configuration changes.
You have several different output flavors to choose from. There are three output pins, but these can be configured as three single-ended clock outputs or one single-ended and one differential output; the differential output can be configured as LVPECL, LVDS, HCSL, or CML.
Diagrams taken from the datasheet.
In general I appreciate the benefits of differential signaling, especially with high frequencies, and the NB3H73113G offers some serious flexibility by allowing you to choose from four standard differential interfaces.
In a previous article I discussed spread-spectrum modulation as an effective and fairly straightforward method of reducing radiated emissions. Well, at least it’s straightforward when you have an IC to take care of the details, and that’s exactly what the NB3H73113G does. Furthermore, it has two options: “center spread” and “down spread”:
Diagram taken from the datasheet.
However, the spread-spectrum functionality has restrictions that you need to keep in mind; you can find more information on page 6 of the datasheet.
I think that many of us are accustomed to programmable parts that will provide some sort of useful functionality even if we don’t program them. In other words, a brand new part will do something, but not exactly what we want. This is not the case with the NB3H73113G. If I’m understanding the datasheet correctly (see page 7), this part is a paperweight until it has been programmed. Just something to keep in mind. Actually, come to think of it, it’s far too light to serve as a paperweight.
Do you have a favorite differential signaling standard? Or do you consider that question seriously lame? Let us know in the comments.