Added some missing setters for AT1846S calibration and fixed other ones

replace/c1708fee14b27c35cb9fe909ac97b5422c310f79
Silvano Seva 2021-01-23 18:58:31 +01:00
rodzic 72220c377e
commit 4e4130e524
2 zmienionych plików z 54 dodań i 18 usunięć

Wyświetl plik

@ -200,6 +200,9 @@ void AT1846S_setOpMode(AT1846S_op_t mode)
i2c_writeReg16(0x58, 0xBC05); i2c_writeReg16(0x58, 0xBC05);
i2c_writeReg16(0x44, 0x06FF); i2c_writeReg16(0x44, 0x06FF);
i2c_writeReg16(0x40, 0x0030); i2c_writeReg16(0x40, 0x0030);
_maskSetRegister(0x57, 0x0001, 0x00); /* Audio feedback off */
_maskSetRegister(0x3A, 0x7000, 0x4000); /* Select voice channel */
} }
_reloadConfig(); _reloadConfig();
@ -242,9 +245,10 @@ void AT1846S_setAgcGain(uint8_t gain)
_maskSetRegister(0x44, 0x0F00, agc); _maskSetRegister(0x44, 0x0F00, agc);
} }
void AT1846S_setTxDeviation(uint8_t dev) void AT1846S_setTxDeviation(uint16_t dev)
{ {
_maskSetRegister(0x59, 0x003F, ((uint16_t) dev)); uint16_t value = (dev & 0x03FF) << 6;
_maskSetRegister(0x59, 0xFFC0, value);
} }
void AT1846S_setRxAudioGain(uint8_t gainWb, uint8_t gainNb) void AT1846S_setRxAudioGain(uint8_t gainWb, uint8_t gainNb)
@ -254,6 +258,24 @@ void AT1846S_setRxAudioGain(uint8_t gainWb, uint8_t gainNb)
_maskSetRegister(0x44, 0x000F, ((uint16_t) gainNb)); _maskSetRegister(0x44, 0x000F, ((uint16_t) gainNb));
} }
void AT1846S_setNoise1Thresholds(uint8_t highTsh, uint8_t lowTsh)
{
uint16_t value = ((highTsh & 0x1f) << 8) | (lowTsh & 0x1F);
i2c_writeReg16(0x48, value);
}
void AT1846S_setNoise2Thresholds(uint8_t highTsh, uint8_t lowTsh)
{
uint16_t value = ((highTsh & 0x1f) << 8) | (lowTsh & 0x1F);
i2c_writeReg16(0x60, value);
}
void AT1846S_setRssiThresholds(uint8_t highTsh, uint8_t lowTsh)
{
uint16_t value = ((highTsh & 0x1f) << 8) | (lowTsh & 0x1F);
i2c_writeReg16(0x3F, value);
}
void AT1846S_setPaDrive(uint8_t value) void AT1846S_setPaDrive(uint8_t value)
{ {
uint16_t pa = value << 11; uint16_t pa = value << 11;

Wyświetl plik

@ -48,73 +48,87 @@ typedef enum
AT1846S_func_t; AT1846S_func_t;
/** /**
* *
*/ */
void AT1846S_init(); void AT1846S_init();
/** /**
* *
*/ */
void AT1846S_postInit(); void AT1846S_postInit();
/** /**
* *
*/ */
void AT1846S_setFrequency(const freq_t freq); void AT1846S_setFrequency(const freq_t freq);
/** /**
* *
*/ */
void AT1846S_setBandwidth(AT1846S_bw_t band); void AT1846S_setBandwidth(AT1846S_bw_t band);
/** /**
* *
*/ */
void AT1846S_setOpMode(AT1846S_op_t mode); void AT1846S_setOpMode(AT1846S_op_t mode);
/** /**
* *
*/ */
void AT1846S_setFuncMode(AT1846S_func_t mode); void AT1846S_setFuncMode(AT1846S_func_t mode);
/** /**
* *
*/ */
uint16_t AT1846S_readRSSI(); uint16_t AT1846S_readRSSI();
/** /**
* *
*/ */
void AT1846S_setPgaGain(uint8_t gain); void AT1846S_setPgaGain(uint8_t gain);
/** /**
* *
*/ */
void AT1846S_setMicGain(uint8_t gain); void AT1846S_setMicGain(uint8_t gain);
/** /**
* *
*/ */
void AT1846S_setTxDeviation(uint8_t dev); void AT1846S_setTxDeviation(uint16_t dev);
/** /**
* *
*/ */
void AT1846S_setAgcGain(uint8_t gain); void AT1846S_setAgcGain(uint8_t gain);
/** /**
* *
*/ */
void AT1846S_setRxAudioGain(uint8_t gainWb, uint8_t gainNb); void AT1846S_setRxAudioGain(uint8_t gainWb, uint8_t gainNb);
/** /**
* *
*/
void AT1846S_setNoise1Thresholds(uint8_t highTsh, uint8_t lowTsh);
/**
*
*/
void AT1846S_setNoise2Thresholds(uint8_t highTsh, uint8_t lowTsh);
/**
*
*/
void AT1846S_setRssiThresholds(uint8_t highTsh, uint8_t lowTsh);
/**
*
*/ */
void AT1846S_setPaDrive(uint8_t value); void AT1846S_setPaDrive(uint8_t value);
/** /**
* *
*/ */
void AT1846S_setAnalogSqlThresh(uint8_t thresh); void AT1846S_setAnalogSqlThresh(uint8_t thresh);