pixo_replacement
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
pixo_replacement [2023/03/28 14:21] – [New TCXO] millerjs | pixo_replacement [2024/11/14 02:30] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Raspberry Pi XO Replacement ====== | ====== Raspberry Pi XO Replacement ====== | ||
+ | Context: | ||
* https:// | * https:// | ||
Line 6: | Line 7: | ||
^ Pi 2 B with replaced XO | ^ Pi 2 B with replaced XO | ||
- | | {{:: | + | | {{:: |
==== Notable Test Points ==== | ==== Notable Test Points ==== | ||
Line 26: | Line 27: | ||
* http:// | * http:// | ||
+ | |||
+ | As far as I can tell, the Pi 2B through 3B+ all use this part, as well as a number of the A models. The Pi 4B uses two AEL crystals, one at 25MHz, the other at 54MHz. I have not yet experimented with replacing these parts. | ||
==== New TCXO ==== | ==== New TCXO ==== | ||
- | * [[https://media.digikey.com/ | + | * [[https://www.digikey.com/ |
* [[https:// | * [[https:// | ||
- | ==== Test Cases ==== | ||
- | Before I do this swap, I need to get a benchmark of (at least) two identical Pis so I have a baseline of their performance in stock configuration. These systems need to be as identical as possible, both in terms of software load out as well as their physical deployment. | ||
- | |||
- | === Software === | ||
- | * OS - Alpine Linux 3.17 | ||
- | * Timekeeping/ | ||
- | |||
- | Configured to be as light and slim as possible. | ||
- | |||
- | === Physical === | ||
- | This will be an isolated test, no | ||
- | == Power == | ||
- | Meanwell 5v PSU powering both Pis - "back feeding" | ||
- | |||
- | == Environmental == | ||
- | Both Pis enclosed in a single styrofoam enclosure, as close to each other as reasonable. Placed in a location that is as temperature stable as possible (no direct sunlight, no temp swings from HVAC adjacency, etc.) | ||
====== Quantifying Results ====== | ====== Quantifying Results ====== | ||
+ | There are a number of different methods for quantifying the results of this sort of modification. A few that I am exploring will be detailed below. | ||
==== chrony tracking ===== | ==== chrony tracking ===== | ||
+ | (Graphs coming eventually) | ||
==== Python Frequency Generator ==== | ==== Python Frequency Generator ==== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
- | < | + | < |
# | # | ||
- | ##### | ||
- | # This tool generates PWM on GPIO10 (Pin 19) | ||
- | # with 20% Duty Cycle at 1kHz | ||
- | ###### | ||
import RPi.GPIO as GPIO | import RPi.GPIO as GPIO | ||
Line 69: | Line 54: | ||
p.start(20) | p.start(20) | ||
sleep(3600) | sleep(3600) | ||
+ | p.stop() | ||
GPIO.cleanup() | GPIO.cleanup() | ||
exit() | exit() | ||
+ | </ | ||
+ | |||
+ | ==== WiringPi GPIO_CLOCK ==== | ||
+ | The WiringPi toolset has a function to use the SoC's PLLs to generate a precise clock using the GPIO_CLOCK function. This can be initiated easily from the linux userspace by first setting the pin mode, then the output frequency. Only WiringPi Pin 7 (GPIO 4) supports this mode. | ||
+ | |||
+ | < | ||
+ | gpio mode 7 clock | ||
+ | gpio clock 7 1000000 # frequency in Hz | ||
</ | </ |
pixo_replacement.1680013318.txt.gz · Last modified: 2024/11/14 02:30 (external edit)