====== 4.4GHz RF Synthesizer Board - ADF4351 - Theory, Setup, Reverse Engineering, Experiments ====== The ADF4351 is an RF frequency synthesizer capable of producing tones from 37MHz to 4.4GHz. But how well does it perform? and can it work with open source software? * [[https://odysee.com/@OpenTechLab:f/otl-005-adf4531-setup:b|odysee]] * [[https://www.youtube.com/watch?v=xJ0Mfuj0KUQ|YouTube]] * [[https://peertube.social/videos/watch/8b1ae319-b693-44f0-a142-f77dffba864d|peertube.social]] * 0:00:00 - Introduction * 0:01:38 - Board Overview * 0:09:28 - Software, Hardware and VirtualBox Setup * 0:23:15 - SPI Decoding with sigrok * 0:32:23 - USB Packet Capture with usbmon * 0:46:24 - Synthesizer Theory of Operation * 0:57:14 - pyadf435x Open Source Software Suite, Decompiling .Net Code * 1:07:29 - Testing RF output with an RTL-SDR and gqrx * 1:17:38 - Python Scripting Experiments and Inspectrum ===== ADF4351 ===== * [[http://www.analog.com/en/products/rf-microwave/pll-synth/fractional-n-plls/adf4351.html|ADF4351 Product Page]] * [[http://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-adf4351.html|EVAL-ADF4351 Evaluation Board Product Page]] ===== Hardware ===== * [[https://www.banggood.com/35M-4_4GHz-PLL-RF-Signal-Source-Frequency-Synthesizer-ADF4351-Development-Board-p-1129041.html?p=SD062212952342201708 on Banggood|ADF4351 Board]] @ $19.38 * [[https://www.banggood.com/EZ-USB-FX2LP-CY7C68013A-USB-Core-Board-Development-Board-Logic-Analyzer-p-1183409.html?p=SD062212952342201708|Cypress FX2LP Board on Banggood]] @ $6.97 * [[https://www.banggood.com/USB-Logic-Analyzer-24M-8CH-Microcontroller-ARM-FPGA-Debug-Tool-p-1177821.html?p=SD062212952342201708|FX2-based Logic Analyzer on Banggood]] @ $9.13 * BA5SBA RTL-SDR Software Defined Radio * [[https://archive.fo/ynd17|Kit]] @ $24.90 **(WARNING: Very Hard to Assemble)** * [[http://archive.is/sVfc8|Assembled]] @ $30.67 ===== Software ===== * [[https://sigrok.org|Sigrok/PulseView]] * [[http://www.triplespark.net/elec/periph/USB-FX2/software/|cycfx2prog]] * [[https://www.virtualbox.org/|VirtualBox]] * [[https://www.wireshark.org/|Wireshark]] * [[https://walac.github.io/pyusb/|pyusb]] * [[http://ilspy.net/|ILSpy]] * [[http://gqrx.dk/|gqrx]] * [[https://github.com/miek/inspectrum|Inspectrum]] ===== Sigrok ===== ==== ADF4351 Decoder ==== * [[http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/adf435x|Protocol Decoder Source Code]] * [[http://sigrok.org/gitweb/?p=sigrok-dumps.git;a=tree;f=spi/adf4351|Protocol Dump]] ===== usbmon ===== * [[https://www.kernel.org/doc/Documentation/usb/usbmon.txt|usbmon Documentation (usbmon.txt)]] ===== circuitjs Simulations ===== * [[http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+15.472767971186109+60+5+50%0A158+416+208+448+208+0%0Ac+512+208+512+240+0+0.000001+-2.3891475723100717%0Ar+512+272+576+272+0+3000%0Ar+512+304+576+304+0+100000%0Aw+576+272+576+304+0%0Ag+576+304+576+336+0%0AR+128+160+64+160+0+2+120+2.5+2.5+0+0.5%0Aw+128+192+128+304+0%0Aw+128+304+416+304+0%0Aw+416+176+416+208+0%0AO+128+304+80+304+0%0Aa+336+112+416+112+1+15+-15+1000000+2.714639305921044+2.7146664523141033%0Aw+304+96+336+96+0%0Aw+336+128+336+176+0%0Aw+336+176+416+176+0%0Aw+416+176+416+112+0%0A161+128+160+176+160+0%0Ar+224+160+304+160+0+500%0Aw+304+96+304+160+0%0Ac+304+160+304+208+0+0.00009+2.714666452315499%0Ar+304+208+304+256+0+1000%0Ag+304+256+304+272+0%0Ao+6+64+0+4110+5+0.00009765625+0+2+6+3%0Ao+10+64+0+4110+5+0.00009765625+0+1%0Ao+19+64+0+4099+5+0.0125+1+2+19+3%0A|1:1 Phase-Locked Loop]] * [[http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+10.20027730826997+53+5+50%0A155+128+96+144+96+2+0%0A155+128+256+160+256+2+0%0Aw+224+96+400+96+0%0Aw+400+96+400+192+0%0Aw+224+256+400+256+0%0Aw+400+256+400+224+0%0Af+400+256+464+256+4+1.5+0.02%0Af+416+160+464+160+5+1.5+0.02%0Aw+224+160+416+160+0%0Aw+464+176+464+208+0%0Aw+464+208+464+240+0%0Ag+464+272+464+320+0%0AR+464+144+464+80+0+0+40+5+0+0+0.5%0AR+128+128+48+128+0+2+120+2.5+2.5+0+0.5%0AR+128+288+48+288+0+2+115+2.5+2.5+0+0.5%0AR+128+96+96+96+0+0+40+5+0+0+0.5%0AR+128+256+96+256+0+0+40+5+0+0+0.5%0Aw+128+208+128+160+0%0Aw+304+208+304+352+0%0Aw+304+352+128+352+0%0Aw+128+352+128+320+0%0Aw+464+208+528+208+0%0Ar+528+208+528+144+0+1000%0Ar+528+208+528+272+0+1000%0AR+528+144+528+80+0+0+40+5+0+0+0.5%0Ag+528+272+528+320+0%0AO+528+208+576+208+0%0Aw+128+208+304+208+0%0A150+400+208+304+208+0+2+0+5%0Ao+13+64+0+4102+5+0.00009765625+0+2+13+3%0Ao+14+64+0+4102+5+0.00009765625+0+2+14+3%0Ao+26+64+0+4102+5+0.00009765625+0+1%0A|Phase Detector Internals]] * [[http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+6.724437240923179+61+5+50%0A158+416+192+448+192+0%0Ac+512+192+512+224+0+1e-7+-3.1835372114314087%0Ar+512+256+576+256+0+3000%0Ar+512+288+576+288+0+100000%0Aw+576+256+576+288+0%0Ag+576+288+576+320+0%0AR+128+144+64+144+0+2+300+2.5+2.5+0+0.5%0Ag+304+224+304+256+0%0Aw+416+160+416+192+0%0Aa+336+96+416+96+1+15+-15+1000000+1.3290828616666983+1.3290961524953149%0Aw+304+80+336+80+0%0Aw+336+112+336+160+0%0Aw+336+160+416+160+0%0Aw+416+160+416+96+0%0A161+128+144+176+144+0%0Ar+224+144+304+144+0+2000%0Aw+304+80+304+144+0%0Ac+304+144+304+176+0+0.000009999999999999999+1.329096152495355%0A155+128+240+144+240+0+5%0Aw+224+240+224+208+0%0Aw+224+208+128+208+0%0Aw+128+208+128+176+0%0Aw+224+304+224+336+0%0Aw+224+336+96+336+0%0Aw+96+336+96+240+0%0Aw+96+240+128+240+0%0Aw+128+272+64+272+0%0Aw+64+272+64+352+0%0Aw+64+352+416+352+0%0Aw+416+352+416+288+0%0AO+416+352+480+352+0%0Ar+304+176+304+224+0+1000%0Ao+6+8+0+4110+5+0.000048828125+0+2+6+3%0Ao+30+8+0+4110+5+0.00009765625+0+1%0A|1:2 Phase-Locked Loop]] ===== pyadf435x ===== * **[[https://github.com/jhol/pyadf435x|pyadf4351x on GitHub]]** ===== Microcontroller Tool-Chain ==== ==== Cypress FX2 ==== * [[http://sdcc.sourceforge.net/|SDCC (Small Devices C Compiler)]] * [[https://github.com/djmuhlestein/fx2lib|fx2lib]] ===== Credits ===== * Intro Music: [[http://freemusicarchive.org/music/Logan_Takahashi/Live_at_WFMU_on_Champ_Sound_with_DJ_Guy_4282016/|Logan Takashi - Orb-O]] (CC-BY-NC-ND). ===== Around the Web ===== * [[https://hackaday.com/2017/04/12/4-4-ghz-frequency-synthesis-made-easy/|HackADay Article]]