2025-05-14 12:57:39 -05:00
|
|
|
/*
|
|
|
|
|
* taps.c
|
|
|
|
|
*
|
|
|
|
|
* Created on: Mar 16, 2023
|
|
|
|
|
* Author: Keith.Lloyd
|
|
|
|
|
*/
|
|
|
|
|
#include "arm_math.h"
|
|
|
|
|
#include "fsl_gpio.h"
|
|
|
|
|
#include "spi.h"
|
|
|
|
|
|
|
|
|
|
#include "taps.h"
|
|
|
|
|
#include "display.h"
|
|
|
|
|
#include "ports.h"
|
|
|
|
|
#include "mode.h"
|
|
|
|
|
#include "frq.h"
|
|
|
|
|
#include "amps.h"
|
|
|
|
|
#include "adc.h"
|
|
|
|
|
#include "utils.h"
|
2025-06-11 10:55:00 -05:00
|
|
|
#include "io.h"
|
|
|
|
|
#include "System/system.h"
|
2025-05-14 12:57:39 -05:00
|
|
|
|
2025-06-11 10:55:00 -05:00
|
|
|
extern SYSTEM_DATA_t sys;
|
2025-05-14 12:57:39 -05:00
|
|
|
extern uint8_t Port_State[];
|
|
|
|
|
extern uint8_t Cur_Mode,Test_Mode;
|
|
|
|
|
extern uint32_t new_freq;
|
|
|
|
|
extern float32_t Ohms;
|
|
|
|
|
extern uint16_t Taps_adjust_timer;
|
|
|
|
|
extern uint8_t frequency;
|
|
|
|
|
extern FREQUENCY_t freqArray[FREQ_MAX_NUM];
|
|
|
|
|
float32_t last_Ohms;
|
|
|
|
|
extern uint8_t Taps_Flag;
|
|
|
|
|
void Check_Taps(void)
|
|
|
|
|
{
|
|
|
|
|
Taps_adjust_timer = DELAY_ONE_SECOND;
|
|
|
|
|
|
|
|
|
|
if(Cur_Mode != BROADCAST)
|
|
|
|
|
{
|
|
|
|
|
if (new_freq <= MAX_DTYPE)
|
|
|
|
|
Set_taps_LF();
|
|
|
|
|
else
|
|
|
|
|
// Set_taps_HF();
|
|
|
|
|
Set_taps_LF();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-11 10:55:00 -05:00
|
|
|
void taps_setTapLF(uint8_t tap)
|
|
|
|
|
{
|
|
|
|
|
//EXPANDER_CLEAR(~TAPS_OFF_MASK, NO_UPDATE);
|
2025-05-14 12:57:39 -05:00
|
|
|
|
2025-06-11 10:55:00 -05:00
|
|
|
switch (tap)
|
|
|
|
|
{
|
|
|
|
|
case 2:
|
|
|
|
|
{
|
|
|
|
|
EXPANDER_SET(_TAP2_LF_ON, UPDATE);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 3:
|
|
|
|
|
{
|
|
|
|
|
EXPANDER_SET(_TAP3_LF_ON, UPDATE);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 4:
|
|
|
|
|
{
|
|
|
|
|
EXPANDER_SET(_TAP4_LF_ON, UPDATE);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
default:
|
|
|
|
|
{
|
|
|
|
|
EXPANDER_SET(_TAP1_LF_ON, UPDATE);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2025-05-14 12:57:39 -05:00
|
|
|
|
|
|
|
|
void Set_taps_LF(void) // D' Type Amplifier
|
|
|
|
|
{
|
|
|
|
|
uint16_t New_Ohms;
|
|
|
|
|
|
|
|
|
|
if((!Taps_Flag) && (!Check_For_Clamp()))
|
|
|
|
|
|
|
|
|
|
// if((!Test_Mode && (ACCY_GetConnectedAccessory(1) != ID_CLAMP) && (ACCY_GetConnectedAccessory(2) != ID_CLAMP)))
|
|
|
|
|
{
|
|
|
|
|
if(!Taps_Flag)
|
|
|
|
|
{
|
|
|
|
|
Port_State[BOTTOM_SR] &= TAPS_OFF_MASK;
|
2025-06-11 10:55:00 -05:00
|
|
|
New_Ohms = (sys.adc.Ohms_slowfilt);
|
2025-05-14 12:57:39 -05:00
|
|
|
|
|
|
|
|
switch (New_Ohms)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
case 0 ... 25:
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP1_LF_ON;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 26 ... 50:
|
|
|
|
|
if (freqArray[frequency].frequency1 <= 8192)
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP2_LF_ON;
|
|
|
|
|
else
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP1_LF_ON; // v1.7 = TAP1 1.7X TAP2
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 51 ... 250:
|
|
|
|
|
if (freqArray[frequency].frequency1 <= 29430) // 9820
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP3_LF_ON;//3
|
|
|
|
|
if (freqArray[frequency].frequency1 >= 29430 && freqArray[frequency].frequency1 <= MAX_DTYPE)
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP2_LF_ON; //1,2
|
|
|
|
|
else
|
|
|
|
|
if(freqArray[frequency].frequency1 >= MAX_DTYPE)
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP2_LF_ON;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 251 ... 500:
|
|
|
|
|
if (freqArray[frequency].frequency1 >= 29430 && freqArray[frequency].frequency1 <= MAX_DTYPE)
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP2_LF_ON;
|
|
|
|
|
else
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP4_LF_ON;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 501 ... 1000:
|
|
|
|
|
if (freqArray[frequency].frequency1 == MAX_DTYPE || freqArray[frequency].frequency1 < 512)
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP3_LF_ON;
|
|
|
|
|
else
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP4_LF_ON; //4 1.7 =T3 1.7X =T4
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP4_LF_ON;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SPI0_SendBytes(Port_State, 3, EXPANDER);
|
|
|
|
|
|
2025-06-11 10:55:00 -05:00
|
|
|
last_Ohms = sys.adc.Ohms_slowfilt;
|
2025-05-14 12:57:39 -05:00
|
|
|
Taps_Flag = true;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Port_State[BOTTOM_SR] &= TAPS_OFF_MASK;
|
|
|
|
|
Port_State[BOTTOM_SR] |= TAP4_LF_ON; // Set TAPS to Fixed Test setting
|
|
|
|
|
SPI0_SendBytes(Port_State, 3, EXPANDER);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Set_taps_HF(void) // AB Amplifier
|
|
|
|
|
{
|
|
|
|
|
if(Hys_Taps)
|
|
|
|
|
{
|
2025-06-11 10:55:00 -05:00
|
|
|
last_Ohms = sys.adc.Ohms_slowfilt;
|
2025-05-14 12:57:39 -05:00
|
|
|
|
2025-06-11 10:55:00 -05:00
|
|
|
if(sys.adc.Ohms_slowfilt < 200)
|
2025-05-14 12:57:39 -05:00
|
|
|
|
|
|
|
|
Port_State[MID_SR] &= TAP102_HF_OFF; // 1:1
|
|
|
|
|
else
|
|
|
|
|
Port_State[MID_SR] |= TAP102_HF_ON; // 1:5
|
|
|
|
|
|
|
|
|
|
SPI0_SendBytes(Port_State, 3, EXPANDER);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool Hys_Taps(void) //Check for a +/-10% change in the impedance
|
|
|
|
|
{
|
|
|
|
|
float32_t test;
|
|
|
|
|
|
|
|
|
|
test = last_Ohms + last_Ohms/10;
|
|
|
|
|
|
2025-06-11 10:55:00 -05:00
|
|
|
if(sys.adc.Ohms_slowfilt > test )
|
2025-05-14 12:57:39 -05:00
|
|
|
return(true);
|
|
|
|
|
|
|
|
|
|
test = last_Ohms - last_Ohms/10;
|
|
|
|
|
|
2025-06-11 10:55:00 -05:00
|
|
|
if(sys.adc.Ohms_slowfilt < test)
|
2025-05-14 12:57:39 -05:00
|
|
|
return(true);
|
|
|
|
|
else
|
|
|
|
|
return(false);
|
|
|
|
|
}
|