From 56ee924e20fa652349aa8aff9db089a2d6d8c150 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Mon, 2 Apr 2018 15:16:24 +0200 Subject: [PATCH] Added configurable amplifier sequencing (TX delay, TX hold off, AMP on/off) --- basic.cydsn/TopDesign/TopDesign.cysch | Bin 336660 -> 339179 bytes basic.cydsn/VariableDelay32/API/api.c | 38 +++ basic.cydsn/VariableDelay32/API/api.h | 21 ++ .../VariableDelay32/VariableDelay32.cysym | Bin 0 -> 68129 bytes .../VariableDelay32/VariableDelay32.cyudb | Bin 0 -> 107808 bytes basic.cydsn/basic.cyprj | 237 +++++++++++++++++- basic.cydsn/basic.h | 27 +- basic.cydsn/iambic/API/iambic.c | 3 - basic.cydsn/main.c | 4 +- basic.cydsn/tx.c | 111 ++++++-- basic.cydsn/usbvend.c | 5 + 11 files changed, 419 insertions(+), 27 deletions(-) create mode 100644 basic.cydsn/VariableDelay32/API/api.c create mode 100644 basic.cydsn/VariableDelay32/API/api.h create mode 100644 basic.cydsn/VariableDelay32/VariableDelay32.cysym create mode 100644 basic.cydsn/VariableDelay32/VariableDelay32.cyudb diff --git a/basic.cydsn/TopDesign/TopDesign.cysch b/basic.cydsn/TopDesign/TopDesign.cysch index 9e3c0cc204604c86aea0847bc567dce8a47e812b..4d30586f8e9293538d705c7d7af474306b482ed5 100644 GIT binary patch literal 339179 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 literal 336660 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 + +void `$INSTANCE_NAME`_Start(void) +{ + // Reset the counter. + CY_SET_REG8(`$INSTANCE_NAME`_Datapath_1_u0__16BIT_A0_REG, 0); + CY_SET_REG8(`$INSTANCE_NAME`_Datapath_1_u2__16BIT_A0_REG, 0); + // Reset the delay to a single tick. + CY_SET_REG8(`$INSTANCE_NAME`_Datapath_1_u0__16BIT_D1_REG, 1); + CY_SET_REG8(`$INSTANCE_NAME`_Datapath_1_u2__16BIT_D1_REG, 0); + CY_SET_REG8(`$INSTANCE_NAME`_Datapath_1_u0__16BIT_D0_REG, 1); + CY_SET_REG8(`$INSTANCE_NAME`_Datapath_1_u2__16BIT_D0_REG, 0); +} + +void `$INSTANCE_NAME`_SetDelay(int8 delay) +{ + uint32 high = 1 << delay; + uint32 mask = high - 1; + // Reset the counter. + CY_SET_REG16(`$INSTANCE_NAME`_Datapath_1_u0__16BIT_A0_REG, 0); + CY_SET_REG16(`$INSTANCE_NAME`_Datapath_1_u2__16BIT_A0_REG, 0); +#if 1 + // Set the length of a shift register by a mask. + CY_SET_REG16(`$INSTANCE_NAME`_Datapath_1_u0__16BIT_D1_REG, mask & 0x0ffff); + CY_SET_REG16(`$INSTANCE_NAME`_Datapath_1_u1__16BIT_D1_REG, mask >> 16); + // Set the highest bit of the shift register. This is the output of the shift register. + CY_SET_REG16(`$INSTANCE_NAME`_Datapath_1_u0__16BIT_D0_REG, high & 0x0ffff); + CY_SET_REG16(`$INSTANCE_NAME`_Datapath_1_u1__16BIT_D0_REG, high >> 16); +#else + // Set the length of a shift register by a mask. + CY_SET_REG16(`$INSTANCE_NAME`_Datapath_1_u2__16BIT_D1_REG, mask & 0x0ffff); + CY_SET_REG16(`$INSTANCE_NAME`_Datapath_1_u0__16BIT_D1_REG, mask >> 16); + // Set the highest bit of the shift register. This is the output of the shift register. + CY_SET_REG16(`$INSTANCE_NAME`_Datapath_1_u2__16BIT_D0_REG, high & 0x0ffff); + CY_SET_REG16(`$INSTANCE_NAME`_Datapath_1_u0__16BIT_D0_REG, high >> 16); +#endif +} diff --git a/basic.cydsn/VariableDelay32/API/api.h b/basic.cydsn/VariableDelay32/API/api.h new file mode 100644 index 0000000..8d475e5 --- /dev/null +++ b/basic.cydsn/VariableDelay32/API/api.h @@ -0,0 +1,21 @@ +// ======================================== +// Copyright 2013 David Turnbull AE9RB +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ======================================== + +#include "cytypes.h" +#include "cyfitter.h" + +void `$INSTANCE_NAME`_Start(); +void `$INSTANCE_NAME`_SetDelay(int8 delay); diff --git a/basic.cydsn/VariableDelay32/VariableDelay32.cysym b/basic.cydsn/VariableDelay32/VariableDelay32.cysym new file mode 100644 index 0000000000000000000000000000000000000000..018e7b7e32b2938ac5e4a59ef08a897ac7d19918 GIT binary patch literal 68129 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2393,6 +2570,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2603,5 +2838,5 @@ - + \ No newline at end of file diff --git a/basic.cydsn/basic.h b/basic.cydsn/basic.h index 080791c..67e5298 100644 --- a/basic.cydsn/basic.h +++ b/basic.cydsn/basic.h @@ -137,12 +137,14 @@ extern uint8 TX_Phase; // End the transmit of PC audio data. #define TX_PHASE_TXPC_EXIT 11 // Transmitting an internal shaped IQ tone, keyed by the external key down signal. -#define TX_PHASE_IQTONE_RAMP_UP 20 -#define TX_PHASE_IQTONE_STEADY 21 -#define TX_PHASE_IQTONE_RAMP_DOWN 22 -#define TX_PHASE_IQTONE_END 23 -#define TX_PHASE_IQTONE_UNMUTE 24 -#define TX_PHASE_IQTONE_EXIT 25 +#define TX_PHASE_IQTONE_IDLE 20 +#define TX_PHASE_IQTONE_RAMP_UP 21 +#define TX_PHASE_IQTONE_STEADY 22 +#define TX_PHASE_IQTONE_RAMP_DOWN 23 +#define TX_PHASE_IQTONE_HANG 24 +#define TX_PHASE_IQTONE_END 25 +#define TX_PHASE_IQTONE_UNMUTE 26 +#define TX_PHASE_IQTONE_EXIT 27 // Phase of the IQ tone generator (position at the amplitude envelope of the IQ hump). extern uint8 TX_IQ_Phase; @@ -150,6 +152,19 @@ extern uint8 TX_IQ_Phase; // Is the TX frequency active? If false, Si570_RX_LO is active, otherwise Si570_TX_LO is active. extern uint8 TX_Frequency; +struct AmpSequencingConfig +{ + uint8 AMP_Enabled; + // Initial TX delay after AMP relay is switched in, in 0.5ms. Maximum time is 15ms. + uint8 TX_Delay; + // TX Hang time for the amplifier control, in 0.5ms. Maximum time 32 seconds. + uint16 TX_Hang; +}; + +extern struct AmpSequencingConfig AmpSequencingNew; +extern struct AmpSequencingConfig AmpSequencingCurrent; + +void AmpSequencingReset(); void TX_Main(void); // t1.c diff --git a/basic.cydsn/iambic/API/iambic.c b/basic.cydsn/iambic/API/iambic.c index 69d4e08..28cb298 100644 --- a/basic.cydsn/iambic/API/iambic.c +++ b/basic.cydsn/iambic/API/iambic.c @@ -6,19 +6,16 @@ void `$INSTANCE_NAME`_SetSpeed(uint8 val) { -// CY_SET_REG8(`$INSTANCE_NAME`_cntr8_D0_PTR,val); CY_SET_REG8(`$INSTANCE_NAME`_cntr8_u0__D0_REG,val); } uint8 `$INSTANCE_NAME`_GetSpeed() { -// return CY_GET_REG8(`$INSTANCE_NAME`_cntr8_D0_PTR); return CY_GET_REG8(`$INSTANCE_NAME`_cntr8_u0__D0_REG); } void `$INSTANCE_NAME`_SetMode(uint8 val) { -// CY_SET_REG8(`$INSTANCE_NAME`_cntr8_D0_PTR,val); CY_SET_REG8(`$INSTANCE_NAME`_IAMBIC_CONTROL__CONTROL_REG,val); } diff --git a/basic.cydsn/main.c b/basic.cydsn/main.c index 05db589..3c4e983 100644 --- a/basic.cydsn/main.c +++ b/basic.cydsn/main.c @@ -40,6 +40,8 @@ void main_init() { TONE_CLK_SetDividerRegister(625, 1); // 1200Hz sidetone TONE_CLK_SetDividerRegister(625/2, 1); + + AmpSequencingReset(); } // A compliant USB device is required to monitor @@ -74,6 +76,7 @@ void main() for(;;) { // USB Audio is very high priority Audio_Main(); + // Sync the internal RC oscillator onto the isochronous USB 1kHz framing. Sync_Main(); // Everything else runs twice per millisecond // Keep T1 first for timing accuracy @@ -107,7 +110,6 @@ void main() beat = i; } } - } } diff --git a/basic.cydsn/tx.c b/basic.cydsn/tx.c index 162f8db..1c6c5e6 100644 --- a/basic.cydsn/tx.c +++ b/basic.cydsn/tx.c @@ -17,18 +17,51 @@ #define TX_LED_BLINK_ON_MS 40 #define TX_LED_BLINK_OFF_MS 50 +// Bitmap of TX_xxx flags indicating TX state. uint8 TX_State = 0; +// Phase of the IQ tone generator (position at the amplitude envelope of the IQ hump). uint8 TX_Phase = TX_PHASE_RECEIVING; +// Is the TX frequency active? If false, Si570_RX_LO is active, otherwise Si570_TX_LO is active. uint8 TX_Frequency = 0; +uint16 TX_HangCounter = 0; + +struct AmpSequencingConfig AmpSequencingNew; +struct AmpSequencingConfig AmpSequencingCurrent; + +void AmpSequencingReset() +{ + AmpSequencingNew.AMP_Enabled = 0; + AmpSequencingNew.TX_Delay = 0; + AmpSequencingNew.TX_Hang = 0; + AmpSequencingCurrent.TX_Delay = 1; +} + +uint32 KeyerDelayAcc = 0; +uint32 KeyerDelayMask = 0; +uint32 KeyerDelayOut = 0; + +#define KEYER_PTT (KeyerDelayAcc) +#define KEYER_DOWN ((KeyerDelayAcc & KeyerDelayOut) != 0) + void TX_Main(void) { static uint8 blink; uint8 i; + uint8 status = Status_Read(); + KeyerDelayAcc = ((KeyerDelayAcc & KeyerDelayMask) << 1) | ((status & STATUS_KEYER) != 0); switch (TX_Phase) { case TX_PHASE_RECEIVING: + AmpSequencingCurrent.AMP_Enabled = AmpSequencingNew.AMP_Enabled; + if (AmpSequencingCurrent.TX_Delay != AmpSequencingNew.TX_Delay) { + AmpSequencingCurrent.TX_Delay = AmpSequencingNew.TX_Delay; + KeyerDelayAcc = 0; + KeyerDelayOut = ((uint32)1) << AmpSequencingCurrent.TX_Delay; + KeyerDelayMask = KeyerDelayOut - 1; + } + AmpSequencingCurrent.TX_Hang = AmpSequencingNew.TX_Hang; // Remember the current state of tkey key down input. - if (Status_Read() & STATUS_KEYER) + if (status & STATUS_KEYER) TX_State |= TX_KEY_REQUESTED; else TX_State &= ~TX_KEY_REQUESTED; @@ -51,9 +84,11 @@ void TX_Main(void) { TX_Phase = TX_PHASE_AMP_ENABLE; break; case TX_PHASE_AMP_ENABLE: - // Enable an externa amplifier. - Control_Write(Control_Read() & ~CONTROL_AMP); - TX_Phase = (TX_State & TX_PC_ACTIVE) ? TX_PHASE_TXPC : TX_PHASE_IQTONE_RAMP_UP; + // Enable an external amplifier. + if (AmpSequencingCurrent.AMP_Enabled) + Control_Write(Control_Read() & ~CONTROL_AMP); + TX_Phase = (TX_State & TX_PC_ACTIVE) ? TX_PHASE_TXPC : + (KEYER_DOWN) ? TX_PHASE_IQTONE_RAMP_UP : TX_PHASE_IQTONE_IDLE; blink = 1; break; case TX_PHASE_TXPC: @@ -82,7 +117,7 @@ void TX_Main(void) { break; case TX_PHASE_IQTONE_STEADY: // Transmitting an internal shaped IQ tone, keyed by the external key down signal. - if ((Status_Read() & STATUS_KEYER) == 0) { + if (! KEYER_DOWN) { // Key is released. TX_State &= ~TX_KEY_REQUESTED; TX_Phase = TX_PHASE_IQTONE_RAMP_DOWN; @@ -94,22 +129,66 @@ void TX_Main(void) { // Transition from TX_PHASE_IQTONE_RAMP_DOWN to TX_PHASE_IQTONE_END is controlled by the IQ tone generator. break; case TX_PHASE_IQTONE_END: - // Transmitting an internal shaped IQ tone, keyed by the external key down signal. - Control_Write((Control_Read() & ~(CONTROL_TX | CONTROL_LED)) | CONTROL_AMP); - TX_Phase = TX_PHASE_IQTONE_UNMUTE; TX_IQ_Phase = 0; + case TX_PHASE_IQTONE_IDLE: + { + // Wait for the amplifier relay to switch to TX. + if (KEYER_DOWN) { + // The AMP relay sequencing and the signal has been delayed by the FPGA modules + // ImabicKeyer and KeyDelay to avoid hot switching of the AMP relay. + // Now it is safe to start the trasmitting. + TX_Phase = TX_PHASE_IQTONE_RAMP_UP; + } else if (! KEYER_PTT) { + if (AmpSequencingNew.TX_Hang == 0) { + Control_Write((Control_Read() & ~(CONTROL_TX | CONTROL_LED)) | CONTROL_AMP); + TX_Phase = TX_PHASE_IQTONE_UNMUTE; + } else { + TX_Phase = TX_PHASE_IQTONE_HANG; + TX_HangCounter = AmpSequencingNew.TX_Hang; + } + } + break; + } + case TX_PHASE_IQTONE_HANG: + // Wait for the keyamplifier relay to switch to TX. + if (KEYER_DOWN) + // The AMP relay sequencing and the signal has been delayed by the FPGA modules + // ImabicKeyer and KeyDelay to avoid hot switching of the AMP relay. + // Now it is safe to start the trasmitting. + TX_Phase = TX_PHASE_IQTONE_RAMP_UP; + else if (KEYER_PTT) + // Key was pressed, but the key may be delayed. + TX_Phase = (AmpSequencingCurrent.TX_Delay == 0) ? TX_PHASE_IQTONE_RAMP_UP : TX_PHASE_IQTONE_IDLE; + else if (-- TX_HangCounter == 0) { + // The FPGA module PttOffCounter indicates an end of TX. + Control_Write((Control_Read() & ~(CONTROL_TX | CONTROL_LED)) | CONTROL_AMP); + TX_Phase = TX_PHASE_IQTONE_UNMUTE; + TX_IQ_Phase = 0; + } break; case TX_PHASE_IQTONE_UNMUTE: - Control_Write(Control_Read() | CONTROL_RX); - TX_Phase = TX_PHASE_IQTONE_EXIT; - TX_IQ_Phase = 0; - // Switch back to receive LO frequency. - TX_Frequency = 0; + if (KEYER_PTT) { + TX_Phase = TX_PHASE_TX_ENABLE; + } else { + Control_Write(Control_Read() | CONTROL_RX); + TX_Phase = TX_PHASE_IQTONE_EXIT; + TX_IQ_Phase = 0; + // Switch back to receive LO frequency. + TX_Frequency = 0; + } break; case TX_PHASE_IQTONE_EXIT: - TX_Phase = TX_PHASE_RECEIVING; - TX_State &= ~TX_KEY_ACTIVE; - RX_MuteCounter = 10; + if (KEYER_PTT) { + TX_Phase = TX_PHASE_TX_ENABLE; + // Let the Si570 thread switch the LO to Si570_TX_LO. + TX_Frequency = Si570_TX_LO != 0; + // Mute the receiver. + Control_Write(Control_Read() & ~CONTROL_RX); + } else { + TX_Phase = TX_PHASE_RECEIVING; + TX_State &= ~TX_KEY_ACTIVE; + RX_MuteCounter = 10; + } break; } diff --git a/basic.cydsn/usbvend.c b/basic.cydsn/usbvend.c index 38f5f21..01866ef 100644 --- a/basic.cydsn/usbvend.c +++ b/basic.cydsn/usbvend.c @@ -144,6 +144,11 @@ uint8 USBFS_HandleVendorRqst(void) USBFS_currentTD.count = 1; requestHandled = USBFS_InitControlWrite(); break; + case 0x67: // CMD_SET_AMP_SEQUENCING + USBFS_currentTD.pData = (void *)&AmpSequencingNew; + USBFS_currentTD.count = 4; + requestHandled = USBFS_InitControlWrite(); + break; case 0x69: // CMD_SET_CW_IQ_WAVEFORM // Receive 9ms of IQ int16 words, // representing 4ms of raise, 1ms of steady and 4ms of fall.