From: c vw <dl1ycf@darc.de>
Date: Thu, 8 Aug 2019 18:12:56 +0000 (+0200)
Subject: antenna routing
X-Git-Url: https://git.rkrishnan.org/pf/frontends/schema.xhtml?a=commitdiff_plain;h=78a26cb67fddfbce31683d963cad458dd6d1d726;p=pihpsdr.git

antenna routing
---

diff --git a/alex.h b/alex.h
index 6341cac..fffd69f 100644
--- a/alex.h
+++ b/alex.h
@@ -49,6 +49,12 @@
 #define ALEX_TX_ANTENNA_3      0x04000000		// route TX to ANT3
 
 //
+// Anan-7000 in contrast to ANAN-8000 has the TX relays in series (not parallel)
+//
+#define ANAN7000_TX_ANTENNA_1   0x00000000		// K8 off, K11 off, K14 off
+#define ANAN7000_TX_ANTENNA_2   0x03000000		// K8 on,  K11 on,  K14 off
+#define ANAN7000_TX_ANTENNA_3   0x05000000		// K8 on,  K11 off, K14 on
+
 // Note: DO NOT SET attenuator bits on ANAN-7000/8000
 //       since ALEX0(14) is used for a different purpose!
 //
diff --git a/hpsdrsim.c b/hpsdrsim.c
index 1259e68..d41e1d8 100644
--- a/hpsdrsim.c
+++ b/hpsdrsim.c
@@ -928,7 +928,7 @@ void process_ep2(uint8_t *frame)
 	   chk_data(frame[1],txdrive,"TX DRIVE");
 	   chk_data(frame[2] & 0x3F,hermes_config,"HERMES CONFIG");
 	   chk_data(frame[2] & 0x40, alex_manual,"ALEX manual HPF/LPF");
-	   chk_data(frame[2] & 0x70, vna     ,"VNA mode");
+	   chk_data(frame[2] & 0x80, vna     ,"VNA mode");
 	   chk_data(frame[3] & 0x1F,alex_hpf,"ALEX HPF");
 	   chk_data(frame[3] & 0x20,alex_bypass,"ALEX Bypass HPFs");
 	   chk_data(frame[3] & 0x40,lna6m,"ALEX 6m LNA");
diff --git a/new_protocol.c b/new_protocol.c
index 50b56b7..edbb13d 100644
--- a/new_protocol.c
+++ b/new_protocol.c
@@ -1002,6 +1002,7 @@ static void new_protocol_high_priority() {
     } else {
       i=receiver[0]->alex_antenna;
     }
+    if (device == NEW_DEVICE_ORION2) device +=100;  // Only valid for ANAN-7000 not ANAN-8000!
     switch(i) {
       case 0:  // ANT 1
         alex0|=ALEX_TX_ANTENNA_1;
@@ -1012,13 +1013,27 @@ static void new_protocol_high_priority() {
       case 2:  // ANT 3
         alex0|=ALEX_TX_ANTENNA_3;
         break;
+      case 100: //ANT 1 on ANAN-7000
+        alex0|=ANAN7000_TX_ANTENNA_1;
+        break;
+      case 101: //ANT 1 on ANAN-7000
+        alex0|=ANAN7000_TX_ANTENNA_2;
+        break;
+      case 102: //ANT 1 on ANAN-7000
+        alex0|=ANAN7000_TX_ANTENNA_3;
+        break;
       default:
-	// this should not happen in TX case. Out of paranoia,
+	// If RXing, this means EXT1 etc. is activated, but
+	// we should not arrive here in TX case. Out of paranoia,
         // connect ANT1 in this case
 	if (isTransmitting()) {
 	  fprintf(stderr,"WARNING: illegal TX antenna chosen, using ANT1\n");
 	  transmitter->alex_antenna=0;
-          alex0|=ALEX_TX_ANTENNA_1;
+	  if (device == NEW_DEVICE_ORION2) {
+            alex0|=ANAN7000_TX_ANTENNA_1;
+	  } else {
+            alex0|=ALEX_TX_ANTENNA_1;
+	  }
 	}
 	break;
     }
diff --git a/old_protocol.c b/old_protocol.c
index 72aa9e4..b662c7c 100644
--- a/old_protocol.c
+++ b/old_protocol.c
@@ -1146,14 +1146,18 @@ void ozy_send_buffer() {
       case 3:  // EXT1 (RX2_IN)
         output_buffer[C3]|=0xC0;
         break;
-      case 4:  // EXT2 (RX1_IN)
+      case 4:  // EXT2 (RX1_IN)  (activates ByPass on ANAN-7000)
         output_buffer[C3]|=0xA0;
         break;
       case 5:  // XVTR
         output_buffer[C3]|=0xE0;
         break;
-      case 7:  // RX Bypass In
-        output_buffer[C3]|=0x80;
+      case 7:  // Bypass
+	if (device == DEVICE_ORION2) {
+          output_buffer[C3]|=0x20;    // works on ANAN-7000
+	} else {
+          output_buffer[C3]|=0x80;    // meant to work on ANAN-100/200 with Rev.24 PA board
+        }
 	break;
       default:
 	// RX1_ANT, RX1_OUT bits remain zero