Post Go back to editing

Hmc832a configuration issue

Thread Summary

The user encountered an issue where the HMC832A evaluation board output frequency did not match the expected 2.2 GHz when configured in fractional mode. The final answer identified that the VCO path RF buffer was disabled, which was corrected by setting register 8 to 0xC1BEFF. The user confirmed this resolved the issue. The chip ID read as 0x0F3275 or 0x037275, which are both valid values.
AI Generated Content
Category: Choose a category
Product Number: hmc832a

I am trying to configure a hmc832a evaluation board in fractional mode, but the output frequency does not match my configuration.

The pll is configured by sending the following data/address pairs through spi (the frequency variable is set to 2200):

    uint32_t data[] = {
                    0x20,//readAddress soft reset
                    0x2,//reset
                    0x1,//refDiv
                    ((0x1 << 7) | (vcoDiv)),//vcoSpi rf divider = 1
                    ((0x1F << 7) | (vcoConf << 3)),//vcoSpi
                    (0x9B << 7 | (vcoPwrCtrl << 3)),//vcoSpi
                    0x0,//vcoSpi required to write 0 in order to be ready for autocalibration
                    0xF4A,//sigmaDelta
                    0x8CD,//lockDetect
                    0xC1BEEF,//analogEnable
                    0x393264,//cpReg tbd
                    0x85,//autoCal 
                    0x4F80E1,//PdReg set 3.3V mode
                    0x0,//exactFreq disabled
                    0x1,//gpoSpiRDiv lockdetect when not miso
                    frequency/50,//nInt
                    round(fmod(frequency, 50.0)*pow(2,24)/50.0),//nFraq
                    };

    char address[] = {
                    readAddress,
                    reset,
                    refDiv,
                    vcoSpi,
                    vcoSpi,
                    vcoSpi,
                    vcoSpi,
                    sigmaDelta,
                    lockDetect,
                    analogEnable,
                    cpReg,
                    autoCal,
                    pdReg,
                    exactFreq,
                    gpoSpiRDiv,
                    intReg,
                    fractReg
                    };

Reading back from the pll I get:

register 0 = f 32 75
register 1 = 0 0 2
register 2 = 0 0 1
register 3 = 0 0 2c
register 4 = 0 0 0
register 5 = 0 0 0
register 6 = 0 f 4a
register 7 = 0 8 cd
register 8 = c1 be ef
register 9 = 39 32 64
register a = 0 0 85
register b = 4f 80 e1
register c = 0 0 0
register d = 0 0 0
register e = 0 0 0
register f = 0 0 1
register 10 = 0 0 c0
register 11 = 0 b 12
register 12 = 0 0 0
register 13 = 0 12 59

With these configurations, the output frequency is 1.336GHz while I was expecting 2.2GHz.

Have I missed something in my configuration sequence or are there some other possible explanation?