From 94f3c9f00ec241ce6a464836dde5e00d1712b480 Mon Sep 17 00:00:00 2001 From: David Raeman Date: Thu, 6 Jun 2024 04:12:27 +0000 Subject: [PATCH] e320: Ensure GPSDO is cleanly reset upon radio power-on This patch performs an explicit reset on the GPSDO when the E320 MPM service is initialized upon boot. This ensures the GPSDO HW is always in a known POR state when MPM starts up. --- mpm/python/usrp_mpm/periph_manager/e320.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mpm/python/usrp_mpm/periph_manager/e320.py b/mpm/python/usrp_mpm/periph_manager/e320.py index e3522ef837..5709b8a2cc 100644 --- a/mpm/python/usrp_mpm/periph_manager/e320.py +++ b/mpm/python/usrp_mpm/periph_manager/e320.py @@ -10,6 +10,7 @@ import bisect import copy import re +import time from functools import partial from six import iteritems from usrp_mpm.compat_num import CompatNumber @@ -261,7 +262,11 @@ def _init_peripherals(self, args): # Init peripherals self._gps_enabled = None # Assume indeterminant, will latch _def_gps_enabled self._def_gps_enabled = str2bool(args.get('enable_gps', E320_DEFAULT_ENABLE_GPS)) - self.enable_gps(self._def_gps_enabled) + # Ensure clean power-on for GPS receiver + self.enable_gps(False) + if self._def_gps_enabled: + time.sleep(0.100) # held off for 100ms + self.enable_gps(True) self.enable_fp_gpio( enable=args.get('enable_fp_gpio', E320_DEFAULT_ENABLE_FPGPIO) )