101 lines
3.2 KiB
C
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
|