Hallo!
Für ein Open Source Projekt (https://github.com/TorstenRobitzki/bluetoe) von mir, denke ich darüber nach, die unterste Treiber-Schicht des Bluetooth Stacks mit einem externen Tester zu testen. Der Radio-Treiber (https://github.com/TorstenRobitzki/bluetoe/blob/9fa32f5181916d8fa754d8814810ecb0d5dc5c5e/bluetoe/link_layer/scheduled_radio2.hpp) würde auf einem Eval Board mit Radio Peripheral laufen (DUT) und würde über z.B. UART den Befehl bekommen, zu einem bestimmten Zeitpunkt, für eine bestimmte Zeit auf Empfang zu gehen.
Der Tester würde dann auch auf einem Eval Board mit Radio-Peripheral laufen. Der Tester würde Test-Packete schicken um auszutesten, ob der DUT diese empfängt um zu sehen, dass der Treiber die einzustellenden Zeiten (Start- und Stop-Empfang) korrekt eingestellt hat.
Die Zeiten werden mit einer Auslösung von 1µs beim Radio-Treiber angegeben. Die beste Clock Genauigkeit, die ein DUT haben kann, wären 20ppm. Das längste, zu messende Interval zwischen Start- und Stop-Empfang wären 2 Sekunden.
Den Tester würde ich gerne auf einem nRF52 Eval-Board implementieren (weil ich mit der Hardware vertraut bin). Der nRF52 sieht leider keinen externen Takt-Eingang vor. Die benötigten internen 64 MHz werden durch einen internen Oszilator mit externem Quarz hergestellt (https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf52840%2Fclock.html&cp=5_0_0_4_3_0_0&anchor=concept_rmw_c5y_2q__fig_qyy_xtp_jq).
Jetzt frage ich mich: Ist es irgendwie möglich, den nRF52 mit einer Genauigkeit von 0,05ppm bis 0,5ppm zu betreiben? Habt Ihr alternative Ideen für die Tester-Hardware?
- Oszilatoren mit 32 MHz und 0,5ppm scheinen keine Seltenheit zu sein, aber bekäme ich so einen Oszilator auch irgendwie an den nRF52 angeschlossen?
- Quarz austauschen und irgend wie mit Heizung und Regelung versehen?
Schönen Dank für eure Tipps und Gedanken
Torsten