// // 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