From 47540b0fb63724b88964e2cbc12d9640cc01905c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20P=C3=A9tr=C3=A9?= <laurent.petre@cern.ch> Date: Wed, 22 Mar 2023 20:00:50 +0100 Subject: [PATCH] Only toggle GPIO #9 when resetting the slave lpGBT With the appropriate default lpGBT configuration, this commits avoids any side effect on the master lpGBT from triggering an exernal slave lpGBT reset. Side effects included, among others, incorrectly setting the VFAT reset lines GPIO. Updated default lpGBT configurations will fully configure the GPIO block for "the system to just work": I/O direction, drive strength, pull-up/down resistor, reset lifted,... --- gemhardware/src/gbt.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gemhardware/src/gbt.cpp b/gemhardware/src/gbt.cpp index 1a752886..7eebb788 100644 --- a/gemhardware/src/gbt.cpp +++ b/gemhardware/src/gbt.cpp @@ -311,9 +311,8 @@ uint8_t gem::hardware::gbt::reset_slave_gbt(const uint32_t ohN, uint8_t gbtMask) continue; try { - writeGBTReg(ohN, gbtN, 0x053, 0x02); // Configure GPIO #9 as output - writeGBTReg(ohN, gbtN, 0x055, 0x00); // Set GPIO #9 low - writeGBTReg(ohN, gbtN, 0x053, 0x00); // Configure GPIO #9 as input (lifts the reset) + writeGBTReg(ohN, gbtN, 0x055, 0x0, 0x2); // Set GPIO #9 low + writeGBTReg(ohN, gbtN, 0x055, 0x1, 0x2); // Set GPIO #9 high } catch (const gbt_ic_error&) { gbtMask &= ~(1U << gbtN); } -- GitLab