惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
宝玉的分享
宝玉的分享
月光博客
月光博客
B
Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
aimingoo的专栏
aimingoo的专栏
N
Netflix TechBlog - Medium
博客园_首页
GbyAI
GbyAI
人人都是产品经理
人人都是产品经理
A
About on SuperTechFans
Y
Y Combinator Blog
L
LangChain Blog
有赞技术团队
有赞技术团队
D
Docker
爱范儿
爱范儿
博客园 - 司徒正美
H
Hackread – Cybersecurity News, Data Breaches, AI and More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net

KittenLabs

Casiomania Marantz UD5007 power supply replacement AnotterKiosk GPD Pocket 4 Speaker DSP IP-over-Toslink FX3 LVDS Frame grabber Extreme Pi Boot Optimization WiFi auth with OsmoHLR/SIM cards Windows 11 tweaks & usability improvements Using custom domains as a Fediverse redirect 25GBit/s on macOS & iOS Router overclocking Real gaming router Manage RDP certificates on Windows using SSH 20 port USB-C charger Reviving a dead Gigabyte MJ11-EC1 mainboard NVMe BIOS Option ROM 2.5GbE PCIe NIC mod board Blinkekatze ThinkPad T41/T43 USB-C HomeSwitch 4 DC UPS (Lithium) OLED nametag Thermal camera macro Blåmba LPT printer emulator PC104 ISA adapter Palm IIIc USB-C OtterCast Gigaset DECT debug adapter
PlutoSDR clock input
By Manawyrm (@manawyrm@chaos.social) | Saturday, January 05, 201 · 2019-01-05 · via KittenLabs

Warning! This modification voids the warranty and can operate the transceiver outside of it’s absolute maximum ratings!

PlutoSDR with 3rd SMA jack for clock input

The PlutoSDR has an internal XO (Rakon RXO3225M 40.000 MHz), which has excellent qualities like very low jitter.
Unfortunatly for ham radio use, the absolute accuracy (PPM) and stability isn’t great.
When generating signals in the GHz-range (like a TX-signal for QO-100 at 2.4 GHz) the error can multiply up to several kHz, much more than the signal bandwidth itself.

Oscillator mod

PlutoSDR with 3rd SMA jack PlutoSDR PCB, most parts masked off with Kapton tape, except for the crystal oscillator PlutoSDR PCB with crystal oscillator (Y3) removed PlutoSDR PCB with wire from 3rd/middle SMA jack to upper-left pin of the Y3 footprint

To fix this issue, I modified my PlutoSDR to accept an external 40 MHz reference clock signal.
This signal is provided by a LeoBodnar Mini GPS Reference Clock, which has an adjustable output frequency and is pretty much perfect for this application.

The AD9363 transceiver chip only requires a very low signal input. Ideally you would install 2 fast antiparallel diodes to clamp the voltage to a maximum of about 0.7V. My modification is a bit rough and may damage the chip in the long run, but it works fine for now.

PlutoSDRs are factory calibrated to their own XOs.
When using an external reference clock you’ll need to set xo_correction = 40000000 in the config.txt.

Frequency counter, measuring 2350.0001 MHz PlutoSDR with LeoBodnar GPS referenced clock on top, connected via SMA cable

Alternative reference frequencies

The PlutoSDR can accept a wide range of input reference frequencies between 10 MHz and 80 MHz. This can be useful if you want to use a regular 10 MHz lab reference or want to share the same GPSDO between a PlutoSDR and a satellite LNB (which commonly use ~27 MHz).

After logging into the PlutoSDR either via SSH (192.168.2.1 root/analog) or serial console, the following commands can be used to set the reference clock:

fw_setenv adi_loadvals 'fdt addr ${fit_load_address} && fdt get value fdt_choosen /configurations/${fit_config}/ fdt && fdt get addr fdtaddr /images/${fdt_choosen} data && fdt addr ${fdtaddr}; if test ! -n ${ad936x_skip_ext_refclk}; then if test -n ${ad936x_custom_refclk}; then fdt set /clocks/clock@0 clock-frequency ${ad936x_custom_refclk}; elif test -n ${ad936x_ext_refclk}; then fdt set /clocks/clock@0 clock-frequency ${ad936x_ext_refclk}; fi; fi; if test -n ${model}; then fdt set / model ${model}; fi; if test -n ${attr_name} && test -n ${attr_val}; then fdt set /amba/spi@e0006000/ad9361-phy@0 ${attr_name} ${attr_val}; fi'
fw_setenv ad936x_custom_refclk "<25000000>"

These (rather unwieldy) commands will change the behaviour of the bootloader at startup. Normally the u-boot looks for a special variable called ad936x_ext_refclk which is set in the factory and contains an individually calibrated value for each PlutoSDR. This value then gets loaded into the device tree. We modify that behaviour so that we can set our own ad936x_custom_refclk variable with a custom value.
Note: The < >-characters around the frequency are mandatory.

To check if our changes were successful, we can read the device-tree:

cat /proc/device-tree/clocks/clock@0/clock-frequency | xxd
# 00000000: 017d 7840                                .}x@

Hex 017d 7840 is 25000000 in decimal, so our custom frequency was successfully applied.