Small updates on my PWM implementation:
I've received the boards I've ordered, and have built up a MSP430 MCU board, finding out I've made a few mistakes along the way (but nothing unfixable)....
The MCU can operate in two modes: free running at up to about 1 GHz, or XO-disciplined at up to about 400 MHz.
Running with a 8MHz XTAL, multiplied to 24 MHz, used to discipline a 384 MHz timer clock, outputting 10 kHz, uses about 2.7 mA @ 3.3V. stdev(period) ~ 18.3ns, p-p(period) ~ 120. Enabling "clock error accumulation" correction increases the jitter slightly, but probably should be left disabled in this application.
Free-running with a 256 MHz clock uses about 1.2 mA, though with a much higher temperature-coefficient. stdev(period) ~ 21ns, p-p(period) ~ 135.
These measurements were performed with a MSO-X 4154A oscilloscope, having it measure the period of a single output cycle.
I think my preference would be XO-disciplined because of its much lower TC. The higher current consumption can be mitigated by using a switching DC-DC converter (though not the one that I had originally chosen).
Next up is populating my analog board... I like the MSP430 enough that I won't bother with the STM32F334.
One interesting thing was that when setting the period, the lowest 3 bits are ignored in 8x clock mode, and the lowest 4 bits are ignored in 16x clock mode. The pulse width parameter is controllable with full 16-bit resolution.
(Some of the mistakes: The pins I used for TD0 have higher channel->channel skew than the other available pins. Also, TD0.0 can only output the full period, not PWM (unless you set the period to a power of 2 (2^12, 2^14, 2^16, etc). Next revision will use TD0.1 and TD0.2 as the outputs. The micro's FLL only multiplies, but doesn't divide, so it is not very adjustable if you use a high-frequency XTAL. Oh, and I mixed up the pins of the LDO regulator on the PCB.)
Once I get the whole thing running well, my plan is to integrate the boards back onto a single PCB.