I am attempting to communicate with my ADF4351 via SPI using an Arduino Due. (The Due is nice because 3.3-V logic is native to it, and this is what the ADF wants.) However, I'm having a hard time diagnosing an apparent issue with my circuit. I've looked at the SPI being sent and all looks correct for the frequency I want to send, but when I send it, the Lock Detect LED on the ADF4351 flashes briefly and the output frequency is usually off by a great deal. For example, if I input 957.54 MHz, I get an output at about 957.5 MHz; but if I input 1957.54 MHz, I get an output in the range of 3.5 GHz. This occurs when I remove all peripherals, so that I only have power to the Arduino, and wires for slave select, data, and clock attached to the ADF board. I have no reference frequency; one of my RFouts is terminated with 50 Ohms, and the other is the output I'll be using.
The only way I've gotten things to work is the following. If my peripherals (a SparkFun LCD screen and a rotary encoder filter circuit) are powered by the Arduino (in a gross overuse of its available current, I think), then power the Arduino with 3.8 V (well below its specs), I get the ADF to lock at the correct frequency.
Any ideas on possible corrections to try would be greatly appreciated. I can also post code if it's helpful; but, as I said, the SPI being sent by the Arduino matches register settings that work if used by the ADF435x software to program the board, so I'm not convinced it's a coding issue.