From fc19313f6b20d2073e75eb968e18bffb614effdf Mon Sep 17 00:00:00 2001 From: Jean-Michel Friedt Date: Tue, 22 Feb 2022 15:28:48 +0100 Subject: [PATCH] analyse --- analyse.tex | 10 ++++++++++ architecture.fig | 22 +++++++++++++++++----- architecture.pdf | Bin 10859 -> 11181 bytes 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/analyse.tex b/analyse.tex index 66e76c7..097acde 100644 --- a/analyse.tex +++ b/analyse.tex @@ -31,6 +31,16 @@ le temps de vol au-del\`a de 300~m de distance. \section{Architecture du syst\`eme} +Contraintes~: +\begin{itemize} +\item Si5351 impose une horloge d'entr\'ee entre 25~MHz et 26~MHz +\item RTL-SDR impose une horloge de 28,8~MHz +\item les horloges ultrastables imposent de fournir une r\'ef\'erence de 10~MHz +(ma\^\i tre) et un signal de synchronisation 1-PPS (ma\^\i tre) +\item les utilisateurs veulent recevoir un signal esclave \`a 10~MHz et un +signal de synchronisation esclave 1-PPS +\end{itemize} + \begin{center} \includegraphics[width=.8\linewidth]{architecture} \end{center} diff --git a/architecture.fig b/architecture.fig index 4761606..f2cd402 100644 --- a/architecture.fig +++ b/architecture.fig @@ -118,7 +118,16 @@ Single 9990 7470 13050 7470 13050 7695 9990 7695 9990 7470 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 - 9135 7380 9135 6975 + 9135 7155 9135 6975 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 0 0 1.00 60.00 120.00 + 9135 7470 9135 7290 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 0 0 1.00 60.00 120.00 + 9135 5715 9135 5535 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 0 0 1.00 60.00 120.00 + 9135 6030 9135 5850 4 0 0 50 -1 0 12 0.0000 4 180 1155 8730 6660 gateway (GW)\001 4 0 0 50 -1 0 12 0.0000 4 135 585 9810 6930 Si5351\001 4 0 0 50 -1 0 12 0.0000 4 135 810 10350 7155 28.8 MHz\001 @@ -132,10 +141,10 @@ Single 4 0 0 50 -1 0 12 0.0000 4 180 1125 8730 5220 endpoint (EP)\001 4 0 0 50 -1 0 12 0.0000 4 165 780 8730 5490 (25 MHz)\001 4 0 0 50 -1 0 12 0.0000 4 135 585 9810 5490 Si5351\001 -4 0 0 50 -1 0 12 0.0000 4 135 660 10350 5265 10 MHz\001 +4 0 13 50 -1 0 12 0.0000 4 135 660 10350 5265 10 MHz\001 4 0 0 50 -1 0 12 0.0000 4 135 810 10350 5715 28.8 MHz\001 4 0 0 50 -1 0 12 0.0000 4 120 615 11295 5355 counter\001 -4 0 0 50 -1 0 12 0.0000 4 135 465 11970 5265 1 PPS\001 +4 0 13 50 -1 0 12 0.0000 4 135 465 11970 5265 1 PPS\001 4 0 0 50 -1 0 12 0.0000 4 135 810 12555 5580 RTL-SDR\001 4 0 0 50 -1 0 8 0.0000 4 120 105 13050 5400 Q\001 4 0 0 50 -1 0 8 0.0000 4 90 195 12150 5670 CK\001 @@ -143,8 +152,11 @@ Single 4 0 0 50 -1 0 8 0.0000 4 90 270 13005 5850 USB\001 4 0 0 50 -1 0 12 0.0000 4 180 1185 10980 6210 Raspberry Pi 4\001 4 0 0 50 -1 0 8 0.0000 4 90 195 13410 6075 SPI\001 -4 0 4 50 -1 0 8 0.0000 4 90 1155 10125 5940 control Si5351 PLL\001 +4 0 13 50 -1 0 8 0.0000 4 90 1155 10125 5940 control Si5351 PLL\001 4 0 4 50 -1 0 12 0.0000 4 135 525 11340 6795 refPPS\001 4 0 0 50 -1 0 12 0.0000 4 135 660 8820 6930 25 MHz\001 4 0 0 50 -1 0 8 0.0000 4 90 270 10395 6930 out0\001 -4 0 4 50 -1 0 12 0.0000 4 135 870 8775 7605 ref10 MHz\001 +4 0 0 50 -1 0 12 0.0000 4 135 480 8910 7290 FPGA\001 +4 0 4 50 -1 0 12 0.0000 4 135 870 8775 7650 ref10 MHz\001 +4 0 0 50 -1 0 12 0.0000 4 135 480 8910 5850 FPGA\001 +4 0 0 50 -1 0 12 0.0000 4 135 660 8775 6210 10 MHz\001 diff --git a/architecture.pdf b/architecture.pdf index c707fade1a9eb5525e9afcfb7195efb790d96b45..fe0e10e0797ae50a5f4b0c3b54b11ab80de0515f 100644 GIT binary patch delta 8507 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 delta 8156 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 SI1n&DzW@#ki=2i$&i?|)sudRi -- 2.16.4