SMART_COMPONENTS_Amplifier/Amplifier.h

101 lines
3.2 KiB
C

//
// Created by ilya on 06.05.24.
//
#ifndef SMART_COMPONENTS_AMPLIFIER_H
#define SMART_COMPONENTS_AMPLIFIER_H
//#include "Amplifier_MAX9768.h"
#include "Amplifier_AW87579.h"
#include "BaseTypes/Strings.h"
#include "EraGlonassUveos_Dumper.h"
#include "PowerManagment.h"
//**********************************************************************
//void Gpios_AudioPins(tAudioPins *env){
//
// env->mute = InitGpioPin(GPIOB, GPIO_PINS_1, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE);
// env->off_mcu = InitGpioPin(GPIOB, GPIO_PINS_0, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE);
//}
//**********************************************************************
typedef struct {
bool *speakTestAcsess;
uint8_t isTest;
tI2cIO *amplIoBus;
tEraGlonassUveosDumperInterface *dumper;
tString32 *confStr;
tAW87579_RegsList confRegs;
tPowerManagement *power;
uint8_t en_boost;
uint16_t levels[19];
uint16_t voltages[23];
uint16_t ampers[11];
uint16_t boost_vths1[4];
uint16_t boost_vths2[6];
uint16_t boost_steps[4];
uint16_t agc1_att_times[4];
uint16_t adp_boostModes[4];
uint16_t agc3_out_powers[16];
uint16_t agc3_relTimes[8];
uint16_t agc3_attTimes[8];
uint16_t agc2Opr_out_powers[12];
uint16_t agc2_attTimes[8];
}tAmplifier;
void Amplifier_Init(tAmplifier *env, tI2cIO *ampl_IO, tEraGlonassUveosDumperInterface *dumper, tString32 *conf, tPowerManagement *power, bool *speakTestAcsess);
void Amplifier_PowerOn(tAmplifier *env);
void Amplifier_PowerOff(tAmplifier *env);
void Amplifier_StartUp(tAmplifier *env);
void Amplifier_ConfRegsToStr(tAW87579_RegsList *conf, tString32 *res) ;
void Amplifier_BoostAdpMode_SetVTH1(tAmplifier *env, uint8_t index);
void Amplifier_BoostAdpMode_SetVTH2(tAmplifier *env, uint8_t index);
void Amplifier_BoostAdpMode_SetSTEP(tAmplifier *env, uint8_t index);
void Amplifier_DumpConf(tAmplifier *env);
void Amplifier_ChangeConf(tAmplifier *env);
void ProtMethodsAdd_AmplifierInit(tAmplifier *env);
uint8_t ProtMethods_AmplGetLvlVolumeIndex(tAmplifier *env, uint8_t regVal);
uint8_t ProtMethods_AmplGetLvlAmperIndex(tAmplifier *env, uint8_t regVal);
uint8_t ProtMethods_AmplGetLvlVoltIndex(tAmplifier *env, uint8_t regVal);
uint8_t ProtMethods_AmplGetADP_BoostStep(tAmplifier *env, uint8_t regVal);
uint8_t ProtMethods_AmplGetADP_BoostVTH1(tAmplifier *env, uint8_t regVal);
uint8_t ProtMethods_AmplGetADP_En_Boost(tAmplifier *env, uint8_t indexValule);
uint8_t ProtMethods_AmplGetADP_BoostVTH2(tAmplifier *env, uint8_t regVal);
uint8_t ProtMethods_AmplGetADP_BoostMode(tAmplifier *env, uint8_t regVal);
uint8_t ProtMethods_AmplGetAGC1_AttackTime(tAmplifier *env, uint8_t regVal);
uint8_t ProtMethods_AmplGetAGC3_OutPower(tAmplifier *env, uint8_t indexValule);
uint8_t ProtMethods_AmplGetAGC2_OutPower(tAmplifier *env, uint8_t indexValule);
uint8_t ProtMethods_AmplGetAGC2_AttTime(tAmplifier *env, uint8_t indexValule);
uint8_t ProtMethods_AmplGetAGC3_RelTime(tAmplifier *env, uint8_t indexValule);
uint8_t ProtMethods_AmplGetAGC3_AttTime(tAmplifier *env, uint8_t indexValule);
uint8_t ProtMethods_AmplGetEN_Boost(tAmplifier *env, uint8_t indexValule);
#define AMPL_IFNOKR(VALUE) if(!VALUE) return false;
#define AMPL_IFNOKREPIT(VALUE) while(VALUE == false);
#endif //SMART_COMPONENTS_AMPLIFIER_H